问题 单项选择题

以下程序的输出结果是 #include<stdi0.h> main() { int i=0,a=0;while(i<20){ for(;;) { if((i%10)==0)break; elsei--; } i+=11;a+=i;}printf(“%d\n”,A) ; }

A.21

B.32

C.33

D.11

答案

参考答案:B

解析:break语句只能在循环体和switch语句体内使用。本题程序为在 while循环中嵌套for循环。先看内层for循环,该循环的3个表达式全部省略,循环条件始终为真,但循环体内的break语句为终止循环的条件。首先,由初始条件判断外层循环 while括号内表达式的值,该值为真,执行本次while循环,即执行循环体内的if语句,判断该表达式后面括号里表达式的值为真,执行break语句,跣出内层循环,执行下面的语句,此时i和a的值均变为11;回到外层循环,判断表达式“i<20”仍为真,执行内层循环语句,此时if条件不满足,执行else语句,i的值为10,继续内层循环,if语句条件满足,执行 break语句,跳出内层循环,执行下面的语句后,i和a的值分别是21和32。再判断外层循环的条件为假,结束循环。

判断题
单项选择题