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

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

C++五级单选题2026年9月第9题

所属知识点:查找与二分 难度要求:掌握 考频:—

在升序数组中查找第一个严格大于 x 的元素位置,下面代码中的横线应填写(  )。
int upperBound(const vector<int> &a, int x) {
    int l = 0, r = (int)a.size();
    while (l < r) {
        int mid = l + (r - l) / 2;
        if (__________________) {
            l = mid + 1;
        } else {
            r = mid;
        }
    }
    return l;
}

正确答案:C

题目解析
要找第一个严格大于 x 的位置:当 a[mid] <= x 时该位置一定在右侧,应 l = mid + 1;否则收缩右界。故横线填 a[mid] <= x,选 C。

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

进入 GESPPASS 开始练习