下列程序的输出结果是______。 #include<stdio.h> main() { int x=1,y=1,a=1,b=1; switch(x) { case 1:

admin2013-02-23  25

问题 下列程序的输出结果是______。
   #include<stdio.h>
   main()
   {    int x=1,y=1,a=1,b=1;
        switch(x)
        {    case 1:
                 switch(y)
                 {   case 0: a++; break;
                     case 1: b++; break;
                 }
             case 2:
             a++;b++;break;
        }
        printf("a=%d,b=%d\n",a,B) ;
   }

选项

答案a=2,b=3

解析 分析程序,程序从x=1语句开始执行,之后执行第一个switch语句,switch(x)=switch(1),所以执行case1,case1语句中包含一个复合switch语句:这时执行第二个switch语句,此时y=1,所以switch(y)=switch(1),因此执行case1,将b加1,得到b=2,遇到 break语句,退出第二个switch语句,则整个case 1的复合语句执行完毕,由于在这个case 1的后面没有break语句使其退出第一个switch语句,所以接着执行下列的case 2后面的语句,即将a,b各加1,得到a=2,b=3。
转载请注明原文地址:https://kaotiyun.com/show/UePp777K
0

最新回复(0)