问题
填空题
以下程序的运行结果是______。
main()
(int a=2,b=7,c=5;
switch(a>0)
case 1:switch(b<0)
case 1:switch("@");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为真(1),与case1匹配,然后执行case1后面的switch语句,表达式b<0值为0,没有与其匹配的语句,返回外层,因为外层没有break语句,顺序执行case 0后面的switch语句,表达式“c==5”值为1,与其后面的case1匹配,因此输出#,遇到break返回外层,又因为外层没有break语句,顺序执行default后的语句,输出&。