我没实际写,但是如果我没理解错
应该是a=3 b=6
int a,b;a=3;b=5;最开始定义和赋值肯定没问题,
switch(a-1) 因为a=3,所以switch(a-1)等价为switch(2),但a未被重新赋值,所以a依旧为3
即从case2开始,但case2无计算式,且所有case中间没有break
所以 case2 case3处理方式一样都是b*=4
b*=4 b=20
b+=4 b=24
b/4 b=6
void
main(){
int
a=13,b=21,m=0;
switch(a%3)
//a%3
=
1
{
case
0:
m++;
break;
case
1:
//执行这里
m++;
//
m++
后为
1
switch(b%2)
//b%2
=
1
{
default:
m++;
//执行这里
m++
为2
case
0:
m++;
//因为上一句没有break;
所以继续m++
就是3
break;
}
}
printf("%d",m);
//所以结果为3
}
综上,结果为打印一个
3
如果我的回答对你有帮助,那么我也很高兴:)