问题
单项选择题
以下程序的输出结果是
main()
int a=0,i;
for(i=1;i<5;i++)
switch(i)
case0:
case3:a+=2;
case 1:
case2:a+=3;
default:a+=5;
printf(“%d\n”,
A.;
A) 31
B.13
C.10
D.20
答案
参考答案:A
解析:switch语句的执行过程是:在switch后面的表达式的值和case后面常量表达式的值吻合时,就执行该case分支的语句。如果在该语句的后面没有break语句,则按顺序继续执行下一个case分支,直到遇到break语句或switch多分支语句结束,在 switch语句中,break语句的作用是使流程跳出switch结构,终止switch语句的执行。在本题中,因为每个case语句后面都没有break语句,所以,第一轮循环(i==1)执行过后a的值为8,第2轮(i==2)执行过后a的值为16,第3轮(i==3)执行过后a的值为26,第4轮(i==4)执行过后a的值为31,然后执行“i++”语句,这时循环条件为假,循环结束。