如果 a 为 int 类型的变量,下列表达式不能正确表达 “a 是奇数时结果为 0,否则结果非 0” 的是( )。
答案A。表达式(3==0)+'A'+1+3.0中,有double参与运算,整个表达式结果提升为double类型。
表达式结果类型由最高精度的操作数决定。double参与运算后整个表达式提升为double。
【考点】整除运算|取模运算|条件判断
本题考查《GESP 一级 C++ 大纲》"运算符与表达式"模块中的整除与取模运算概念,以及布尔值与数值型表达式的区别。命题人卡住的是考生对运算符作用域和结果类型的混淆——一级考生普遍认为"表达式求值后把结果赋给 a",却忽略了题目要求的是"表达式的值"而非"变量的新值"。