C语言一道选择题

来源:百度知道 编辑:UC知道 时间:2024/05/16 17:27:50
设X和y均为int型变量,则以下句:x+=y;y=x-y;x-=y;的功能是_____?
A.把X和Y按从大到小排列 B.把X和Y按从小到大排列

C.无确定结果 D.交换X和Y的值

答案是:D
请问为什么?

x+=y; x=x+y,此时x中存放x,y的和
y=x-y,和-原来的y,此时y中放的是原来的x
x-=y,即x=x-y,和 -原来的x,此时x中放的是原来的y

x=x+y 把xy的和赋值给x
y=x-y 新x的值-y赋值给y,此时的y实际上是初始的x+y的和-y,也就是x
x=x-y 新x的值-新y的值,换为初始值是x+y-x=y
可见,三条语句最终是交换了xy的值

我估计是这样的一个意思
两个数a,b均已赋值假设为1和2
然后
a=a+b=3
b=a-b=3-2=1;
a=a-b=3-1=2;
这不就换值了么?

应该就是这个啦
我不知道C语言,你参考下吧