柠檬试题库
search
首页 计算机 公务员 驾照 关于

有以下程序 #include main() { int a, b; for( a=1,b=1; a<=100; a++ ) { if(b>=20) break; if(b % 3==1) { b=b+3; continue; } b=b-5; } printf("%d\n",a); } 程序的输出结果是


  • A.10
  • B.9
  • C.8
  • D.7
热度🔥513
参考答案:C
解析:

【解析】首先注意for循环的控制条件当b>=20或者a>100则跳出for循环也即b<20且a<=100时执行for循环;第一次进入循环a=1,b=1均满足循环条件,但b%3==1条件满足,故执行b=b+3,得到b=4,注意有continue,所以后面语句不执行,直接跳转到a++这个语句,所以第一次循环完之后a=2,b=4;进入第二轮循环,b%3==1也是满足的,故再次b=b+3,此轮循环执行之后a=3,b=7,进入下一轮。此后和前面循环同理,都是b%3==1满足,因为每次都是加3,而之后又去模3,且都跳过for后面语句直接执行a++,所以,一直循环到b=22跳出for循环。此时a为8. 综合起来就是,每次循环b增加3,a增加1,且当b>22时跳出循环,结束程序。所以b从1增加到22,有(22-1)/3=7,所以a=1+7=8. 因此C选项正确。
复制题目向AI提问