C语言选择题51?

来源:百度知道 编辑:UC知道 时间:2024/06/01 23:56:56
50.如下程序
main( )
{ int x=1,a=0,b=0;
switch(x)
{ case 0:b++;
case 1:a++;
case 2:a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
该程序的输出结果是( )
A、a=2,b=1 B、a=1,b=1 C、a=1,b=0 D、a=2,b=2
为什么要这么选?

#include<stdio.h>
void main()
{ int x=1,a=0,b=0;
switch(x)
{ case 0:b++;
case 1:a++;//先运行到这里
case 2:a++;b++;//没有,break跳出语句。
//运行完case=1,还要运行case=2。
}
printf("a=%d,b=%d\n",a,b);

A、a=2,b=1

因为case 1:a++;后没BREAK语句来结束语句将执行下面的语句!

A、a=2,b=1