[多选题]有以下定义语句 double a,b; int w; long c; 若各变量已正确赋值,则下列选项中正确的表达式是() A. a=a+b=b++ B. w%(int)(a+b) C. (c+w)%(int)a D. w=a==b;
B
bc
BC
b
%不是只针对int型吗?C为什么对?
double型不能相等,所以D错
bcd
fzh 回复 fzh: 不对,D是错的,D有分号,是语句不是表达式
useryang 回复 useryang: 为什么大家不选cd啊,我跑起来都行啊
D
我有我的名字 回复 我有我的名字: 啊啊啊啊
曹腾辉 回复 曹腾辉: D不对
zzw1803472614 回复 zzw1803472614: 多选 => +C
解题步骤 优先级顺序...
用户登录可进行刷题及查看答案
解题步骤 优先级顺序:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符
A. a=a+b=b++ 对于选项A,我们先按优先级计算 ++ ,然后计算 + ,最后计算赋值运算符 = 但当我们计算完 + 后,发现这时 a+b = b++ 出现错误
B. w%(int)(a+b) 对于选项B,先对()进行运算,即计算(a+b)的值,再强制转换为int型,最后进行取余运算
C. (c+w)%(int)a 对于选项C,先对括号进行运算,即计算(c+w)的值 ;同时进行对a强制转换为int型 最后进行取余运算
D. w=a==b; 对于选项D,D的最后有“;”,D是语句不是表达式 如果D是表达式的话,它先进行关系运算符 == 的计算,判断 a与b的值是否相等,相等返回1,不同返回0 然后将判断后的返回值赋值给w
登录后提交答案