(C语言)以下程序的运行结果是:

如题所述

输出

#&

下面开始我的解释

int
a=2,b=7,c=5;

switch(a>0)
这里a
=
2,a>0结果是1,所以执行switch的case
1

{

case1:switch(b<0)执行这里,由于b=7所以b<0结果是0,执行case
0,这个switch没有case
0所以直接退出

{

case1:printf("@");break;

case2:printf("!");break;

}

case0:switch(c==5)
因为c=5,所以c==5的结果是1,执行case
1

{

case0:printf("*");break;

case1:printf("#");break;
执行这句输出
#

case2:printf("$");break;

}
注意这里!!这里没有break所以直落到下面的default里了,输出&

default:printf("&");

}

printf("\n");

结果就是

#&
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-08-15
结果应该执行printf("*");和printf("&");两句

因为a=2>0进入第一层条件分支

因为b=7>0跳过switch(b<0)这个分支

因为c=5进入switch(c==5)这个分支

默认执行case0:printf("*");break;执行之后跳出当前分支

最后默认执行default:printf("&");
相似回答