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

GESP 2025年9月 C++一级 单选题 第15题

C++一级单选题2025年9月第15题

所属知识点:while / do-while 循环 难度要求:掌握 考频:高频

下面 C++ 代码用于记录多个输入数中的最大数和最小数(输入 `-999` 则输入结束),相关说法错误的是( )。 ---
cin >> now_num;
min_num = max_num = now_num;

while (now_num != -999){
    if (max_num < now_num)
        max_num = now_num;
    if (min_num > now_num)
        min_num = now_num;
    cin >> now_num;
}
cout << min_num << ' ' << max_num;

正确答案:D

题目解析
A:第一个就输入 −999,循环不执行,min、max 仍是 −999,输出 -999 -999,对。B、C 也对。只有 D:把 cin 移到 while 体第一行,会在比较前就把数读掉、漏第一个数还多读一次,结果会变——「结果不变」是错的,选 D。 💡 「先读一个、循环里再读下一个」的哨兵结构(−999 结束),cin 的位置不能随便挪——挪了会漏读或错位。

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

进入 GESPPASS 开始练习