GESP 三级 · GESP 202506 C++ 三级 第 11 题

选择题 · 答案 B

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

题目

以下程序使用枚举法(穷举法)求解满足条件的三位数,横线处应该填入的是( )

#include <iostream>
using namespace std;

int main() {
    int count = 0;
    for (int i = 100; i <= 999; i++) {
        int a = i / 100;
        // 横线处
        int c = i % 10;
        if (a * a + b * b == c * c) {
            count++;
        }
    }
    cout << count << endl;
    return 0;
}
答案:B

解题思维

答案B。位运算代码补全要注意区分位运算符(&|^)和逻辑运算符(&&||)。异或(^)常用于交换值。

常见错误

位运算代码补全容易出错,因为位运算结果不如算术运算直观。记住异或的自反性。

详细解析(节选)

【考点】整除取商(数字百位)|取模运算(数字个位)|十位提取技巧

1. 🎯 考纲定位

本题在《GESP 考试大纲》三级"数据类型与基本运算"模块,考查整数除法和取模的位运算本质。命题人卡住绝大多数考生的弱点:只背结论"三位数中间位是十位",却不知如何从 i 精准提取该位——这是算法实现题最易栽跟头的地方。

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