以下程序段的输出结果是什么 int a=5, b=4, c=3, d; d=(a<b<c);

作者&投稿:禽裕 (若有异议请与网页底部的电邮联系)
以下程序段的输出结果是什么 int a=5, b=4, c=3, d; d=(a<b<c);~

关系表达式的计算是左结合的,也就是说会先计算ab,所以a<b=0,然后再计算0<c,显然0<c=1,所以d=1,打印出来就是1

答案选A。将程序写清晰如下,注意最后还有一句 a=b+c;
int a=5,b=4,c=3;
if(a>b) {
//程序会进入此
a=b+c, // 执行完此句,a = 7
b=2*c; // 执行完此句,b = 6
}else {
//程序不会进入此
a=b-c,
b=3*c;
}
a=b+c; // 执行完此句,a = 9
printf("%d %d",a,b);

关系表达式的计算是左结合的,也就是说会先计算a<b的值,显然a>b,所以a<b=0,然后再计算0<c,显然0<c=1,所以d=1,打印出来就是1

你的提问是不是有输入错误?
d=(a<b<c)这个表达式不成立的

关系运算符,自左往右。a<b即5<4为0,0<c即0<3为1,则d=1.


是不是 三目运算符?d=a > b ? a : b;