以下程序的运行结果是【 】。 main() { int a=2,b=7,c=5; switch(a>0) { case 1: switch (b<0) { case 1:printf(

admin2009-01-15  28

问题 以下程序的运行结果是【  】。
   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语句执行完毕。程序最后输出的换行符不会显示,所以本题应该填#&。
转载请注明原文地址:https://kaotiyun.com/show/SmXp777K
0

最新回复(0)