GESP 四级 · GESP 202403 C++ 四级 第 19 题

判断题 · 答案 A

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

题目

两个函数之间可以使用全局变量来传递数据。( )

答案:A

解题思维

答案A。函数必须有函数名。函数可以没有参数,可以没有返回值(void类型),定义可以在调用之后(需提前声明)。

常见错误

函数必须有名称,但可以有默认参数。参数默认以值传递(传值)。函数未被调用时参数不占内存。

详细解析(节选)

【考点】变量作用域|程序结构

1. 🎯 考纲定位 GESP 四级《C++ 程序设计》模块明确要求掌握“全局变量与局部变量”的概念及其作用域规则。命题人之所以设置这道判断题,就是要精准卡住大量初学者对“作用域”理解的模糊地带——他们往往只记住了“全局变量可以跨函数访问”的结论,却忽略了“传递数据”这一动作在广义上完全可以通过共享全局变量实现,从而在“必须用参数”的思维定势下误判。

2. 🧠 解题思维 看到“两个函数之间可以使用全局变量来传递数据”这十个字,思考链应当是:第一步,确认全局变量的定义——在函数外部声明,其作用域从声明处延伸至文件末尾,所有函数均有权读写;第二步,判断“传递数据”的实现方式——只要两个函数能共同读写同一变量,数据就在它们之间流动了,无需显式参数;第三步,结合 C++ 语法——全局变量声明后,任何函数调用均可直接访问,因此两个函数间确实“可以使用”全局变量传递数据。这一类题的通法就是先定位变量的作用域,再审视题目中的动词(如“可以”“必须”“只能”),最后验证语法可行性。

3. 🪤 陷阱拆解 命题人设计的陷阱极其隐蔽:它利用“传递数据”这一日常语言表述,诱导考生只想到“参数传递”“返回值”等显式方式,却忽略了“共享”也是一种传递。更阴险的是,题目用的是“可以”而非“必须”,意味着只要存在一种实现方式即为正确,但许多学生看到“两个函数”就下意识寻找函数间交互的强制手段,从而误选错误。如果你只背了“全局变量可以跨函数访问”这一结论,而不理解作用域机制和语言表述的精确含义,就一定会掉进这个陷阱。

4. 🔄 反命题思维 站在命题人角度,这道题可以轻松变形:若将“可以使用”改为“必须使用”,答案立刻变为错误,因为参数、返回值、全局对象等都是合法途径;若将“全局变量”替换为“局部变量”,考察点就转向了作用域隔离;若进一步问“全局变量的生命周期是函数调用结束”,则瞬间升级为内存管理或动态规划相关考点。刷到这类题时,先问自己“命题人想考我什么”,别被表面的简单判断题蒙蔽。

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