C语言选择题,为什么答案是A,求过程

 我来答
匿名用户
2015-05-26
展开全部
break只是退出switch(y),由于switch(x)中case 1后面没break,会执行case 2,所以是A
一颗程序猿o_0
2015-05-26 · TA获得超过6296个赞
知道大有可为答主
回答量:5403
采纳率:77%
帮助的人:1283万
展开全部
第一个switch(x)
x=1 所以走case 1 进入第二个switch
y=0 所以 走case 0: 执行a++后遇到break, 跳出本层switch语句, 这个时候a=1
因为switch的case 1后面没有break, 所以语句继续往下执行到case 2 那一行, 执行了a++和b++,这时候 a=2 b=1 遇到break 跳出本层switch , 到了printf语句, 所以选A
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Royal_枫桦
2015-05-26
知道答主
回答量:7
采纳率:0%
帮助的人:5.1万
展开全部
你的switch(x)中case 1:语句在执行后继续执行了case 2:语句
case 1: switch(y){} 语句等价于 a++;没有break

switch(x)
{
case 1:
switch(y){} ; break ;//注意这个break;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友63c929f
2015-05-26 · 超过14用户采纳过TA的回答
知道答主
回答量:57
采纳率:0%
帮助的人:21.2万
展开全部
逻辑是这样的,第一个switch选择的是x,当然执行case1了,然后case1后面是嵌套的衣蛾switch选择y是0,那么a++后等于1了,嵌套的switch被break终结了,但是外层的switch配套的case1并没有break,所以case2被执行,之后a++,b++,结果就是A了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
开心00最好
2015-05-26 · 超过23用户采纳过TA的回答
知道答主
回答量:66
采纳率:0%
帮助的人:34.9万
展开全部
主要原因是一个break只能终止一个循环或者一个switch,所以里面的switch使用后因为外部的switch没有得到终止操作,所以向下执行第二个代码也就是外部的case 2 从而得到A答案
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式