有以下定义语句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;要求解释清楚为什么.
2025-02-23 14:05:42
推荐回答(5个)
回答1:

答案是C,(c+w)%(int)a
A、赋值号的左边只能是变量,不能是表达式
B、取模运算的数据只能是整型,(int)a把a强制转换成整型,但b为双精度数据类型,双精度数据类型加实型为双精度数据类型
D、int型变量在内存中占的空间比double型少,所以不能把a,b的值赋给w

回答2:

A、a+b不能够作左值,因为左边不能有表达式
B、double类型不能作int型除数
D、可看为w=(a==b),不能赋值为逻辑值
所以这道题选C

回答3:

应该选C,A没有这样的赋值,B取余(%)两边应该是整数,D很明显错了

回答4:

选B

回答5:

a, b都不对, c, d都没有语法错