GESP 一级 · GESP202609 C++ 一级 第 23 题

判断题 · 答案 B

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

题目

在 C++ 代码中,如果两个变量 __ 和 ____ 都只包含下划线( _ ),但数目不同,则可能导致编译器无法识 别,而报告变量重复定义。

答案:B

解题思维

看到题先想C++标识符规则:下划线是合法字符,但标识符唯一性取决于完整字符序列而非字符种类。不同数量下划线构成不同标识符,编译器逐字符比对,不会因数量差异报告重复定义。此类题通法是区分"字符种类"与"字符数量"对标识符的影响。

常见错误

选项A错误在于视觉相似性误导。命题人利用"下划线都是下划线"的直觉,但标识符唯一性取决于完整字符串。边界处单下划线_与双下划线__是合法区分名,不存在识别冲突。

详细解析(节选)

1. 考纲定位

本题考查的是《GESP 考试大纲》一级C++模块中的"变量定义"与"标识符规则"。命题人特意在试卷里放这道题,是因为它卡住了绝大多数考生的直觉陷阱——以为"都是下划线"就必然冲突,却忽略了C++标识符的唯一性原则(identifier uniqueness):编译器逐字符比对完整字符串,__ 与 ____ 是两个不同的标识符,不会导致重复定义错误。

2. 解题思维

看到题先想"C++标识符由字母、数字、下划线组成,且区分大小写"。关键观察是:题目只强调"都只包含下划线",却没提"数量相同"。推理链条:不同数量的下划线 → 不同长度的标识符 → 编译器将其视为两个独立标识符 → 不会报告重复定义。这一类题的通法是:先确认标识符规则(允许下划线),再判断是否满足唯一性条件(字符序列完全相同)。

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