永发信息网

c语言题目:为什么输出是的是"#&"?如果0代表假,1代表真,那么2代表什么?求详细解释@@

答案:4  悬赏:60  手机版
解决时间 2021-03-27 01:59
c语言题目:为什么输出是的是"#&"?如果0代表假,1代表真,那么2代表什么?求详细解释@@
最佳答案
#include
void main() {
int a=2,b=7,c=5;
switch(a>0) {
case 1:
switch(b<0) {
case 1:
printf("@");
break;
case 2:
printf("!");
break;
}
case 0:
switch(c==5) {
case 0:
printf("*");
break;
case 1:
printf("#");
break;
case 2:
printf("$");
break;
}
default:
printf("&");
}
printf("
");
}第一个switch(a>0)就是 switch(1),里面是switch无满足条件,未进去,但是case 1没有break (break在里面),就进入case 0了;
case 0里面是switch(c==5)也是 switch(1),进入内部case 1,输出“#”,但是case 0依然没得break,就进入default了;
default 打印:“&”
所以结果打印:"#&"
全部回答
2的目的就是忽悠你,没什么作用
这个简单,case 0:switch(c==5)这条开始是要看(c==5)的bool值,为1,所以打印"#",至于2,case“2”不是类型“bool”的切换条件的有效值,但是在while中也是当真来看的,你可以试一下。接下来就跳出了(c==5)的判断,你如果后面加个break就结束了,这里会继续再打印"&".
你明白了么^_^
真假可表示为非零和零,所以任何非零的都表示真,2也表示真
因为上面最外层switch中,每个case执行后并没有break,所以会继续向下执行
switch(a>0)会进入到case 1,进而执行switch(b<0),b不小于0,则case 1和case 2都不会执行,但因为没有break,所以程序会继续向下执行,执行switch(a>0)的case 0,c==5为真, 所以会执行switch(c==5)的case 1,这里有break则跳出本级switch,跳出后上一级switch还是没有break,所以继续执行default,所以输出为"#&"追问在 “case 0:switch(c==5)”的花括号里既然是真为什么不执行case2?追答因为case 1后有break,直接跳出本级switch,另外case 2在这个例子中确实没有什么意义~只是迷惑你的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
刘爷爷九十多岁了在我们村里是什么的人
K788次列车成都东到南昌的时刻表
3月15日南昌到广州的k441有晚点吗?晚点多长
二建报名把单位名字中的建设有限公司写成了建
我在娘家,老公说想我的很,怎么办?
大门两边放什么好
谁有以下植物的图片及简介 菩提花 佛桑花 雨
黄家驹 山不在崎岖是什么歌
想使眼睛明亮,每天喝黑枸杞有效吗
抄袭ppt多少页算窃取商业机密罪
日本火锅的完整发展史
目前拳皇画面最好的只有13把?
东北财经大学怎么样?东北财经的法律系如何?
如皋书法培训哪里好
Fifaonline3 刚选完区就电脑直接重启,以前从
推荐资讯
BHD PT950是什么金?多少钱一克?
江苏句容建筑老板就喜欢欠工人钱赖着不给,特
人的大小便怎么发酵可以当有机肥
单选题加粗成语使用恰当的一项是。A.斯卡恩林
什么滚球软件操作比较简单?
Excel中发现不可读取的内容,是否恢复此工作簿
汉译英在线翻译句子
哎我该怎么回???
我学信网账号在,密码丢了,账号是以前的手机
5.24除于3.8竖式计算怎么算?
求恐怖电影资源
合肥文交所怎么样联系
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?