选择题
60. 执行下面C语言程序段的结果是______。
main() {
int x=1, a=1, b=1;
switch (x) {
case 0: b++;
case 1: a++;
case 2:a++;b++;
}
printf ("a=%d, b=%d",a,b);
}
【正确答案】
B
【答案解析】 本题考查C语言基础知识。
switch语句是多分支语句。它的一般形式如下:
switch(表达式)
{ case常量表达式1: 语句1
case 常量表达式2: 语句2
...
case 常量表达式n: 语句n
de fault: 语句n+1
}
switch后面括弧内的“表达式”,可以是整型表达式或字符型表达式,也可以是枚举型数据。当表达式的值与某一个case后面的常量表达式的值相等时,就执行此case后面的语句,若所有的case中的常量表达式的值都没有与表达式的值匹配的,就执行default后面的语句。每一个case的常量表达式的值必须互不相同。执行完一个case后面的语句后,流程控制转移到下一个case继续执行,“case常量表达式”只是起语句标号作用,并不是在该处进行条件判断。在执行switch语句时,根据switch后面表达式的值找到匹配的入口标号,就从此标号开始执行下去,不再进行判断。因此,一般用一个break语句使得在执行一个case分支后,使流程跳出switch结构,即终止switch语句的执行。
本题的switch结构没有使用break语句,变量x=1,因此从case 1的语句开始执行,之后接着执行case 2的语句。