问题 填空题

以下程序运行后的输出结果是______。
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语句,如果有,则在这个case语句直接跳出switch语句,反之继续执行下一个case语句。因此,程序在第一个switch语句内部,遇到第一个case语句判断成功,然后内部还嵌套了一个switch语句,执行第一个case 0语句,执行了a++,遇到了break语句,则跳出内部的switch,继续执行外部的switch,此时执行了a++和b++,因此,最终a自增了两次,b自增了一次,输出为2 1。

单项选择题 B1型题
单项选择题