c语言的,下面的程序输出结果是什么?为什么?

voidmain(void){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++,b++;}printf("a=... void main(void)
{
int x=1,a=0,b=0;
switch(x)
{ case 0:b++;
case 1:a++;
case 2: a++,b++;
}
printf("a=%d,b=%d\n",a,b);
}
展开
 我来答
naobing111
2011-01-11 · TA获得超过418个赞
知道小有建树答主
回答量:150
采纳率:0%
帮助的人:181万
展开全部
输出结果是:a=2,b=1
解析:
因为x = 1,所以switch走case1和case2分支。
走case1后a变成1,b仍然是0;
走case2后a变成2,b变成1。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
遮天灬傲屹
2011-01-11 · 超过25用户采纳过TA的回答
知道答主
回答量:89
采纳率:0%
帮助的人:66.8万
展开全部
a=2,b=1
从case1语句开始运行
由于没有break;终止
所以继续执行case2
所以a++两次,b++一次
得答案如上
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
antoniodingyi
2011-01-11 · 超过17用户采纳过TA的回答
知道答主
回答量:56
采纳率:100%
帮助的人:31.6万
展开全部
output: a=2,b=1
因为程序在case 1之后运行a++, 接着没有break, 程序继续进行, 虽然有case 2, 但只要case 1符合, 只要接下来没有break, 程序就接着运行. 所以接着运行了a++, b++.

所以最后结果是a=2, b=1.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
落枫秋痕
2011-01-11 · TA获得超过499个赞
知道小有建树答主
回答量:200
采纳率:0%
帮助的人:189万
展开全部
x=1 执行到 switch的case 1语句即 a++;
后直接输出 a=2,b=1;
此处考查 switch 的用法。
switch(参数)
case 常量:语句;break;
参数跟常量匹配,只有 相同 才执行那个匹配的case 语句。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cws_relent
2011-01-11 · TA获得超过184个赞
知道答主
回答量:120
采纳率:0%
帮助的人:102万
展开全部
因为switch对应的case分支都没有break,所以所有的case语句都要被执行,这样程序的结果是
a=2,b=2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式