C语言二维数组选择题练习-5

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

1. 如何找到二维数组 arr 每行的总和?

  1. for(int i = 0; i < rows; i++) rowSum[i] = arr[i];
  2. for(int i = 0; i < cols; i++) for(int j = 0; j < rows; j++) rowSum[i] += arr[i][j];
  3. for(int i = 0; i < rows; i++) for(int j = 0; j < cols; j++) rowSum[i] += arr[i][j];
  4. A 和 C 均可

说明

正确答案是选项“c”。此方法使用嵌套循环逐行遍历二维数组 arr 的元素。外层循环遍历每一行(由 i 索引),内层循环遍历每一列(由 j 索引)。通过将 arr[i][j] 的值加到 rowSum[i] 来有效地累加每一行的元素总和。它确保了每一行的总和都能被准确计算。


2. 找到二维数组 arr 中最小元素的正确方法是什么?

  1. for(int i = 0; i < cols; i++) for(int j = 0; j < rows; j++) if(arr[i][j] < min) min = arr[i][j];
  2. for(int i = 0; i < rows; i++) for(int j = 0; j < cols; j++) if(arr[i][j] < min) min = arr[i][j];
  3. for(int i = 0; i < rows; i++) if(arr[i] < min) min = arr[i];
  4. A 和 B 均可

说明

正确答案是选项“b”。在此方法中,使用嵌套循环遍历二维数组 arr 的每个元素。外层循环遍历行(由 i 索引),内层循环遍历列(由 j 索引)。它检查每个 arr[i][j] 是否小于当前最小值 (min)。如果正确,它会使用 arr[i][j] 来更新 min 值。通过这样做,可以确保找到整个数组中的最小元素。


3. 如何将二维数组的元素按列进行反转?

  1. for(int i = 0; i < cols; i++) for(int j = 0, k = rows - 1; j < k; j++, k--) swap(arr[j][i], arr[k][i]);
  2. for(int i = 0; i < rows; i++) for(int j = 0; j < cols; j++) swap(arr[j][i], arr[rows - j - 1][i]);
  3. for(int i = 0; i < rows; i++) for(int j = 0; j < cols; j++) swap(arr[i][j], arr[rows - i - 1][j]);
  4. A 和 B 均可

说明

正确答案是选项“a”。此方法使用嵌套循环来反转二维数组 arr 中每一列的元素。内层循环使用两个索引(j 和 k)交换列中的元素,从顶部开始向中心移动,而外层循环遍历列(由 i 索引)。arr[j][i] 和 arr[k][i] 的方法会被交换,直到每一列中的所有元素都按反转顺序排列。完成此操作后,由于每一列的元素顺序都已反转,因此会发生所需的按列反转。


4. 如何访问二维数组“arr”的对角线元素?

  1. arr[i][cols - i - 1]
  2. arr[i][i]
  3. arr[rows - i - 1][i]
  4. arr[rows - i - 1][cols - i - 1]

说明

正确答案是选项“b”。在二维数组 arr 中,使用 arr[i][i] 这个表示法可以访问对角线元素(其中行索引 i 等于列索引 i)。使用此表达式可以轻松访问从左上角到右下角的数组对角线元素。在需要进行对角线处理的算法(例如矩阵运算或对角线遍历任务)中,这是一种简单有效的方法。


5. 当声明 int arr[4][5] 时,最后一个元素的索引是什么?

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

说明

正确答案是选项“d”。声明 int arr[4][5]; 时,名为“arr”的二维数组有 4 行 5 列。由于 C 和 C++ 中的数组索引从 0 开始,因此 arr 的索引范围是 arr[0][0] 到 arr[3][4]。第四行(索引为 3)通过 arr[3] 访问。由于有效的行索引是 0 到 3,因此 arr[4] 会超出范围。

声明为 int arr[4][5];的数组的最后一个元素可以通过 arr[3][4] 访问,即第四行第五列的元素。