2005年发生的重大事件:有关C语言的问题的

来源:百度文库 编辑:高校问答 时间:2024/05/04 05:52:34
已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 。
if(x>y)
z=x; x=y; y=z;

A)x=10,y=20,z=30 B)x=20,y=30,z=30
C)x=20,y=30,z=10 D)x=20,y=30,z=20
为啥选B呀 z=x; x=y; y=z;这个应该怎么看呀

我想说的是:你要注意这个if作用的范围
注意使用的条件!
if(x>y)
z=x;
作用到这里就结束了//如果x>y,就把X的值赋给Z,现在X是小于Y,所以不执行

x=y;
把Y的值赋给X X=20

y=z;
把Z的值赋给Y Z=30

if(x>y)
z=x;
这2句是一起//如果x>y,就把X的值赋给Z,现在X是小于Y,所以不执行

x=y;
这是一句//把Y的值赋给X X=20

y=z;
这是一句//把Z的值赋给Y Z=30

if(x>y)z=x;//因为x=10,y=20,不满足x>y,所以这句是不执行的。
x=y;//把y赋值给x,完成后x=20,y=20,z=30
y=z;//把z赋值给y,完成后x=20,y=30,z=30

x=y的意思是把变量y的值赋给x,执行以后x,y都是原来y里面的值,同理可以知道z=x;x=y;y=z;三个语句的意思

程序容易错选成A,但注意下面三个语句没有用{}括起来,所以不能看成一个整体,if语句所决定的仅仅是第一个语句是否执行。