问题库
search
首页 计算机 驾照考试 关于

有以下程序: #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
浏览181
计算机二级office题库App
收录最新试题,随时随地刷题
参考答案:B
解析:

【解析】case常量表达式只是起语句标号作用,并不是该处进行条件判断。在执行switch语句时,根据switch的表达式,找到与之匹配的case语句,就从此case子句执行下去,不在进行判断,直到碰到break或函数结束为止。所以执行内层switch(y)时只执行了a++,此时a的值为1。然后执行外层case 2语句的a++;b++;a为2,b为1。所以结果为B)。