有以下定义语句 double a,b; int w; long c;
若各变量已正确赋值,则下列选项中正确的表达式是()
string s1,s2; s1 + s2 = "NowCoder";
优先级顺序:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符
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 ✅