C语言,选择结构,switch语句

#include<stdio.h>main(){intx=1,y=0,a=0,b=0;switch(x)/*开关语句控制的这个x干吗用的?我看不懂...*/{case1:... #include <stdio.h>
main()
{int x=1 , y=0, a=0,b=0;
switch(x) /*开关语句控制的这个x干吗用的?我看不懂...*/
{case 1 :switch(y)

{case 0:a++;break; /*这个地方,a++后a得1?不是参与运算后才自增1吗?不是还应该等于0吗?*/

case 1:b++;break;
}
case 2:a++;b++;break;/*case 2 是怎么回事?谁的值得2了??*/
}
printf("a=%d,b=%d\n",a,b);
}

C语言新手...谢谢各位前辈了先...
这个题的答案是 a=2,b=1

还是不明白,case 2 是怎么回事??不是有值为2才会执行case2么??大大们能不能讲的再明白一点??我真的很菜...><
展开
 我来答
匿名用户
2010-05-26
展开全部
switch后边括号里变量的值决定了switch的case分支语句的选择。你的程序中有两个switch选择,首先看外层的switch,由于x已经被赋值为1,所以程序会选择case 1所对应的语句执行。而case 1对应的语句是又是一个switch语句,此时的switch后边括号中的变量是y,由于y已经被赋值0,所以应该执行case 0所对应的语句,执行a++;后缀++是说执行完语句后变量值增加1.
最后答案是a=1,b=0;

int x = 1, y = 0, a = 0,b = 0;
switch (x)
{
case 1: switch (y) //首先跳转到这儿
{
case 0: a++; break; //接着跳转到这
case 1: b++; break; //不执行
}
break; //对于每个case语句,一定不要忘了break;
case 2: a++; b++; break; //不执行
}
2009chenrui
推荐于2016-08-22 · TA获得超过177个赞
知道答主
回答量:126
采纳率:0%
帮助的人:0
展开全部
#include <stdio.h>
void main()
{int x=1 , y=0, a=0,b=0;
switch(x) /*开关语句控制的这个x干吗用的?我看不懂...*/
{case 1 :switch(y)

{case 0:a++;break; /*这个地方,a++后a得1?不是参与运算后才自增1吗?不是还应该等于0吗?*/

case 1:b++;break;
}
case 2:a++;b++;break;/*case 2 是怎么回事?谁的值得2了??*/
}
printf("a=%d,b=%d\n",a,b);
}
/*a=2,b=1*/

完全正确。

switch (x)
{
case 1: switch (y) //首先跳转到这儿
{
case 0: a++; break; //接着跳转到这
case 1: b++; break; //不执行
}
//跳出内switch(y) ,再执行外面switch(x)
case 2: a++; b++; break; //a=2,b=1
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
街角哦祝福
2010-05-27 · TA获得超过533个赞
知道小有建树答主
回答量:306
采纳率:0%
帮助的人:358万
展开全部
#include <stdio.h>
main()
{int x=1 , y=0, a=0,b=0;
switch(x) /*开关语句控制的这个x干吗用的?我看不懂...*/
{case 1 :
switch(y)
{ case 0:a++;break; /*这个地方,a++后a得1?不是参与运算后才自增1吗?不是还应该等于0吗?*/

/*因为x=1,所以会执行该语句,所以会执行a++,从而a变成1了*/
case 1:b++;break;
}
case 2:a++;b++;break;/*case 2 是怎么回事?谁的值得2了??*/
/*这个是与最前面的case 1:对应的shi switch(x),所以a和b都会自增1*/
}
printf("a=%d,b=%d\n",a,b);
}
/*这个程序人家可能是用来测试的吧,*/
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友656331e
2010-05-26 · TA获得超过880个赞
知道小有建树答主
回答量:586
采纳率:0%
帮助的人:320万
展开全部
x的当前值为1程序跳向事件1然后执行b++(再次调用其值自增1)break跳出当前语句指向case2 然后执行a++,b++ 应该是a=1,b=2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1024程序员
2020-01-06 · TA获得超过374个赞
知道答主
回答量:457
采纳率:0%
帮助的人:22.9万
展开全部

C语言选择结构之switch语句

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式