GESP 七级 · GESP 202503 C++ 七级 第 8 题

选择题 · 答案 A · 考点:字符数组与字符串处理

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

题目

2025 是个神奇的数字,因为它是由两个数 20 和 25 拼接而成,而且 $2025 = (20 + 25)^2$。小杨决定写个程序找小于 $N$ 的正整数中共有多少这样神奇的数字。下面程序横线处应填入的是( )。

#include <string>
int count_miracle(int N) {
    int cnt = 0;
    for (int n = 1; n * n < N; n++) {
        int n2 = n * n;
        std::string s = std::to_string(n2);

        for (int i = 1; i < s.length(); i++) {
            if (s[i] != '0') {
                std::string s1 = s.substr(0, i);
                std::string sr = s.substr(i);
                int n1 = std::stoi(s1);
                int nr = std::stoi(sr);
                if (__________) // 在此处填入选项
                    cnt++;
            }
        }
    }
    return cnt;
}
答案:A

考点

字符数组与字符串处理 讲解 →字符数组与字符串处理 真题汇总 →

解题思维

根据上下文和C++语法规则确定空缺处应填的内容,关注函数调用参数、表达式和返回值类型。

常见错误

填空时注意语法完整性:分号、括号匹配、函数参数类型和个数、返回值类型。

详细解析(节选)

【考点】字符串处理|字符串拆分|基本运算

1. 🎯 考纲定位

GESP C++ 七级:字符串与数值转换——题目要求用 to_string/stoi 处理数字,属于本级别核心能力。命题人刻意把「神奇数」定义拆成两段:平方数 + 拆分后两段之和等于平方根,卡住的是审题时把 N 和 n 混为一谈的常见失误。

同考点真题

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