问题 单项选择题

有以下程序:
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

解析: 本题中a的初始值为1,在循环体中首先判断a,如果>=8就用break跳出循环,接下来的判断语句a%2==1,是判断a除以2的余数是否为1,即a是否为奇数,是的话给a累加一个5,然后用continue开始下‘次循环。若两个条件都不满足就让a自减一个3。因此第1次循环开始a为1不大于8,且是奇数,所以a被累加5开始下—次循环;第2次循环开始a为6不大于8,不是奇数,所以a被减去3:第3次循环开始a为3不大于8,是奇数,所以a被加上一个5;第4次开始a为8,满足第一个条件跳出循环。b在第1次循环时等于1,以后每次累加1,所以最后输出为4,选项B正确。

单项选择题
问答题 简答题