问题 单项选择题

以下程序运行后的输出结果是
#include<stdio.h>
main( )
int x=1,y=0,a=0,b=0;
switch(x)
case 1:
switch(y)
ease 0:a++;break;
ease 1:b++;break;

ease 2:a++;b++;break;
case 3:a++:b++:

printf("a=%d,b=%d\n",a,b);

A.a=1,b=0

B.a=2,b=2

C.a=l,b=1

D.a=2,b=1

答案

参考答案:D

解析: 由于x=1,从外层switch的case 1入口,到达内层的switch;由于y=0,从内层switch的case 0入口,执行a++;,执行break语句,跳出内层sw:itch结构;“case常量表达式”只能起语句标号作用,并不是在该处进行条件判断。本题程序在执行完内层switch结构后,继续执行了外部switch结构的case 2分支。最后a和b的值分别为2和1。

单项选择题
问答题