单选题
有以下程序:
#include <stdio.h>
main( )
{int x=1, y=0, a=0, b=0;
switch(x)
{ case 1:
switch(y)
{ ease 0: a+ +; break;
case 1: b+ +; break;
}
ease 2: a+ +: b+ +: break;
case 3: a+ +; b+ +;
printf("a=%d, b=%d/n", a, b);
}
程序的运行结果是______。
【正确答案】
B
【答案解析】[解析] case常量表达式只是起语句标号作用,并不是在该处进行条件判断。在执行switch语句时,根据switch的表达式,找到与之匹配的ease语句,就从此case子句执行下去,不在进行判断,直到碰到break或函数结束为止。所以执行内层switch(y)时只执行了a++,此时a的值为1。然后执行外层case2语句的a++;b++;a为2,b为1。所以结果为B。