4.下列程序的输出结果是( ) #include <stdio.h> void main() { int a = 55, b = 50, c = 60, d; d = a >

4.下列程序的输出结果是( )
#include <stdio.h>
void main()
{ int a = 55, b = 50, c = 60, d; d = a > 20 ? b : c;
switch(d)
{ case 40:printf(“%d,”, a);
case 50 : printf(“%d,”, b);
case 60 : printf(“%d,”, c);
default : printf(“$\n”);
}
}
a.50,60
b.50,$
c.60,$
d.50,60,$

第1个回答  2011-04-24
答案应为d
本题要注意的是swicth语句的分支没有break,因此只要遇到满足的条件,就会执行此后的所有语句
首先判断d的值,d=a>20?b:c表示如果a大于20则该表达式的值为b 否则为c ;显然a是55大于20,所以d为50。接着执行switch语句,d 是50对应入口为case 50:所以输出b 值50;由于该入口后没有break;所以继续下面case 60:的语句,又输出了c值60,又没有遇到break;语句,就继续执行下面的default语句,又输出了$并回车换行。整个程序结束。
第2个回答  2011-04-24
答案是d

首先判断d的值,冒号表达式d=a>20?b:c表示如果a大于20则该表达式的值为b 否则为c ;显然a是55大于20,所以d为50。接着执行switch语句,d 是50对应入口为case 50:所以输出b 值50;由于该入口后没有break;所以继续下面case 60:的语句,又输出了c值60,又没有遇到break;语句,就继续执行下面的default语句,又输出了$并回车换行。整个程序结束。本回答被网友采纳
第3个回答  2011-04-25
-1 (X--,是先取X的值然后再X=X-1)
调试分解:
1、X=2 while(2) x=x-1;
2、x=1 while(1) x=x-1;
3、x=0 while(0) x=x-1;即x=-1,然后跳出循环
4、输出结果x=-1
第4个回答  2011-04-24
dfs
第5个回答  2011-04-24
选d