- C++
C++ 一维数组单选题
- 2025-3-27 20:07:51 @
-
在 C++ 中,定义一个包含 5 个整数的一维数组,正确的是( )。 A. int array[5]; B. array int[5]; C. int array(5); D. int[5] array;
-
以下代码中,数组
arr
的元素个数是多少?int arr[] = {1, 2, 3, 4, 5};
A. 4 B. 5 C. 6 D. 无法确定 -
在 C++ 里,访问数组
arr
中第 3 个元素(数组下标从 0 开始),应该使用( )。 A. arr[2] B. arr[3] C. arr(2) D. arr(3) -
若有数组
int arr[10];
,则数组arr
的最后一个元素的下标是( )。 A. 0 B. 9 C. 10 D. 11 -
以下关于一维数组初始化的说法,正确的是( )。 A. 可以只给部分元素赋值,未赋值的元素自动初始化为 0 B. 必须给数组的所有元素都赋值 C. 初始化时元素个数可以超过数组定义的大小 D. 数组初始化只能在定义时进行
-
有数组
int arr[5] = {1, 2};
,那么arr[3]
的值是( )。 A. 1 B. 2 C. 0 D. 未定义的值 -
在 C++ 中,若要将数组
arr
的所有元素初始化为 0,以下方法正确的是( )。 A. int arr[5] = {0}; B. int arr[5] = {all: 0}; C. int arr[5] = 0; D. int arr[5]; arr = {0}; -
已知数组
int arr[5];
,以下给数组元素赋值的方式错误的是( )。 A. arr[0] = 1; arr[1] = 2; arr[2] = 3; arr[3] = 4; arr[4] = 5; B. for(int i = 0; i < 5; i++) { arr[i] = i + 1; } C. arr = {1, 2, 3, 4, 5}; D. int i = 0; while(i < 5) { arr[i] = i + 1; i++; } -
对于数组
int arr[10];
,以下能正确计算数组元素个数的是( )。 A. sizeof(arr) / sizeof(arr[0]) B. sizeof(arr) / sizeof(int) C. 以上两种方法都可以 D. 以上两种方法都不可以 -
以下代码的输出结果是:
int arr[] = {1, 2, 3}; cout << arr[1];
A. 1 B. 2 C. 3 D. 编译错误 -
在 C++ 中,数组名代表的是( )。 A. 数组的第一个元素 B. 数组的首地址 C. 数组的元素个数 D. 数组的最后一个元素
-
若有数组
int arr[5] = {5, 4, 3, 2, 1};
,将数组元素逆序输出的代码可以是( )。 A. for(int i = 4; i >= 0; i--) { cout << arr[i]; } B. for(int i = 0; i < 5; i++) { cout << arr[4 - i]; } C. 以上两种方法都可以 D. 以上两种方法都不可以 -
以下代码是否可以编译通过:
int arr[];
A. 可以,数组会自动分配内存 B. 不可以,定义数组时必须指定元素个数或进行初始化 C. 可以,后续可以再对数组进行初始化 D. 不可以,数组名不能单独定义 -
若有数组
int arr[3] = {1, 2, 3};
,将数组元素全部乘以 2 的代码可以是( )。 A. for(int i = 0; i < 3; i++) { arr[i] *= 2; } B. for(int i = 0; i < 3; i++) { arr[i] = arr[i] * 2; } C. 以上两种方法都可以 D. 以上两种方法都不可以 -
以下关于数组越界的说法,正确的是( )。 A. 数组越界会导致编译错误 B. 数组越界可能会导致程序崩溃或产生不可预期的结果 C. 数组越界不会有任何影响 D. 数组越界时,程序会自动调整数组大小
-
有数组
int arr[4] = {1, 2, 3, 4};
,执行arr[2] = arr[2] + 1;
后,arr[2]
的值是( )。 A. 2 B. 3 C. 4 D. 5 -
在 C++ 中,以下哪个操作不能对数组进行( )。 A. 整体赋值 B. 逐个元素赋值 C. 计算数组元素个数 D. 遍历数组元素
-
若要从用户输入中读取 5 个整数存储到数组
arr
中,以下代码正确的是( )。 A. for(int i = 0; i < 5; i++) { cin >> arr[i]; } B. for(int i = 0; i < 5; i++) { cin << arr[i]; } C. for(int i = 0; i < 5; i++) { arr[i] = cin; } D. for(int i = 0; i < 5; i++) { arr[i] >> cin; } -
以下代码的输出结果是:
int arr[] = {10, 20, 30}; cout << sizeof(arr);
A. 3 B. 6 C. 12 D. 无法确定
1 条评论
-
admin SU @ 2025-3-27 20:08:06
以下是 20 道 C++ 一维数组单选题的详细解析和答案:
答案与解析
1. 正确答案:A
解析:C++ 中数组定义的正确语法是
类型 数组名[大小];
,选项 A 符合要求。其他选项语法错误(如 B 中array
关键字错误,C 用圆括号初始化,D 顺序错误)。2. 正确答案:B
解析:数组
arr
未指定大小,但初始化列表有 5 个元素,因此元素个数为 5。3. 正确答案:A
解析:数组索引从 0 开始,第 3 个元素的索引是 2,访问方式为
arr[2]
。4. 正确答案:B
解析:数组
arr[10]
的索引范围是0~9
,最后一个元素的下标是 9。5. 正确答案:A
解析:C++ 允许部分初始化数组,未初始化的元素自动初始化为 0。其他选项错误(B 不强制全部赋值,C 初始化元素不能超过数组大小,D 可动态赋值)。
6. 正确答案:C
解析:数组
arr
初始化前两个元素,arr[3]
未显式赋值,自动初始化为 0。7. 正确答案:A
解析:初始化列表
{0}
会扩展为所有元素初始化为 0。其他选项语法错误(B 无all
关键字,C 直接赋值错误,D 数组不能整体赋值)。8. 正确答案:C
解析:数组不能直接整体赋值(如
arr = {1,2,3,4,5};
),必须逐个元素赋值或使用循环。9. 正确答案:C
解析:
sizeof(arr)
是数组总字节数,sizeof(arr[0])
是单个元素字节数,两者相除得到元素个数。对于int
数组,sizeof(int)
也适用。10. 正确答案:B
解析:数组
arr
的索引 1 对应元素 2,输出结果为 2。11. 正确答案:B
解析:数组名
arr
代表数组的首地址,而非第一个元素的值。12. 正确答案:C
解析:选项 A 逆序遍历索引,选项 B 通过
4 - i
访问逆序元素,两种方法均正确。13. 正确答案:B
解析:定义数组时必须指定大小或初始化,否则编译错误(如
int arr[];
无大小和初始化)。14. 正确答案:C
解析:两种循环方式均正确,
arr[i] *= 2
是arr[i] = arr[i] * 2
的简写。15. 正确答案:B
解析:数组越界不会导致编译错误,但可能引发未定义行为(如程序崩溃或数据错误)。
16. 正确答案:C
解析:原数组
arr[2] = 3
,执行arr[2] += 1
后变为 4。17. 正确答案:A
解析:C++ 不支持数组整体赋值(如
arr = {1,2,3}
),必须逐个元素赋值。18. 正确答案:A
解析:正确输入方式为
cin >> arr[i]
,其他选项语法错误(如 B 使用<<
,C、D 逻辑错误)。19. 正确答案:C
解析:数组
arr
包含 3 个int
元素,每个int
通常为 4 字节,总大小为3 × 4 = 12
字节。答案汇总
题号 答案 题号 答案 1 A 10 B 2 B 11 3 A 12 C 4 B 13 B 5 A 14 C 6 C 15 B 7 A 16 C 8 C 17 A 9 18 19 C 通过以上解析,可系统掌握 C++ 一维数组的定义、初始化、访问及常见操作。
- 1