GESP C++ 真题 · 逐题精解
首页C++五级真题 › 2025年6月 › 第11题

GESP 2025年6月 C++五级 单选题 第11题

C++五级单选题2025年6月第11题

所属知识点:排序算法 难度要求:掌握 考频:—

下面的 C++ 代码用于在升序数组 lst 中查找目标值 target 最后一次出现的位置。相关说法,正确的是( )。
int binary_search_last_occurrence(const vector<int>& lst, int target) {
if (lst.empty()) return -1;
int low = 0, high = lst.size() - 1;
while (low < high) {
int mid = (low + high + 1) / 2;
if (lst[mid] <= target) {
low = mid;
} else {
high = mid - 1;
}
}
if (lst[low] == target)
return low;
else
return -1;
}

正确答案:A

题目解析
A 正确:mid=(low+high+1)/2 向上取整且 lst[mid]<=target 时 low=mid,能稳定返回最后一个 target 的位置(即使全相同),选 A。

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

进入 GESPPASS 开始练习