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

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

C++二级单选题2026年9月第15题

所属知识点:分支与循环结构 难度要求:掌握 考频:—

小北的身高是 1.65 米。班上有 n 个小朋友,小北想和身高最接近自己的人交朋友。如果有多个小朋友与小北的身高差相同,小北想和其中身高较矮的第一个小朋友做朋友。横线处应该填入的是(  )。
int n, i;
float target, h, best_height, min_diff, diff;

cout << "请输入小朋友的人数: ";
cin >> n;
target = 1.65;
best_height = 0.0;
min_diff = 100.0;

for (i = 0; i < n; i++) {
    cout << "请输入第 " << (i + 1) << " 个小朋友的身高: ";
    cin >> h;

    if (h > target)
        diff = h - target;
    else
        diff = target - h;

    if (diff < min_diff) {
        min_diff = diff;
        best_height = h;
    } else if (diff == min_diff) {
        __________________
        __________________
    }
}

cout << "小北的朋友身高为:" << best_height;

正确答案:A

题目解析
进入 else if (diff == min_diff) 分支表示当前小朋友与小北的身高差和已记录的最小差相同,此时应选身高较矮者,即只有当 h 比当前 best_height 更矮(h < best_height)时才把 best_height 更新为 h。故填 A。

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

进入 GESPPASS 开始练习