C 语言二维数组 MCQ 练习题 1

2025年1月29日 | 阅读3分钟

1. 在C语言中,二维数组是什么?

  1. 数组的数组
  2. 单列元素
  3. 单行元素
  4. 以上都不是

说明

正确答案是选项“a”。C语言中的二维数组可以被看作是一个带有行和列的表格,或者一个矩阵。可以使用两个索引,一个用于行,一个用于列,来访问该矩阵中的任何元素。

使用声明 int arr[3][4];,展示了一个具有三行四列的二维数组。


2. C语言中二维数组的声明语法是什么?

  1. int arr[10, 10];
  2. int arr[10];
  3. int arr[10][10];
  4. int arr[10][10][10];

说明

正确答案是选项“c”。使用 arr[10][10] 来声明一个二维数组是正确的。由于该数组有10行10列,所以可以存储总共100个整数元素 (10 * 10)。


3. 在一个 2D 数组 arr[3][3] 中,如何访问第一行第二列的元素?

  1. int arr[2][2] = {1, 2, 3, 4};
  2. int arr[2][2] = [1, 2, 3, 4];
  3. int arr[2][2] = {{1, 2}, {3, 4}};
  4. int arr[2][2] = {{1, 2, 3, 4}};

说明

正确答案是选项“c”。使用提供的数值,一个 2x2 的数组被正确初始化。整个数组被外层的大括号 {} 包围,每一行被内层的大括号 {{1, 2}, {3, 4}} 包围。


4. 在一个 2D 数组 arr[3][3] 中,如何访问第一行第二列的元素?

  1. arr[0][2]
  2. arr[0][1]
  3. arr[2][1]
  4. arr[1][2]

说明

正确答案是选项“b”。在二维数组中,第一行的索引是 0。在二维数组中,第二列的索引是 1。因此,使用行索引 0 和列索引 1 来访问第一行第二列的元素。这种方法用于访问第一行(0)和第二列(1)的元素,这是访问所需元素的正确方式。


5. 以下哪种方法可以正确地将二维数组传递给函数?

  1. void function(int array[3][3]);
  2. void function(int *array);
  3. void function(int array[][]);
  4. void function(int array[ ][3]);

说明

正确答案是选项“d”。声明一个函数的方法如下。对于一个列数固定、行数不确定的二维数组,本例中的值为 3。由于函数知道列数,因此可以正确访问每一行中的元素。


6. 以下代码的输出是什么?

  1. 4
  2. 3
  3. 1
  4. 2

说明

正确答案是选项“b”。可以使用 arr[1][0] 来访问第一列(0)和第二行(1)的元素。根据初始化,arr[1][0] 的值是 3。因此,代码将打印数字 3。


int arr[4][5] 可以存储多少个元素?

  1. 35
  2. 30
  3. 9
  4. 20

说明

正确答案是选项“d”。将行数乘以列数即可得到数组中元素的总数。在此示例中,有 4 行 5 列。

元素总数 = 4 * 5 = 20。因此,int arr[4][5] 可以存储 20 个元素。所以,20 是正确答案。


8. 在C语言中,动态分配二维数组的正确语法是什么?

  1. int **array = malloc(4 * sizeof(int*)); for(int i = 0; i < 4; i++) array[i] = malloc(5 * sizeof(int));
  2. int **array = malloc(4 * 5 * sizeof(int));
  3. int array = malloc(4 * 5 * sizeof(int));
  4. int *array = malloc(4 * sizeof(int));

说明

正确答案是选项“a”。在C语言中,动态分配二维数组的内存需要分两步进行。首先为指针数组分配内存,其中每个指针代表一行;然后为每一行分配内存。由于可以单独访问每一行,因此该数组可以被视为一个真正的二维结构。