GESP 三级 · GESP 202509 C++ 三级 第 3 题

选择题 · 答案 D

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

题目

以下关于 C++ 数组的说法,错误的是( )。

答案:D

解题思维

答案D。结合数组、位运算、进制等知识综合分析。

常见错误

注意题目中的否定词("不正确""不属于")和绝对化表述("一定""必须")。

详细解析(节选)

【考点】数组下标|数组大小|编译期常量

考纲定位。GESP三级 C++ 大纲 - 数组与内存。命题人放这道题,就是要卡住"最后一个元素下标"这个认知盲区——绝大多数人背了"从0开始",却误以为arr[5]能访问长度为5的数组末尾,这是最易丢分的硬伤。

解题思维。看到题先想三件事:C++数组下标从0开始、大小必须编译期常量、合法下标范围是[0, size-1]。A对(下标起点),B对(5个整型),C对(变量不能做数组维度),D错(arr[5]越界,末尾合法下标是4)。结论:选D。

陷阱拆解。A、B都是直接事实,无陷阱。C的陷阱在于"变量定义大小"——很多考生会想"int n=5; int arr[n];",但C++不支持变长数组(VLA),只有const或编译期常量才行。D的陷阱最阴险:绝对化表述"可以通过arr[5]访问最后一个元素",利用0起标与长度混淆,只背结论不看范围必踩。

反命题思维。如果把arr[5]改成arr[4],D就对了;把数组声明改成int n=5; int arr[n];,C就错了;换成动态数组new int[n],C就变成"运行时确定"。刷到类似题先问"命题人想考我什么"——是考下标范围、大小定义还是动态分配?

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