谁能告诉我在C语言中这个题如何解答

来源:百度知道 编辑:UC知道 时间:2024/05/11 16:31:49
x=0,y=2,z=3;
switch(y==2)
{
case 1:printf("x");break;
case 2:printf{"%");break;
default printf("#");break;
}
的输出结果是什么 ?原因?
如果执行case 1 那么 case 2就应该写成case 0

因为表达式y==2结果为真,在C语言里非0表示为真,通常1代表“真”。所以会输出 case 1。
假设表达式y==2结果为假,则会在case中找为0 的那一个,如果没有,就会输出 default的结果。
如果你要把case 2: 改为 case 0:如果表达式y==2结果为假,则会输出case 0的结果。

我不明白你的程序里只用到了y,为什么还要声明x和z呢?

x

y==2表达式为真,结果是1

所以执行case 1的语句

字符'x';C语言中,“==”为“比较”,这里y等于二,值为真,即1,所以执行case 1