GESP C++ 真题 · 逐题精解
首页C++五级真题 › 2026年6月 › 第11题

GESP 2026年6月 C++五级 单选题 第11题

C++五级单选题2026年6月第11题

所属知识点:综合应用(跨题型) 难度要求:掌握 考频:—

下面代码段实现了快速排序的划分操作(以首元素为基准),横线处代码应填入( )。
int partition(vector<int>& arr, int low, int high) {
    int pivot = arr[low];
    int i = low, j = high;
    while (i < j) {
        while (i < j && arr[j] >= pivot) j--;
        while (i < j && arr[i] <= pivot) i++;
        if (i < j) swap(arr[i], arr[j]);
    }
    ______________;  // 在此处填入代码
    return i;
}

正确答案:B

题目解析
循环结束后 i、j 相遇于分界点,基准值原本存在 arr[low],要把它交换到这个分界位置 i 上,使左边都 ≤ 基准、右边都 ≥ 基准,故 swap(arr[low], arr[i]),选 B。💡 划分最后一步永远是「把 pivot 放回它的最终位置」。

想系统刷完 GESP C++ 1~8 级真题,并查看每道题的逐题精讲?

进入 GESPPASS 开始练习