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;
时间: 2023-06-18 12:02:01 浏览: 151
(16) 若变量已正确定义并赋值,下面符合C语言语法的表达式是( ).doc
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。
阅读全文