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

admin2021-06-15  33

问题 有以下程序:
#include<stdio.h>
main()
{int x=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
case3: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

解析 C语言还提供了一种用于多分支选择的switch语句,计算表达式的值。并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后语句,然后不再进行判断,继续执行后面所有case后语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。
x=1;进入第一层switch,y=0;进入第二层switch。执行a++;break;后a=1;在进入case2,(这里case1:没有break,)执行了a++,b++,由于存在break,则跳出switch,得到a=2.b=1,因此答案为B选项。
转载请注明原文地址:https://jikaoti.com/ti/Atz0FFFM
0

随机试题
最新回复(0)