问题 单项选择题

有以下程序
main()
int a=1,b;
for(b=1;b<=10;b++)
if(a>=8)break;
if(a%2==1)(a+=5;continue;
a-=3;

printf("%d\n",b);

程序运行后的输出结果是______。

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

答案

参考答案:B

解析: 本题考查break与continue语句。在一个循环体中,若执行到break,则跳出循环;若执行到continue,则开始执行下一次的循环体。在本题的for循环中,先判断a是否大于等于8,若是,则跳出循环。然后判断a是否为奇数,若是则a加上5,且马上执行下一次的循环。若a小于8且是偶数,则减去3。第一次循环开始时,a为1,所以a加5,并开始下一次循环。第二次循环开始时,a为6,所以执行a-=3;。第三次循环开始时,a为3,所以a加5且开始下一次循环。第四次循环开始时,a为8,所以跳出循环。而第一次循环时,b为1,以后每进行一次循环就累加1,所以最后输出为4。选项B正确。

单项选择题
单项选择题