关于C语言switch语句的一道题!

若变量的值已正确定义,那么以下语句段的输出结果是()x=0;y=2;z=3;switch(x){case0:switch(y=2){case1:printf("*");b... 若变量的值已正确定义,那么以下语句段的输出结果是( )
x=0;y=2;z=3;
switch(x)
{case 0: switch(y=2)
{case 1: printf("*");break;
case 2: printf("%");break;}
case 1: switch(z)
{case 1: printf("$");
case 2: printf("*");
default: printf("#");
}}
该怎么做?
选项是
A%$
B#*
C*#
D**$
展开
 我来答
呼呼会飞
2011-04-11
知道答主
回答量:8
采纳率:0%
帮助的人:10.9万
展开全部
switch(x)
{case 0: switch(y=2)
{case 1: printf("*");break;
case 2: printf("%");break;}
case 1: switch(z)
{case 1: printf("$");
case 2: printf("*");
default: printf("#"); }
}
第一个switch(x)->case0
case0:switch(y=2)注意括号中得到的是bool值,即0或1,这里是1,所以printf(“*”)
由于case0没有break;顺序执行下面case1:switch(z),z=3,所以选择default,printf(“#”)。
所以最后答案是:C, *#
weiyiweijian
2011-04-10 · TA获得超过471个赞
知道小有建树答主
回答量:317
采纳率:0%
帮助的人:216万
展开全部
x=0;y=2;z=3;
switch(x)
{case 0: switch(y=2)
{case 1: printf("*");break;
case 2: printf("%");break;}
case 1: switch(z)
{case 1: printf("$");
case 2: printf("*");
default: printf("#"); }
}

这样处理一下结构就很清楚啦,结果应该是显示*。
switch(y=2)相当于switch(1)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
艾井柏然
2011-04-10 · TA获得超过297个赞
知道答主
回答量:280
采纳率:0%
帮助的人:107万
展开全部
楼下正解,y=2是一个赋值语句,式子本身也有值,非0,即1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
梦羽天堂1
2011-04-10 · TA获得超过185个赞
知道小有建树答主
回答量:127
采纳率:100%
帮助的人:95万
展开全部
x=0;y=2;z=3;
switch(x)
{case 0: switch(y=2)
{case 1: printf("*");break;
case 2: printf("%");break;}
case 1: switch(z)
{case 1: printf("$");
case 2: printf("*");
default: printf("#");
}
}
这样是不是好看的多了?
输出结果是%#
switch是单纯的比较,x值为0,与case 0匹配,执行switch(y=2)y=2与case 2匹配,执行输出%。由于case 0后面的语句没有break;所以顺序向下执行case 1: switch(z),z=3,与case 1和case 2不匹配,执行default输出#
追问
你说的非常好,但是选项中没有你说的答案!是不是你哪一点疏忽了?
追答
这道题我经过TC编译运行过啊。确实是%#,如果答案里没有的话,那就选*#吧。就是表达式y=2的值为1.   这题可能有毛病。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
冷傲之诸神之父
2011-04-10 · TA获得超过198个赞
知道小有建树答主
回答量:111
采纳率:0%
帮助的人:103万
展开全部
答案是%#
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式