问题 单项选择题

以下程序输出结果是
#include <stdio.h>
main ( )
{ int i=0,a=0;
while ( i<2 0 )
{ for(;;)
{ if ((i%10) ==0) break;
else i--;
}
i+=11; a+=i;
}
print f ( "%d\n" ,

A.;
}A) 21B) 32C) 33D) 11

答案

参考答案:B

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

单项选择题
单项选择题