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

选择题 · 答案 C

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

题目

下面代码实现了冒泡排序函数,则横线上应填写( )。

//交换数组arr的第i个元素和第j个元素
void swap(vector<int> &arr, int i, int j) {
    int tmp = arr[i];
    arr[i] = arr[j];
    arr[j] = tmp;
}

int bubble_sort(vector<int> &arr) {
    for (int i = arr.size() - 1; i > 0; i--) {
        bool flag = false; // 标志位
        // 在此处填入代码
        {
            if (arr[j] > arr[j + 1]) {
                swap(arr, i, j);
                flag = true;
            }
        }
        if (!flag)
            break; // 此轮“冒泡”未交换任何元素
    }
}
答案:C

解题思维

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

常见错误

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

详细解析(节选)

【考点】冒泡排序|嵌套循环|数组边界控制

1. 🎯 考纲定位

GESP 四级「基础算法」模块,排序是必考内容。命题人专门用冒泡排序考循环嵌套与边界控制——这是四级考生最容易在数组索引上丢分的关卡。

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