问题
单项选择题
以下程序的输出结果是
#include<iostream.h>
void main()
int a=0,i;
for(i=1;i<5;i++)
swich (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。