GESP 一级 · GESP 202406 C++ 一级 第 2 题

选择题 · 答案 D

← 整套速查表 GESP 一级 全部真题

题目

C++ 表达式 3 - 3 * 3 / 5 的值是( )。

答案:D

解题思维

答案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。刷到类似题先问:所有数是否整数?除号是否可能产生小数?优先级是否被括号覆盖?

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断