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

选择题 · 答案 A · 考点:循环控制

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

题目

下面代码试图实现选择排序,使其能对数组 nums 排序为升序,则横线上应分别填写( )。

void selectionSort(vector<int>& nums) {
    int n = nums.size();
    for (int i = 0; i < n - 1; ++i) {
        int minIndex = i;
        for (int j = i + 1; j < n; ++j) {
            if (__________) {  // 在此处填入代码
                minIndex = j;
            }
        }
        ______________; // 在此处填入代码
    }
}

A.

nums[j] < nums[minIndex]
swap(nums[i], nums[minIndex])

B.

nums[j] > nums[minIndex]
swap(nums[i], nums[minIndex])

C.

nums[j] <= nums[minIndex]
swap(nums[j], nums[minIndex])

D.

nums[j] <= nums[minIndex]
swap(nums[i], nums[j])
答案:A

考点

循环控制

解题思维

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

常见错误

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

详细解析(节选)

【考点】选择排序|数组操作|循环控制

1. 🎯 考纲定位

GESP 四级 C++ 算法模块经典题型,专门卡住"只背排序名称、不懂实现细节"的考生。命题人盯上的就是选择排序最易混淆的两个点:找最小值的比较方向、交换对象的位置。

同考点真题

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