GESP 一级 · GESP 202403 C++ 一级 第 1 题

选择题 · 答案 B

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

题目

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

答案:B

解题思维

这题考的是C++表达式求值,核心就是运算符优先级。看到题先别急着算,先圈出括号、乘除、加减,按顺序一步步来,括号里先算,再乘除,最后加减,从左到右,就能稳稳拿到8分。

常见错误

很多同学在括号里容易乱套优先级,以为括号就是万能保险箱,其实括号只是改变了运算顺序,而不是自动求值。还有人会忽略括号,直接算3-2*3+5,把乘法优先级搞错,结果算成2;或者把括号算成3-2=1,然后1*3=3,3+5=8,却误把括号当成3-2*3=3-6=-3,然后-3+5=2,还是不对。命题人利用的是只背结论、不理解本质的思维误区,如果你只记得括号优先,却不理解括号内仍有运算顺序,就会掉进这个坑。

详细解析(节选)

考点定位与命题意图

这道题考查的是C++表达式求值,核心就是运算符优先级。命题人放这道题,就是卡住那些“看到括号就默认先算括号,却忘了括号里还有运算顺序”的考生——他们以为括号是万能保险箱,其实括号只是改变了运算顺序,而不是自动求值。在GESP一级大纲里,这属于“程序的基本结构”中的表达式模块,是入门必考的基础语法点。

解题心法:拿到题先想什么

看到题先识别运算符:括号、减号、乘号、加号。关键观察:括号优先级最高,所以先算(3-2)=1。然后乘法优先级高于加法,所以1*3=3,最后3+5=8。每一步依据C++运算符优先级规则。这类题的通法是:先处理括号,再处理乘除,最后处理加减,从左到右依次计算。

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