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

选择题 · 答案 C

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

题目

若有以下代码,则数组 arr 的长度是( )?

int arr[] = {1, 2, 3, 4, 5};
答案:C

解题思维

这题考的是C++数组声明语法,核心是看花括号里到底有几个元素。拿到题别慌,直接数大括号内逗号分隔的整数个数,编译器会自动按这个数量分配空间,长度就是元素个数。

常见错误

最容易犯的错误是数错元素个数,比如把花括号本身当成一个元素,或者只数了前几个就停手;还有人会混淆数组长度和下标,以为下标从1开始或者把逗号数量当长度;另外看到空方括号arr[]容易误以为没定义长度,其实这里长度完全由初始化列表决定,这是命题人最爱挖的坑。

详细解析(节选)

【考点】数组语法|元素计数|常量表达式

GESP C++ 三级「数组与结构体」模块,基础题。命题人把它放在数组语法里,不是考你多大,而是考你「看懂语法」——很多考生看到 arr[] 以为是空数组要自己填,或者被花括号吓到数错,卡住第一步。

1. 解题思维(拆解与通法)

看到 int arr[] = {1, 2, 3, 4, 5};,先定位语法:C++ 声明数组时,若未显式写长度,编译器会按花括号里元素个数自动推断。数一下花括号内:1,2,3,4,5 共 5 个元素,所以 arr 长度就是 5,选 C。

通法:凡「数组声明 + 花括号初始化 + 无显式长度」,长度=花括号内元素个数;若写了长度(如 int arr[6] = {...}),则长度由方括号定,多余元素被截断,不足元素补默认值。

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