一道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)有语法错误
展开
 我来答
741852963一
2011-09-03 · TA获得超过268个赞
知道小有建树答主
回答量:354
采纳率:0%
帮助的人:212万
展开全部
B。因为case 1:中缺少了break;语句,所以两个都执行,这是一种多路开关的办法,因为有些时候,判断结果虽不同,但要执行同一个语句,就可以用到。比如说:
int a=1;
switch(a)
{
case 1:/*没有break,否则不能实现多路开关模式*/
case 2:
pritnf("abcdefg");
break;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
123lht
2011-09-03 · TA获得超过318个赞
知道答主
回答量:236
采纳率:0%
帮助的人:150万
展开全部
执行 switch (b) 花括号里面的代码,当执行完case:0的时候,后面因为有一个break,所以就跳出了花括号,继续执行下行代码case 2:printf("**2**");break; 当执行完这个break,程序就跳出到printf
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wqhtbname
2011-09-03
知道答主
回答量:6
采纳率:0%
帮助的人:1万
展开全部
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");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小飞花儿的忧伤
2011-09-03 · TA获得超过1661个赞
知道小有建树答主
回答量:1152
采纳率:100%
帮助的人:325万
展开全部
选B才对
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式