有以下程序
main ( )
int i,n=0;
for (i=2 ;i<5;i++)
do
if (i%3) continue;
n++;
while(!i);
n++;
print f ( "n=%d\n" , n);
程序执行后的输出结果是
A.n=5
B.n=2
C.n=3
D.n=4
参考答案:D
解析: 本题考核的知识点是 do…while结构和算术运算符%的应用。do…while的结构形式为:do 循环体 while(条件表达式),当程序执行到do后,先执行循环体一次,然后才对条件表达式进行计算、判断。若条件表达式的值为真,则重复执行一次循环体;否则退出,与while结构相比,do…while结构至少要执行一次循环体;运算符%是求模运算,即求两个数相除的余数。 continue语句的作用时结束本次循环,即跳过本次循环中余下尚未执行的语句,接着再一次进行循环的条件判定。本题中,当i=2时,执行如循环。由于 if表达式的条件为真,执行continue语句,结束本次循环,判断while循环条件为假,故退出while循环,执行n++,此时n的值为1,当i=3时,执行do循环.由于if(3%3)为假,执行下面的n++语句,此时 n的值为2,结束本次循环,继续判断while循环条件为假,故退出while循环,执行n++语句,此时n的值为3;当i=4时,执行如循环。由于if(4%3)为真,执行continue语句,结束本次循环,继续判断while循环条件为假,故退出while循环,执行n++,此时n的值为4;当i=5时,退出for循环,因此最后输出的n的值为4,所以,4个选项中选项D符合题意。