大家帮我看看这个习题怎么做,给我讲解一下,谢谢
#include"stdio.h"main(){intx,y,z;x=0;y=2;z=3;switch(x){case0:switch(y==2){case1:print...
#include "stdio.h"
main()
{int x,y,z;
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("$");break;
case 2:printf("*");break;
default:printf("#");
}
}
} 展开
main()
{int x,y,z;
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("$");break;
case 2:printf("*");break;
default:printf("#");
}
}
} 展开
3个回答
展开全部
是这样的你看,首先你应该知道switch的用法吧,首先判断x的值,因为x等于0,所以跳到case0执行后面的语句,后面又跟了一个switch中间的式子是y==2,因为你定义的y是2,所以这个式子为真,这个式子的值变是1了,就跳转到case1执行,打印出一个*,跳出这个switch语句,因为你在判断switch(x)的时候执行case0后面的语句会一直执行知道碰到break,因为在case0后面的语句中没有break(后面的break是switch(y==2)的,注意区别),所以会继续执行case1,那么就有因为z的值是3,跳转到嵌入的的switch语句中,由于没有case3,所以跳到default语句,打印出一个#,程序结束,最后打印出的是*#,希望你明白了,不明白可以给我留言哦~~
展开全部
应该是输出“*#”吧!
先执行switch(x) ,由于x=0,所以执行case 0:switch(y==2),这里由于y==2为真(返回布尔值1),所以这句话也可行写成case 0:switch(1),所以就执行case 1:printf("*");break;注意这里的break:他只是跳出switch(1)这个switch而已,由于switch里面的case(0)后面没跟break,所以还要执行下面的case1,所以就来到case 1:switch(z) ,这里的z=3所以就执行default:printf("#"); 这样一来就输出:*#
先执行switch(x) ,由于x=0,所以执行case 0:switch(y==2),这里由于y==2为真(返回布尔值1),所以这句话也可行写成case 0:switch(1),所以就执行case 1:printf("*");break;注意这里的break:他只是跳出switch(1)这个switch而已,由于switch里面的case(0)后面没跟break,所以还要执行下面的case1,所以就来到case 1:switch(z) ,这里的z=3所以就执行default:printf("#"); 这样一来就输出:*#
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不知道楼主写这么一段程序想干什么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询