GESP 四级 · GESP 四级样题(C++ 组) 第 18 题

判断题 · 答案 A

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

题目

C++ 语言中的全局变量在整个程序的生命周期内都是有效的。( )

答案:A

解题思维

这道题考的是全局变量的生命周期。拿到题先想定义位置:函数外就是全局。全局变量编译期就占内存,程序启动时已存在,直到程序结束才回收,所以整个生命周期都有效。

常见错误

学生常把全局变量和局部变量搞混,以为函数结束变量就没了,或者误以为全局变量只在main函数里有效。还有的会纠结‘程序启动时是否已分配’,其实全局变量在编译期就定地址了,运行期一直保留,不会随函数调用结束而消失。

详细解析(节选)

【考点】变量作用域|存储期(静态存储期)|程序生命周期

GESP四级C++组「变量与作用域」模块。命题人专卡「全局变量生命周期」这一盲区——学生常把全局当局部看,误以为函数结束就失效,或以为全局变量只在main里可用。

解题思维:看到「全局变量」先想「定义位置」(函数外);再想「生命周期」(程序启动到结束)。全局变量在编译期分配内存,运行期一直保留,直到程序终止才被回收;局部变量才随函数结束销毁。因此「整个程序生命周期内有效」这句话完全成立,选A。

陷阱拆解:错误选项B是典型「偷换概念」陷阱。它利用学生把「全局」误读为「主函数内」或「调用者作用域内」的思维惯性,故意制造「全局变量只到函数结束」的错觉。另一陷阱是「边界条件」:学生容易想到「输出时有效」却忽略「程序启动时已存在」。其实全局变量在程序启动时就分配内存,运行期一直保留,直到程序终止才被回收;局部变量才随函数结束销毁。

反命题思维:命题人若把「整个程序生命周期」换成「主函数内」,答案就变B;若换成「从程序启动到结束」,答案仍是A。刷到类似题,先问自己「它想考我『作用域』还是『生命周期』的差异?」——作用域决定「哪里能访问」,生命周期决定「什么时候存在」。

考频趋势:变量与常量在题库共考过77题,覆盖5个考试级别(2023-2025);逐年分布:2023年30题、2024年26题、2025年11题;分赛事:GESP一级40题、GESP二级15题、GESP四级12题、GESP三级8题、CSP入门级2题。作用域与生命周期共考过3题,覆盖2个考试级别(2023-2025);逐年分布:2023年1题、2025年1题;分赛事:GESP四级2题、GESP三级1题。可见该考点在四级出现频率较高,且近年持续考查。

预测:暂无足够依据预测未来具体出题形式,但可预期仍会围绕「全局变量何时存在」「作用域与生命周期的区别」等核心概念设计辨析题。

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