有以下程序: #inelude<stdio.h> main() {int x=1,v=0,a=0,b=0; switch(x) {case1: switch(y) {case0:a++;break; case1:b++;break; } case2:a++

admin2021-04-28  34

问题 有以下程序:
#inelude<stdio.h>
main()
{int x=1,v=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
ease3:a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
程序运行后的输出结果是(  )。

选项 A、a=2,b=2
B、a=2,b=1
C、a=1,b=1
D、a=1,b=0

答案B

解析 tase常量表达式只是起语句标号作用,并不是陔处进行条件判断。在执行switch语句时,根据switch的表达式,找剑与之匹配的case语句,就从此case子句执行下去,不在进行判断,直到碰到break或函数结束为止。所以执行内层switch(y)时只执行了a++,此时a的值为1。然后执行外层case2讲句的a++;b++;a为2,b为1。所以结果为B。
转载请注明原文地址:https://kaotiyun.com/show/7Rtp777K
0

最新回复(0)