有以下程序:  #include <stdio.h>  main()  { int x=1,y=0,a=0,b=0;   switch(X)   { case 1:   switch(y)   } case 0:a++;brea

admin2022-04-01  30

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

选项 A、a=2,b=2
B、a=2,b=1
C、a=1,b=1
D、a=1,b=0

答案B

解析 case常量表达式只是起语句标号作用,并不使该处进行条件判断。在执行switch语句时,根据switch的表达式,找到与之匹配的case语句,就从此case子句执行下去,不再进行判断,直到碰到break或函数结束为止。所以执行内层switch(y)时只执行了a++,此时a的值为1,然后执行外层case 2语句的a++;b++;,a为2,b为1,所以结果为B选项。
转载请注明原文地址:https://kaotiyun.com/show/v9kp777K
0

最新回复(0)