[求助]C语言编程题目
题目为:
有以下定义语句double a,b; intw;longc;
若各变量已正确赋值,则下列表达式正确的是;
A;a=a+b=b++ B ;w%(int)a+b
C;(c+w)%(int)a D;w=a==b
A已理解
B把a强制转换为整形后不是可以与w取余嘛?~
C long 可以和int 取余是不是遵循自动转换类型?
D 为什么不行我搞不通
谢谢高人解答
题目为:
有以下定义语句double a,b; intw;longc;
若各变量已正确赋值,则下列表达式正确的是;
A;a=a+b=b++ B ;w%(int)a+b
C;(c+w)%(int)a D;w=a==b
A已理解
B把a强制转换为整形后不是可以与w取余嘛?~
C long 可以和int 取余是不是遵循自动转换类型?
D 为什么不行我搞不通
谢谢高人解答
2006-12-26 16:29
2006-12-26 18:08
2006-12-26 19:26
2006-12-26 20:07
B没错。是正确的
D是因为加个()后..(a==b)就是一个整体了。它可能有两个值1和0,然后再赋给w。。。。要是不加()。。则就相当于(w=a)==b
执行过程是这样的。先把a的值赋给w。然后再比较w和b是否相等。。结果产生一个逻辑值1或0。。但是这个1或0并没有赋给任何变量。。。因此错误。。。就相当于你写个这样的语句 a>b; 是不是错误你自己想想吧

2006-12-26 21:00
题目为:
有以下定义语句double a,b; intw;longc;
若各变量已正确赋值,则下列表达式正确的是;
A;a=a+b=b++ 错误,a+b不可以做左值 B ;w%(int)a+b 可以
C;(c+w)%(int)a 可以 D;w=a==b//逻辑值 可以,==的优先极比=高
A已理解
B把a强制转换为整形后不是可以与w取余嘛?~
C long 可以和int 取余是不是遵循自动转换类型?
D 为什么不行我搞不通
谢谢高人解答
不管我说的对不对,ZL自己运行一下就知道了.

2006-12-26 22:45
2006-12-26 23:33