问题 单项选择题

有以下程序:
#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=1,b=0

B.a=2,b=2

C.a=1,b=1

D.a=2,b=1

答案

参考答案:D

解析: 本题考查switch语句。x=1,因此第一个switch语句是执行case 1:后面的语句,进入嵌入的 switch语句;y=0,执行case 0:后面的语句,得a=1,遇到break语句退出嵌入的switch语句。由于第一个switch语句的case 1:后面没有break语句,因此继续执行case 2:后面的语句,得a=2,b=1,遇到break语句退出第一个switch语句。结果为a=2,b=1。

选择题
判断题