谁知道这个C语言的结果是什么?它是怎么运行出来的?

#include<stdio.h>main(){intx=0,y=2,z=3;switch(x){case0:switch(y==2){case1:printf("*")... #include<stdio.h>
main()
{
int 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("$");
case 2: printf("*");break;
default:printf("#");
}
}

}

给我结果
展开
 我来答
shalemander
2008-03-17 · TA获得超过153个赞
知道答主
回答量:46
采纳率:0%
帮助的人:0
展开全部
*#
switch(x) ,由于x=0,执行case 0:switch(y==2) ,发现y=2成立,"y==2"这个表达式为真(即值为1),执行case 1: printf("*");break;打出“*”,并跳出“case 0”后的大括号。程序继续往下,case 1:switch(z),因为z=3,故执行default:printf("#");
最终打出*#
我用vc6.0试了,没错
百度网友d6c5e84
2008-03-17 · TA获得超过448个赞
知道小有建树答主
回答量:578
采纳率:0%
帮助的人:327万
展开全部
#include <stdio.h>
void main()
{int x=0,y=2,z=3;
switch(x)
{
case 0:
switch(y==2) /*y==2为真,所以这里等价于switch(1)*/
{
case 1:printf("*");break; /*输出*,跳出*/
case 2:printf("%");break;
}
case 1:switch(z) /*执行此处,因为z=3所以输出#*/
{
case 1:printf("$");
case 2:printf("*");break;
default:printf("#");
}

getch();
}
}
因此最后输出*#
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式