一道c语言题,为何不选A而选b,求理由
7.设有变量说明语句inta=1,b=0;则执行以下程序段的输出结果为()。switch(a){case1:switch(b){case0:printf("**0**")...
7.设有变量说明语句
int a=1,b=0;
则执行以下程序段的输出结果为( )。
switch (a)
{
case 1:
switch (b)
{
case 0:printf("**0**");break;
case 1:printf("**1**");break;
}
case 2:printf("**2**");break;
}
printf("\n");
(A)**0** (B)**0****2** (C)**0****1****2** (D)有语法错误 展开
int a=1,b=0;
则执行以下程序段的输出结果为( )。
switch (a)
{
case 1:
switch (b)
{
case 0:printf("**0**");break;
case 1:printf("**1**");break;
}
case 2:printf("**2**");break;
}
printf("\n");
(A)**0** (B)**0****2** (C)**0****1****2** (D)有语法错误 展开
4个回答
展开全部
B。因为case 1:中缺少了break;语句,所以两个都执行,这是一种多路开关的办法,因为有些时候,判断结果虽不同,但要执行同一个语句,就可以用到。比如说:
int a=1;
switch(a)
{
case 1:/*没有break,否则不能实现多路开关模式*/
case 2:
pritnf("abcdefg");
break;
}
int a=1;
switch(a)
{
case 1:/*没有break,否则不能实现多路开关模式*/
case 2:
pritnf("abcdefg");
break;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
执行 switch (b) 花括号里面的代码,当执行完case:0的时候,后面因为有一个break,所以就跳出了花括号,继续执行下行代码case 2:printf("**2**");break; 当执行完这个break,程序就跳出到printf
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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");
{
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");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
选B才对
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询