当前位置: 代码迷 >> C语言 >> 急!新手有助,一道C语言题目
  详细解决方案

急!新手有助,一道C语言题目

热度:279   发布时间:2007-05-15 16:17:38.0
急!新手有助,一道C语言题目
若变量已正确定义,以下语句段的输出结果是( )
x=0; y=2; z=3;
switch( x )
{ case 0: switch( y== 2)
{case 1: printf(“*”);break;
case 2: printf(“%”);break;
}
case 1: switc( z )
{ case 1: printf(“$”);break;
case 2: printf(“*”);break;
default : printf(“# ”);
}
}
我直接是不会怎么解,能不能把解题步骤给我说说,先谢谢了!
搜索更多相关的解决方案: C语言  有助  

----------------解决方案--------------------------------------------------------
switch(x) //x=0,进入case 0
case 0:switch(y==2) //y==2,进入case 1
case 1:printf("*");break; //打印“*”,结束此层switch
//之前的case 0末尾没有break,进入case 1(switch(x))
case 1:switch(z) //z=3,进入default
defualt:printf("#") //打印“#”

结果
*#
----------------解决方案--------------------------------------------------------
慢慢来。x=0,y==2,判断为真进入内switch中擦case 1:打印*,然后外switch的case1,z=3,内switch的case 3,打印#
所以就是*#,同楼上
----------------解决方案--------------------------------------------------------
x=0; y=2; z=3;
switch( x )
{ case 0: switch( y== 2)
{ case 1: printf(“*”);break;
case 2: printf(“%”);break;
}
case 1: switc( z )
{ case 1: printf(“$”);break;
case 2: printf(“*”);break;
default : printf(“# ”);
}
}
把代码格式搞好了 以后观察,首先第一个switch x == 0 所以跳到case 0 ,然后判断y==2 是真所以跳到case 1 打印*然后跳出。
----------------解决方案--------------------------------------------------------
楼上是对的 我粗心了 忘了看break。
----------------解决方案--------------------------------------------------------
先执行switch( x ),因为x=0,执行case 0: switch( y== 2),输出*,
因为少了break,又执行case 1: switch( z ),输出#,所以输出*#,
这下该明白了吧!看看下面我改的程序:

#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;
}
break;
case 1: switch( z )
{
case 1: printf("$");break;
case 2: printf("*");break;
default : printf("# ");
}
}
}
----------------解决方案--------------------------------------------------------
  相关解决方案