#include "stdio.h"

问题描述:

#include "stdio.h"
main()
{int x,y,z;
x=0;y=2;z=3;
switch(x)
{case 0:switch(y==2)
{case 1:printf("*");break;
case 2:printf("%");break;
}
case 1:switch(z)
{case 1:printf("$");break;
case 2:printf("*");break;
default:printf("#");
}
}
}

应该是输出“*#”吧!
先执行switch(x) ,由于x=0,所以执行case 0:switch(y==2),这里由于y==2为真(返回布尔值1),所以这句话也可行写成case 0:switch(1),所以就执行case 1:printf("*");break;注意这里的break:他只是跳出switch(1)这个switch而已,由于switch里面的case(0)后面没跟break,所以还要执行下面的case1,所以就来到case 1:switch(z) ,这里的z=3所以就执行default:printf("#"); 这样一来就输出:*#