|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
有以下程序,执行后的输出结果是( )。
void main()
{ int a=5, b=4, c=3, d=2;
if(a>b>c)
printf("%d\n", d);
else if((c-1 >= d) == 1)
printf("%d\n", d+1);
else printf("%d\n", d+2);
}
A 2
B 3
C 编译时出错
D 4
答案选什么呀,可以解释一下吗
看样子是来做题的,如果是自己写的代码的话请拿走重写。
楼上所说的地方没什么非法的,尽管这种写法非常不推荐,实际上也是符合语法的
第一个 if 条件的拆解为 if((a>b)>c) ,标准指出 > 的结果当表达式为真时为 1 ,否则为 0 ,因此 a>b 的结果为 1 ,故 ((a>b)>c) 的结果为 (1>3) 即假,则不进入此部分的 then-block
第二个 if 条件部分则较为显然, c-1>=d 为真故结果为 1 ,而 1 == 1 ,因此进入此 then-block ,输出 d+1 即 3
|
|