GESP 七级 · GESP 七级样题(C++ 组) 第 25 题

判断题 · 答案 B · 考点:指针与引用

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

题目

有些算法或数据结构在 C/C++ 语言中使用指针实现,一个典型的例子就是链表。因此,链表这一数据结构在 C/C++ 语言中只能使用指针来实现。( )

答案:B

考点

指针与引用

解题思维

拿到这种绝对化表述的判断题,别急着在链表实现细节里打转,先盯着‘只能’这两个字。命题人就是要考你对语言语义的理解——C++里除了指针,引用和数组指针也是地址相关类型,它们都能实现链表节点间的连接,所以‘只能’就是错的。

常见错误

学生最容易掉进‘工程思维’的坑,觉得链表必须用指针,因为平时写链表代码确实只见过指针。一旦看到‘只能’,就下意识觉得这是常识,直接选正确。其实命题人挖的就是这个刻板印象,让你忽略语法上允许的其他实现方式(比如用引用做成员变量,或者用数组指针模拟链表结构)。

详细解析(节选)

【考点】语言语义理解|绝对化表述陷阱|引用与数组指针的概念

这道题表面上在聊链表实现,实际上考的是你对C++类型系统的理解深度。命题人专门挑了‘只能’这种绝对化的词,就是要卡住那些只懂工程实践、不懂语言底层语义的同学。在C/C++里,指针确实是实现链表最常用的方式,但绝对不是唯一方式。

要破这个题,得先搞清楚‘指针’在语言定义上的边界。指针是一种值类型为‘地址’的变量,用来间接访问内存。但C++里还有两个概念跟地址强相关:引用(Reference)和数组指针(Array Pointer)。引用在语法上看起来像指针(比如&),但它实际上是别名机制,底层也是地址操作;数组指针则是指向整个数组的指针,T*arr这种形式在语法上完全合法。

命题视角很明确:他不想考你链表怎么malloc节点,也不想考你链表怎么遍历,他只想考你看到‘只能’时会不会条件反射地选‘正确’。这类题的本质是反例构造——只要你能找到一种不用指针就能实现链表节点连接的方法,原命题就假。比如,你可以定义一个结构体,成员用引用指向下一个节点(虽然工程上几乎没人这么写,因为引用不能重新绑定,但语法上完全成立);或者用数组指针来模拟链表结构(T*arr指向一个存放节点指针的数组,arr本身就是一个指针,但arr[i]访问的是数组元素,这里可以玩出很多花样)。这些反例都说明‘只能’太绝对了。

解题通法就是识别绝对化词汇,然后快速构造反例。这类题往往不是考数据结构,而是考语言语义理解。命题人利用的就是考生对‘指针’概念的狭隘理解,让你以为指针是地址操作的唯一途径,从而忽略引用和数组指针也是地址相关类型。

避坑提醒:刷到‘只能’‘必须’‘唯一’这类词,先别急着选,脑子里过一遍语言定义。如果是判断题,这种绝对化表述大概率是错的,除非是极其基础且无争议的常识(比如‘0不能作为除数’)。这道题里,链表实现方式显然不是无争议常识,所以‘只能’就是陷阱。

考频与趋势:指针与内存相关题目在题库中占比极高,共考过77题,覆盖2007至2026年所有年份,其中2024年考了17题、2025年考了25题,说明近年对指针概念的考察力度在加大,且更倾向于结合具体场景(如链表、数组指针)来挖坑。链表本身也考了81题,分赛事看GESP五级最多(42题),七级有7题,说明链表是各级别的高频考点。综合来看,未来这类‘绝对化表述+具体数据结构’的判断题仍会高频出现,命题人会继续利用考生对工程实践的熟悉度来设陷阱。

预测:基于近年考频和命题风格,未来可能会继续考类似‘链表只能用指针’‘数组只能用下标访问’这种绝对化表述,或者结合引用、数组指针等冷门语法点来构造反例。考生需强化对语言语义的精确理解,而非仅依赖工程经验。

同考点真题

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