问题 填空题

以下程序的运行结果是 【9】
main()
int a=2,b=7,c=5;
switch(a>0)

case 1:
switch (b<0)
case 1:printf("@"); break;
case 2:pnntf("!"); break;

case 0:
switch (c==5)
case 0:pnntf("*"); break;
case 1:printf("#"); break;
case 2:printf("$"); break;

default: printf("&");

printf("\n");

答案

参考答案:#&

解析: 首先看最外面的switch,其表达式为a>0,结果为真(即1),从case 1:标号处开始执行。这里又是一个switch语句,其表达式为b<00,结果为假(即0),由于没有case 0:或default:标号,所以直接跳过此switch语句。因为没有遇到break;语句,所以继续执行进入内部第2个switch语句,其表达式为c==5,结果为真,从case 1:标号处开始执行,输出一个#,遇到break;语句,跳出该内部switch语句,最后执行default:标号后的输出语句输出一个&后,整个外部switch语句执行完毕。程序最后输出的换行符不会显示,所以本题应该填#&。

多项选择题
判断题