详细解答下c语言这题
inta=1,b=0;则执行以下语句后,输出的结果是switch(a){case1:switch(b){case0:printf("\"\0\"\n");break;ca...
int a=1,b=0;则执行以下语句后,输出的结果是switch(a)
{ case1:switch(b)
{case 0:printf("\"\0\"\n");break;
case1:printf("\"\1\"\n");break;}
default: printf("\"\2\"\n");break;} 展开
{ case1:switch(b)
{case 0:printf("\"\0\"\n");break;
case1:printf("\"\1\"\n");break;}
default: printf("\"\2\"\n");break;} 展开
6个回答
展开全部
应该是执行 printf("\"\0\"\n");和printf("\"\2\"\n");这两句。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这段代码最终会执行 :printf("\"\0\"\n"); printf("\"\2\"\n");
原因:
1、switch(a) 符合 case 1,所以会执行 switch(b),而switch(b)符合case 0,所以执行 printf("\"\0\"\n");
2、case 0 经过break之后回到switch(a)的case 1。但是,switch(a)的case 1 与 default 之间并没有属于switch(a)的break;所以会执行default里的 printf("\"\2\"\n")
原因:
1、switch(a) 符合 case 1,所以会执行 switch(b),而switch(b)符合case 0,所以执行 printf("\"\0\"\n");
2、case 0 经过break之后回到switch(a)的case 1。但是,switch(a)的case 1 与 default 之间并没有属于switch(a)的break;所以会执行default里的 printf("\"\2\"\n")
更多追问追答
追问
1.case1:switch(b) 语句是什么意思
2.系统先执行 case1 还是case0
3.执行完不是break被终止了吗 为什么还可以执行default: printf("\"\2\"\n");break
追答
1、如果 a 的值 是 1,则看 b 的值
2、你的这个 case 1是指switch(a) 下的case 1还是switch(b)下的case 1呢? 先执行switch(a)下的case 1,它查看 b 的值,结果b的值是0,所以执行switch(b)下的case 0,然后遇到break,跳出switch(b)回到switch(a)的case 1。
3、回到switch(a)的case 1后,没有与这个case 1对应的break。所以执行完case 1后不会跳出switch(a),所以会接着执行 default下的。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
printf("\"\0\"\n");printf("\"\1\"\n");这两句的输出结果,因为switch(a)的case1没有break,会继续执行default里的代码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询