c语言题目:为什么输出是的是"#&"?如果0代表假,1代表真,那么2代表什么?求详细解释@@
#include<stdio.h>voidmain(){inta=2,b=7,c=5;switch(a>0){case1:switch(b<0){case1:printf...
#include<stdio.h>
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("\n");
} 展开
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("\n");
} 展开
4个回答
展开全部
真假可表示为非零和零,所以任何非零的都表示真,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,所以输出为"#&"
因为上面最外层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在这个例子中确实没有什么意义~只是迷惑你的
展开全部
#include<stdio.h>
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("\n");
}
第一个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 打印:“&”
所以结果打印:"#&"
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个简单,case 0:switch(c==5)这条开始是要看(c==5)的bool值,为1,所以打印"#",至于2,case“2”不是类型“bool”的切换条件的有效值,但是在while中也是当真来看的,你可以试一下。接下来就跳出了(c==5)的判断,你如果后面加个break就结束了,这里会继续再打印"&".
你明白了么^_^
你明白了么^_^
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
2的目的就是忽悠你,没什么作用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询