问题 单项选择题

执行以下程序后i的值为( )。
main()
int x,i;
for(i=l,x=1;i<=36;i++)
if(x>=20) break;
if(x%5==1)
x+=5;continue;
x-=5;
)
printf("%d",i);

A) 3
B) 4
C) 5
D) 6

答案

参考答案:C

解析: 第1次循环执行情况如下:
i=1,x=1,判断i<=36为真执行循环体。
x=1,判断x>=20为假。
判断x%5==1为真,执行x+=5;x值为6,执行continue;跳过本次循环余下的语句,即不执行X-=5:。
执行i++,i=2。
第2次循环执行情况如下:
i=2,判断i<=36为真执行循环体。
x=6,判断x>=20为假。
判断x%5==1为真,执行x+=5:x值为11,执行continue;跳过本次循环余下的语句,即不执行X-=5;。
执行i++,i=3。
第3次循环执行情况如下:
i=3,判断i<=36为真执行循环体。
x=11,判断x>=20为假。
判断x%5==1为真,执行x+=5;x值为16,执行continue;跳过本次循环余下的语句,即不执行X-=5:。
执行i++,i=4。
第4次循环执行情况如下:
i=4,判断i<=36为真执行循环体。
x=16,判断x>=20为假。
判断x%5==l为真,执行x+=5;x值为21,执行continue;跳过本次循环余下的语句,即不执行X-=5;。
执行i++,i=5。
第5次循环执行情况如下:
i=5,判断i<=36为真执行循环体。
x=21,判断x>=20为真。
执行break;,跳出循环体,即结束循环。最后i=5,选项C正确。

多项选择题
单项选择题