GESP 三级 · GESP 202512 C++ 三级 第 2 题

选择题 · 答案 C

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

题目

以下关于标准 C++ 一维数组的描述,哪一项是错误的?( )

答案:C

解题思维

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

常见错误

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

详细解析(节选)

【考点】数组下标|内存连续性|数组长度编译期确定

本题考查《GESP 考试大纲》编程基础模块 C++ 语法(三级),命题人专卡'数组长度必须是编译期常量'这一易错点,多数考生会混淆动态数组与标准数组的概念,误以为数组大小可以像 vector 那样在运行时动态调整。

看到题先回忆标准数组定义:下标从 0 开始、内存连续、长度在定义时就必须固定。逐项核对:A 符合 C++ 规范;B 是数组存储本质特征;C 错在'只能运行时确定'——长度必须是编译期常量表达式;D 显然正确。通法:判断数组相关描述时,优先确认下标起始、内存连续性、长度确定时机三要素,这是区分标准数组与动态数组的核心判据。

选项 C 是命题人精心设计的陷阱:它利用初学者对'动态数组'(如 vector)的既有认知,偷换概念将'长度需在编译期确定'扭曲为'只能运行时确定'。绝对化表述'只能'直接暴露错误,若只背结论不理解本质,就会误选。其他选项均符合 C++ 标准定义,无歧义。

命题人视角:若将'只能运行时确定'改为'可运行时确定',则正确选项会变为 D 或 E(假设增加动态数组选项),因为此时描述的是动态数组而非标准数组。刷到类似题先问:'命题人想考我标准数组与动态数组的区别吗?'

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