下列程序的输出结果是()main(){int  x=1,a=0,b=0;switch(x){  &

下列程序的输出结果是()
main()
{
int  x=1,a=0,b=0;
switch(x)
{
    case0:b++;
    case1:a++;
    case2:a++;b++;
}
   printf(“%d,%d\n",a,b);
}


A、

1,0


B、

1,1


C、

2,1


D、

2,2


【正确答案】:C
【题目解析】:

该switch结构分支没有加break,即开始执行后,程序有x=1调到case1分支,a++(此时a=1),继续执行下一个分支,a++,b++(此时a=2,b=1)

main()
{
int  x=1,a=0,b=0;
switch(x)                                 // x=1
{
    case0:b++;
    case1:a++;                //  因x=1,调到case1,a=a++=a+1=1
    case2:a++;b++; //因无break(跳出语句),继续执行case2,a=a++=1+1-2,b=b++=b+1=0+1=1
}
   printf(“%d,%d\n",a,b);//执行,输出:2,1
}