c语言分析题:下面程序运行的结果为n=4,请说明详细的过程,谢谢

#include <stdio.h>
void main()
{
int i, n=0;
for (i=2;i<5;i++)
{
do
{
if(i%3) continue;
n++;
}while(!i);
n++;
}
printf("n=%d\n",n);
}

刚刚开始第一次for循环,i=2,n=0
进入do-while循环,i%3为非零,continue。到while处判断,!i为零,跳出do-while循环。
n++,第一次for循环结束,i++

刚刚开始第二次for循环,i=3,n=1
进入do-while循环,i%3为零,执行n++。到while处判断,!i为零,跳出do-while循环。
n++,第二次for循环结束,i++

刚刚开始第三次for循环,i=4,n=3
进入do-while循环,i%3为非零,continue。到while处判断,!i为零,跳出do-while循环。
n++,第三次for循环结束,i++

刚刚进入第四次for循环,i=5,n=4。这时i<5为零,跳出for循环。

输出n,n=4。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-02
初始:n=0
for循环中i从2到4
i=2循环中:do while循环中n++没有执行,下面的n++执行,故n=1
i=3: do while循环中n++执行,n=2;下面的n++执行,n=3
i=4:do while循环中n++没有执行,下面的n++执行,故n=4
第2个回答  2015-01-02
第一次for i=2

i%3=2 if成立 跳出 n++; n=1
第二次for i=3
i%3=0 if不成立 n++ n=2; while(!i)不成立 跳出循环 n++ n=3;
第三次for i=4
i%3=1 if成立 跳出 n++ n=4

第四次 for i=5 不成立 跳出for
输出n=4
相似回答