问题 单项选择题

有以下程序( )
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);

程序执行后的输出结果是

A.n=2
B.n=3
C.n=4
D.n=5

答案

参考答案:C

解析:
main()
{int i,n=0;
for(i=2;i<5;i++)/*i初始值为2,循环执行条件为i<5,步进值为1*/
{do
{if(i%3)continue;/*当i%3的值非0时,跳过下面语句直接执行while判定*/
n++;/*当i%3的值为0时,执行本行语句后再执行while判定。整个运算过程中,本语句仅被执行1次*/
}while(!i);/*当i的值为0时执行第二次do-while循环*/
n++;/*此行为for循环体内语句,被执行3次*/
}
printf("n=%d\n",n);/*本程序段变量n共执行自加1运算4次,故n的值为4*/
}

多项选择题
单项选择题