C语言:下面程序的运行结果是()

5.下面程序的运行结果是( )。
#include <stdio.h>
int main( )
{ int a=0, i=3;
switch(i)
{ case 3: a+=3;
case 1:
case 2: a+=2;break;
default: a+=5;
}
printf("%d ",a);
}
A.3 B. 5 C. 10 D. 0

答案是B 为什么?

因为i=3;进入switch(i)后,执行a+=3;后a的值是3;因为没有break语句,它并没退出switch()语句,所以又执行到a+=2。a值变成了5。接着,执行break语句,退出switch(),执行printf()。所以选B
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-12-25
case 3和case 1后面都没有用break,所以不会跳出switch而是继续执行,
所以case 3 a+=3,case 1,case 2 a+=2.然后break,结果为5
相似回答