A-A+
下列程序的输出结果是______。 include<stdio.h> main0 {intx
问题详情
下列程序的输出结果是______。 include<stdio.h> main0 {intx=1,y=1,a=1,b=1; switch(x) {case1: switch(y) {case 0:a++;break; case 1:b++;break; } case2: a++;b++;break; } printf("a=%d,b=%dn",a,B); }请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:a=2b=3
分析程序,程序从x=l语句开始执行,之后执行第一个switch语句,switch(x)=switch(1),所以执行case1,casel语句中包含一个复合switch语句;这时执行第二个switch语句,此时y=1,所以switch(y)=switch(1),因此执行case1,将b加1,得到b=2,遇到break语句,退出第二个switch语句,则整个case1的复合语句执行完毕,由于在这个case1的后面没有break语句使其退出第一个switch语句,所以接着执行下列的case2后面的语句,即将a、b各加1,得到a=2,b=3。