问题 填空题

以下程序运行后的输出结果是 【9】  。  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;    }    printf("%d %d\n",a,b);  }

答案

参考答案:2 1

解析:switch分支结构中,每个case语句后应有一个break语句跳出。本题中外层的switch分支中的第一个分支没有break语句,所以,外层分支事实上没有分支,是顺序执行的(因为x的值满足进入第一个分支的条件);第二个switch分支满足第1个case条件,此时a、b的值为1,0;再执行外层switch分支的第二个case语句,a、b均加1,最后a、b的值分别为2和1。

选择题
单项选择题