问题 单项选择题

以下程序的输出结果是#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<<end1; 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。

多项选择题
单项选择题