有以下定义诸可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;
时间: 2024-05-30 14:08:10 浏览: 67
正确的表达式是D。
A选项:a = a + b 是将b的值加到a上,而b++是先将b的值赋给a,再将b的值加1,两个操作没有直接关系,不符合语法。
B选项:w%(int)a+b中,int强制转换会将a的值转换为整型,但是a的值为double型,不符合语法。
C选项:(c+w)%(int)a中,变量c没有定义,不符合语法。
D选项:w=a==b中,先比较a和b是否相等,结果为true或false,再将结果赋给w,符合语法。
相关问题
c语言中,有以下定义语句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;
A选项中,a=a+b=b++ 是错误的语句,因为赋值运算符的优先级比自增运算符低,因此应该先执行b++,再执行a=a+b。但是,由于同一个数值不可能既加又被赋值,因此这个语句是错误的。
B选项中,(int)a+b可能会出现a为小数的情况,而C语言中,%运算符只能用于整数类型,因此这个语句也是错误的。
C选项中,c与w都是长整型,因此c+w的结果也是长整型,而(int)a是将a强制转换为整型,因此%(int)a是对a的整型部分取模。这个语句的结果是正确的。
D选项中,a==b的结果是一个布尔类型,即1或0,而w是整型,因此w=a==b的结果是正确的。
因此,正确的表达式是C.(c+w)%(int)a。
c语言中,有以下定义语句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;
正确的表达式是 C.(c+w)%(int)a。
原因如下:
A. a = a + b 表示将 a 和 b 的值相加后赋值给 a,b++ 表示将 b 的值加 1,但表达式的值还是原来的 b 值,因此 A 不正确。
B. (int)a + b 表示将 a 强制转换为整型后再与 b 相加,% 表示取模运算,w 与 (int)a + b 的余数不一定是正确的,因此 B 不正确。
C. c + w 表示将 c 和 w 的值相加,(int)a 表示将 a 转换为整型后,将 c + w 的结果对 (int)a 取模,这个表达式是正确的。
D. a == b 表示判断 a 和 b 是否相等,返回一个布尔值,将布尔值赋值给整型变量 w 不正确。
阅读全文