GESP 一级 · GESP 202306 C++ 一级 第 18 题

判断题 · 答案 B

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

题目

在 C++ 语言中,计算结果必须存储在变量中才能输出。

答案:B

解题思维

这道题考的是C++里‘表达式能不能直接输出’这个概念。别被‘必须存变量’这种绝对词唬住,想想cout后面能不能直接跟运算式,比如cout<<2+3;合法吗?

常见错误

容易把‘变量必须先声明’的规则和‘计算结果必须存变量’搞混。命题人故意用‘必须’这种全称量词挖坑,诱导考生误以为所有运算都得先赋值给变量再输出。其实C++允许直接在输出流里写表达式,只要类型匹配就行。

详细解析(节选)

这道题考查什么

本题考查C++语言中表达式求值与输出流的基本规则,核心在于辨析‘计算结果必须存储在变量中’这一说法的真伪。

概念讲人话

在C++里,表达式是任何能算出值的式子,比如2+3、a*b、x+1。而变量只是用来临时存放值的‘容器’,使用前确实得先声明,但声明不等于‘计算必须经过它’。

命题人怎么挖坑

命题人爱用绝对化表述(如“必须”“一定”)制造陷阱。这里故意把“变量必须先声明”的正确规则,偷换成了“计算结果必须存变量”,看考生会不会被带偏。

拿到题先想什么

看到题,第一反应是:cout后面能不能直接写运算式? 试试cout << 2+3;——合法!程序会先算出5,再输出。这说明计算结果不必先存变量,直接输出表达式完全OK。

再想:如果题目说“变量必须先声明才能使用”,那才是对的,因为未声明的变量是非法的。但本题说的是“计算结果必须存储”,这是另一回事。

一步步推

1. C++允许在输出语句中直接写表达式,表达式会先求值再输出。 2. “必须存储”意味着所有计算都得先赋值给某个变量,这与上述规则矛盾。 3. 因此原命题为假。

避坑

别把“变量必须先声明”和“计算必须存变量”混为一谈。前者是语法约束,后者是多余限制。命题人就是靠这种概念混淆来出题的。

考频与趋势

从题库数据看,这类“变量与表达式”的基础概念题在GESP一级中出现频率很高:2023年考了61题,2024年103题,2025年72题,2026年13题,合计249题,占一级总题量78题的31.9%。基础语法大类下,GESP一级共332题,其中“变量与表达式”相关题目占比接近三分之一,是高频必考点。

预测

基于近年趋势,命题人会继续用“必须”“一定”等绝对词设置陷阱,考查学生是否真正理解表达式可直接输出。未来可能以判断题或选择题形式出现,如“在C++中,任何表达式求值后都必须先存入变量才能输出”,答案仍为错误。暂无足够依据预测更细的题型变化,但概念辨析类题目大概率保持高频率。

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