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

选择题 · 答案 A · 考点:二分查找

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

题目

在升序数组中查找第一个大于等于 $x$ 的位置。下面循环中横线应填( )。

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

考点

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

解题思维

根据上下文和C++语法规则确定空缺处应填的内容,关注函数调用参数、表达式和返回值类型。

常见错误

填空时注意语法完整性:分号、括号匹配、函数参数类型和个数、返回值类型。

详细解析(节选)

【考点】二分查找|边界收缩|lower_bound

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

GESP 五级算法模块核心考点:二分查找的边界处理。命题人不在考"二分能不能用",而在考"二分怎么精确写"——这是历年考生失分最集中的地方:知道二分框架,却管不好 l 和 r 到底该停在 mid 还是 mid±1,导致要么死循环要么漏掉答案。

同考点真题

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