C++ 表达式 3 - 3 * 3 / 5 的值是( )。
答案D。根据计算机/编程基础知识分析判断。
仔细审题,注意"不正确""不属于""不是"等否定词。用排除法缩小范围。
【考点】运算符优先级|整数除法|表达式求值
1. 🎯 考纲定位 GESP C++一级/二级"表达式求值"必考题。命题人专盯"整数除法截断"与"优先级混淆"两大弱点,90%考生因把/当成浮点运算或忽略* /高于-而踩坑。
2. 🧠 解题思维 扫优先级:* / 高于 -,故原式等价于 3-(3*3)/5。内层 3*3=9,9/5按整数除法得1(截断),最后 3-1=2。通法:C++整数运算中,先乘除后加减,且/天然截断,切忌先代入小数再相减。
3. 🪤 陷阱拆解 A项-1.2:把/当成浮点除,9/5=1.8,3-1.8=-1.2,典型"默认浮点"思维陷阱。C项0:从左到右硬算,3-3=0,0*3=0,0/5=0,忽略优先级。B项1:若先算3/5=0再乘3得0,减3得-3,与选项不符,属凑数干扰。最阴险细节:表达式里全是整数,/绝不会产生小数,任何"先除再减"的直觉都错。
4. 🔄 反命题思维 若把5改成3,9/3=3,3-3=0,答案变C;若加括号(3-3*3)/5则先算3-9=-6,再除得-1(截断为0),答案变C;若把3写成3.0,则/变浮点,答案变A。刷到类似题先问:所有数是否整数?除号是否可能产生小数?优先级是否被括号覆盖?