求解释c语言题目

2025-01-04 05:55:20
推荐回答(4个)
回答1:

这里关键是这个continue,if语句判断成功他执行的是接下来第一个有分号结尾的continue;而不是n++,continue是继续循环的意思,不是继续执行下面的语句。
所以当if判断为真的时候执行continue后执行的是while(!i),while判断失败则跳出while循环到for循环。
在for循环中i=3时if语句判断为假,continue失效,执行do里面的n++,do执行完后执行while。
进入第三次for循环,跟第一次一样,do里的n++被跳过,while下面的n++被执行。
这样下来,while下面的n++被执行3次,do里的n++被执行一次,此时n=4.解析是错的。

回答2:

continue 只跳出内层 do{}while()循环,
if(i%3)等价于 if((i%3)!=0),在i值为 2 4 时都为真
你那评析错了两处 恰好歪打正着。

回答3:

只有当i==3的时候,才会执行if下面的n++
if下面的n++执行过一次,while下面的n++执行过3次,所以答案是D

不会的时候,自己调下程序,单步跟踪看看。

回答4:

评析讲的很清楚啊,i=2,n加一次;i=3,n加两次;i=4,n加一次。
所以最后结果为n=4.