GESP 三级 · GESP 三级样题(C++ 组) 第 22 题

判断题 · 答案 B · 考点:一维数组

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

题目

C++ 语言中的数组可以根据需要自动调整大小。( )

答案:B

考点

一维数组

解题思维

这题考C++数组的定长特性,拿到题先别想扩容,直接回忆定义时[]里必须是常量表达式,数组大小一旦确定就不能自动变。

常见错误

学生容易把数组和vector混淆,觉得‘数组也能动态调整’;或者看到题目说‘根据需要使用’就误以为C++数组支持运行时改变大小,其实C++标准数组是静态定长的,想变大小得用vector等动态容器。

详细解析(节选)

【考点与概念】本题考查GESP三级《编程语言与数据结构》中C++数组的核心特性:数组是静态定长容器。所谓‘定长’,是指数组的大小在定义时刻就彻底确定了,后续程序运行中无法自动增减元素个数。这与动态容器(如vector)有本质区别——vector可以在运行时自动扩容或缩容,而C++数组不行。

【命题视角】命题人专门卡住这个基础认知:很多考生背过‘数组是连续存储的’,却忽略了‘定长’这个关键属性。题目用‘根据需要使用自动调整大小’这种看似合理的描述,就是典型的语义陷阱,目的是测试你是否真正理解C++数组的定义规范,而不是凭直觉或混淆概念。

【解题心法】看到‘自动调整大小’四个字,第一反应要回归语言规范:C++数组定义时[]内必须是常量表达式(比如int a[10]),大小一旦写死就不可变。如果题目暗示运行时能改大小,那肯定不是数组,而是vector。这类题的通法是‘先定性,后定量’——先判断它属于哪一类容器,再确认它的具体行为。

【计算与验证】虽然本题是纯概念题,但我们可以用一个小例子验证:int arr[5] = {1,2,3,4,5}; 此时arr只能存5个元素,再多一个就会溢出。若想存6个,必须重新定义arr[6]或改用vector<int> v; v.push_back(6); 这进一步说明C++数组不支持‘自动调整’。

【避坑提醒】最容易错的是把‘数组元素可以逐个赋值’当成‘数组大小可以动态调整’。确实,int a[3] = {1,2,3}是合法的,但这里的3是定义时的常量,不是运行时动态确定的。还有学生可能误以为可以用arr.size()来改变数组长度,其实size()只是返回当前长度,无法修改。

【考频与趋势】从真实数据看,复合类型(含数组)在题库中已考过146题,覆盖7个级别,且考频逐年上升:2023年21题、2024年42题、2025年47题、2026年27题。其中GESP三级考了22题,说明三级考生必须牢牢掌握数组的定长特性。一维数组更是高频考点,共224题,2025年达55题、2026年59题,三级占比32题,呈明显上升趋势。

【预测】基于上述数据,未来GESP三级及四级考试中,仍会高频出现类似概念辨析题,命题人可能会继续用‘动态调整’‘自动扩容’等描述来混淆数组与vector,也可能结合简单计算(如给定数组定义判断是否合法)来综合考查。暂无足够依据预测更细的题型变化,但‘数组定长’这一考点的重要性只会增不会减。

同考点真题

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