24. 设a=1,b=2,c=3,d=4,则表达式: a<b?a:c<d?a:d的结果为() A.4 B.3 C. 2 D.1 a<b?a:c<d?a:d

24. 设a=1,b=2,c=3,d=4,则表达式: a<b?a:c<d?a:d的结果为()
A.4 B.3 C. 2 D.1
a<b?a:c<d?a:d 这个表达式是什么意思,怎样运算???

28.设x,y,z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为()
A.4 B. 16 C. 32 D. 52
答案是C,这个题是怎么算的???

31.设x和y均为int型变量,则以下语句: x+=y;y=x-y;y=x-y;x-=y;的功能是()
A.把x和y按从大到小排列 B.把x和y按从小到大排列 C. x和y保持原值不变D。交换x和y中的值
答案是C,看不懂x+=y;y=x-y;y=x-y;x-=y;究竟是个什么意思???

1、D
a<b?a:c<d?a:d 是个条件表达式的语句 ? :
(a<b) ? a:(c<d ? a:d ) 功能类似于 if
就 a<b 成立的话, 表达式的值返回 a ,否则 返回 c<d ? a:d --》 如果 c<d 成立 则返回 a,否则返回 d,此处 a<b 成立 返回 a
2、x=(y=4,z=16,k=32) 括号内部是 逗号运算符,他的运算规则为 从左到右进行运算,并且返回 最后一个 位置的 值 即 返回 32 ,就是 x=32 了

3、 x+=y;y=x-y;y=x-y;x-=y;
分别可以写成一下
x=x+y;
y=x-y;
y=x-y;
x=x-y;

建议 多看看C语言的基础知识
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-07-21
1.当于条件表达式:
我们先看看这个吧:
int x=a<b?a:b;(当a,b为整数的时候)这个式子表示如果a<b成立的话就把a的值赋给x 如果不成立的话就把b的值赋给x.
我们再来看看题目中的式子:a<b?a:c<d?a:d;我们肯定是先看右边的式子啦,就是可以这样看这个式子:a<b?a:(c<d?a:d);先算出c<d?a:d,根据题目中,c=3,d=4可知c<d成立;故原式可化为a<b?a:a;可知式子的值就等于a;
2.这是个逗号表达式:最后式子的值就是最后一个逗号的值;所以就是32
3.x+=y; x=x+y,y=y;
y=x-y; x=x+y,y=x;
y=x-y; x=x+y,y=x
x-=y; x=y,y=x
所以选择D
第2个回答  2011-07-21
24、D
a<b?a:c<d?a:d,相当于:
如果a<b那么就取a的值,否则需要查看c<d的结果,如果c<d那么值就去a,否则取d的值。
当前a=1,b=2,a是小于b的,直接取a的值,那么结果为1
28、C
31、C
举个列子初始:X=2,Y=1。
x+=y相当于x=x+y=2+1→x=3;
y=x-y相当于y=3-1→y=2;
y=x-y相当于y=3-2→y=1;
x-=y相当于x=x-y=3-1→2;
所以到最后x,y的值都没有变
第3个回答  2011-07-21
24. 这样看就明了, (1<2)?1:((3<4)?1:4),先计算<, 再从右往左算,值是1,

28. 逗号运算表达式,值取最后一个,所以x=32
31.
x=x+y;
y=x-y; // y=(x+y)-y
y=x-y; // y=(x+y)-((x+y)-y)
x=x-y; // x=(x+y)-y
结果,y, x不变
第4个回答  2011-07-21
C语言入门书籍里都讲过了
相似回答