有关case的c语言程序填空

发布网友 发布时间:2022-04-22 06:07

我来回答

2个回答

热心网友 时间:2023-07-31 08:38

X=0;y=2;Z=3
在你的代码片段中switch(x)的每个case后面都跟了一条switch语句,下面我给你整理了一下它们的隶属关系,然后进行了分析:
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("*");
defalut
:printf("#")
;


首先
switch(x)由于x的值为0,所以进入case
0:而后面的语句又是一switch语句即switch(y==2)由于y的值为2,所以y==2的值为1,因此进入
switch(y==2)

case
1:printf("*");break;
case
2:printf("%");break;

中的case
1:
输出*,然后break结束这个switch(y==2),然后进入外层switch的case
1:进入switch(z)由于z的值为3,所以执行printf("#")
;
输出#,结束。
因此最终输出结果为:*#

热心网友 时间:2023-07-31 08:38

很简单的问题,因为你的case
0:switch(y==2)执行完之后没有break,所以继续往下执行case
1:switch(z),你的break只是跳出switch(y==2)下面的复合语句,此外你的default打错了吧

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com