问题
填空题
以下程序的运行结果是______。 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后的语句,输出&。