问题
单项选择题
以下程序的输出结果是
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;
printf("%d\n",
A.;
A) 31
B.13
C.10
D.20
答案
参考答案:A
解析: 本题考核的知识点是 for语句与switch语句地综合运用。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++”语句,这时循环条件为假,循环结束.所以,4个选项中A为所选。