在C中,有以下定义:int a;long b;double x,y;则以下选项中正确的表达式是 (A) a%(int)(x-y) (B)a=x!=y(C)(a*y)%b(D)y=x+y=x答案是什么,还有为什么?
问题描述:
在C中,有以下定义:int a;long b;double x,y;则以下选项中正确的表达式是 (A) a%(int)(x-y) (B)a=x!=y
(C)(a*y)%b
(D)y=x+y=x
答案是什么,还有为什么?
答
选 A,B
有些人会说B是不正确的,不过严格说来它是对的.虽然对double来说,相等判断用==或!=有点值得商榷,但是绝对是可以这么用的.
C 取模只支持整数 a* y 是double 了
D 赋值的运算优先级是很低的,x+y的结果是右值,所以把x的值赋给它肯定是不允许的