WorksheetsC语言Array 数组基础知识测验
Total questions: 25
Worksheet time: 13mins
声明一个长度为 5 的整型数组的正确语法是?
int array[5];
int array{5};
int[5] array;
array[5] int;
以下哪一行代码正确初始化一个整型数组?
int array[] = {1, 2, 3};
int array[3] = {1, 2};
int array[3] = {1, 2, 3};
以上皆对
假设 int arr[5] = {0};,数组 arr 中的元素值为?
未定义
所有元素初始化为 0
只有 arr[0] 为 0,其他为随机值
编译错误
Compilation error
如何访问数组中第三个元素(假设数组为 int arr[5])?
arr(3)
arr[2]
arr[3]
arr[1]
数组索引的起始位置是?
0
1
2
-1
给定数组 int arr[3] = {10, 20, 30};,arr[1] 的值是?
10
20
30
Undefined
若 int arr[5];,则 arr[5] 表示什么?
第六个元素
数组的最后一个元素
数组外的无效元素
编译错误
数组的大小在声明时必须是?
编译时常量
Compile-time constant
运行时变量
Run-time variable
可以是变量或常量
Can be variable or constant
大小可变
Variable size
以下代码的输出是什么? int arr[] = {1, 2, 3}; printf("%d", arr[3]);
1
3
Random value or runtime error
随机值或运行时错误
Compilation error
编译错误
给定 int arr[5] = {1, 2, 3};,arr[4] 的值是什么?
1
3
0
Undefined
假设 int arr[5];,则 arr 占用的内存大小是多少(假设 int 为 4 Bytes)?
5 Bytes
10 Bytes
20 Bytes
25 Bytes
如何将 arr 数组的第一个元素赋值为 10?
arr[1] = 10;
arr[0] = 10;
arr[10] = 0;
array[0] = 10;
下列代码的输出是什么? int arr[3] = {5, 10, 15}; printf("%d", arr[1]);
5
10
15
编译错误
Compilation error
对于声明 int arr[5];,以下哪种初始化是错误的?
int arr[5] = {1, 2, 3, 4, 5};
int arr[5] = {1, 2};
int arr[5];
int arr[5] = {1, 2, 3, 4, 5, 6};
数组 arr 的基地址是什么?
arr[0] 的地址
Address of arr[0]
arr[1] 的地址
Address of arr[1]
arr[2] 的地址
Address of arr[2]
arr[0] 的值
Value of arr[0]
如何在数组中存储 5 个整数并计算它们的总和?
使用数组和循环
Use an array and a loop
使用单个变量
Use a single variable
使用指针
Use pointers
以上均不可
None of the above
给定 int arr[3] = {5, 10, 15};,以下哪个操作是非法的?
arr[2] = 20;
arr[0] = 5;
arr[3] = 25;
arr[1] = 10;
以下哪个操作会修改数组的第一个元素?
arr[0] = 10;
arr[1] = 0;
arr = 10;
arr + 1 = 10;
若 int arr[5] = {8, 9, 10, 11, 12};,则 arr[2] + arr[4] 的值为?
18
19
22
21
若 int arr[5] = {8, 9, 10, 11, 12};,则 arr[2] + arr[4] / arr[1] 的值为?
10
11
12
13
假设 int arr[5] = {1, 2, 3, 4, 5};,以下哪段代码可以将所有数组元素乘以 2?
for (int i = 1; i <= 5; i++)
arr[i] *= 2;
for (int i = 0; i <= 4; i++)
arr[i] *= 2;
for (int i = 0; i < 5; i++)
arr[i] *= 2;
for (int i = 1; i < 5; i++)
arr[i] *= 2;
给定数组 int arr[3] = {5, 10, 15};,以下代码的输出是什么?
int sum = 0, i;
for (i = 0; i < 3; i += 2)
sum += arr[i];
printf("%d", sum);
5
10
15
20
以下代码的输出是什么?
int arr[4] = {10, 20, 30, 40};
arr[1] = arr[3];
printf("%d", arr[1]);
10
20
30
40
如何访问数组中倒数第二个元素(假设数组长度为 n)?
arr[n]
arr[n-1]
arr[n-2]
arr[n-3]
给定 int arr[5] = {2, 4, 6, 8, 10};,以下代码输出什么?
int sum = 0, i;
for (i = 0; i < 5; i++)
if (arr[i] % 4 == 0)
sum += arr[i];
printf("%d", sum);
0
4
8
12
