以下程序的输出结果是 #include <iostream.h> void main () { int a=0, i; for (i=1; i<5; i++) {switch (i){ case 0 : case 3 : a+=2; case 1 : case 2 : a+=3; default : a+=5;} } cout<<a<<endl; return; }
A.31
B.13
C.10
D.20
参考答案:A
解析: 本题考核for语句和switch语句的综合运用。 switch语句的执行过程是:在switch后面的表达式的值和case后面常量表达式的值吻合时,就执行后面的语句。如果在该语句的后面没有break语句,则继续执行下一个case,直到遇到break语句或switch多分支的结束。在switch语句中,break语句的作用是使流程跳出switch结构,终止switch语句的执行。因为每个case语句后面都没有break语句,所以,第1次循环(i=1)执行后,a的值为8。第2次循环(i=2)执行过后,a的值变为16。第3次循环(i=3)执行过后,a的值变为26。第4次循环执行过后,a的值变为31。然后执行i++,这时循环条件为假,结束循环。所以最后a的值为31。