一道c语言题,为何不选A而选b,求理由

2024-11-08 02:41:21
有4个网友回答
网友(1):

B。因为case 1:中缺少了break;语句,所以两个都执行,这是一种多路开关的办法,因为有些时候,判断结果虽不同,但要执行同一个语句,就可以用到。比如说:
int a=1;
switch(a)
{
case 1:/*没有break,否则不能实现多路开关模式*/
case 2:
pritnf("abcdefg");
break;
}

网友(2):

执行 switch (b) 花括号里面的代码,当执行完case:0的时候,后面因为有一个break,所以就跳出了花括号,继续执行下行代码case 2:printf("**2**");break; 当执行完这个break,程序就跳出到printf

网友(3):

switch (a)
{
case 1:
switch (b)
{
case 0:printf("**0**");break;
case 1:printf("**1**");break;
}
/*因为case1整体结束后这里并没有一个break,所以当case1执行完毕之后,系统会继续执行case2的内容 */
case 2:printf("**2**");break;
}
printf("\n");

网友(4):

选B才对