GESP 五级 · GESP 202603 C++ 五级 第 17 题

判断题 · 答案 A · 考点:二分查找

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

题目

若数组 ${a}$ 已按升序排列,则下面代码可以正确实现“在 ${a}$ 中查找第一个大于等于 ${x}$ 的元素的位置”。

int lowerBound(vector<int>& a, int x) {
    int l = 0, r = a.size();
    while (l < r) {
        int mid = (l + r) / 2;
        if (a[mid] >= x) r = mid;
        else l = mid + 1;
    }
    return l;
}
答案:A

考点

二分查找 讲解 →二分查找 真题汇总 →

解题思维

仔细审题,明确已知条件和所求目标,运用相关知识点逐项分析。

常见错误

审题时注意题目要求(选正确还是选错误),避免因审题不清失分。涉及代码的题目要逐行分析变量变化。

详细解析(节选)

【考点】二分查找|lowerBound 变体|边界处理

1. 🎯 考纲定位

GESP 五级算法模块中的"二分查找"考点,命题人专卡考生对 lowerBound 与 upperBound 的边界混淆。

同考点真题

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