GESP 四级 · GESP 202506 C++ 四级 第 15 题

选择题 · 答案 B

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

题目

为了提高冒泡排序的效率,如果某轮“冒泡”中没有执行任何交换操作,说明数组已经完成排序,可直接返回结果,则两条横线上分别应该填写( )。

void bubbleSortWithFlag(vector<int> &nums) {
    for (int i = nums.size() - 1; i > 0; i--) {
        bool flag;
        // 在此处填入代码

        for (int j = 0; j < i; j++) {
            if (nums[j] > nums[j + 1]) {
                swap(nums[j], nums[j + 1]);
                // 在此处填入代码
            }
        }
        if (!flag)
            break;
    }
}

A.

flag = false;
flag = false;

B.

flag = false;
flag = true;

C.

flag = true;
flag = false;

D.

flag = true;
flag = true;
答案:B

解题思维

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

常见错误

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

详细解析(节选)

【考点】冒泡排序|标志位优化|循环提前退出

1. 🎯 考纲定位(考点定位)

本题考查 GESP C++ 四级《算法与数据结构》模块中的冒泡排序优化技巧。命题人在这里卡住绝大多数考生,是因为他们只背了"冒泡排序要加一个标记提前结束"这个结论,却忘了标记变量初始值必须为 true——这是最容易被忽略的细节。

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