GESP 四级 · GESP 202509 C++ 四级 第 11 题

选择题 · 答案 A · 考点:算法

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

题目

下面程序实现插入排序(升序排序),则横线上应分别填写( )。

void insertionSort(int arr[], int n) {
    for (int i = 1; i < n; i++) {
        int key = arr[i];
        int j = i - 1;
        while (j >= 0 && ________________) { // 在此处填入代码
            arr[j + 1] = arr[j];
            j--;
        }
        ________________; // 在此处填入代码
    }
}

A.

arr[j] > key
arr[j + 1] = key

B.

arr[j] < key
arr[j + 1] = key

C.

arr[j] > key
arr[j] = key

D.

arr[j] < key
arr[j] = key
答案:A

考点

算法

解题思维

答案A。代码补全要考虑参数传递方式。如果需要修改实参,需用指针(*)传递。排序算法要理解每步比较的含义。

常见错误

排序代码补全要理解每步比较的含义。选择排序找最小值时比较的是array[min]>array[j]。

详细解析(节选)

解析

【考点】插入排序算法|数组元素比较与移动|while循环条件

🎯 考纲定位

GESP四级算法模块的核心是"基础排序与查找",插入排序作为选择排序之后的必考内容,命题人专卡"只背概念不写逻辑"的考生——很多人知道"把key插入前面",但写不出while循环里到底是"大于key才移动"还是"小于key才移动"。

同考点真题

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