GESP 五级 · GESP 202403 C++ 五级 第 7 题

选择题 · 答案 A

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

题目

下面的代码片段用于将两个高精度整数进行相加。请在横线处填入( ),使其能正确实现相应功能。

string add(string num1, string num2) {
    string result;
    int carry = 0;
    int i = num1.size() - 1, j = num2.size() - 1;
    while (i >= 0 || j >= 0 || carry) {
        int x = (i >= 0) ? num1[i--] - '0' : 0;
        int y = (j >= 0) ? num2[j--] - '0' : 0;
        int sum = x + y + carry;
        carry = sum / 10;
        ________________________
    }
    return result;
}
答案:A

解题思维

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

常见错误

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

详细解析(节选)

【考点】高精度加法|字符串拼接|取模运算

1. 🎯 考纲定位

GESP五级「算法基础」模块的高精度运算专项。命题人卡住的是绝大多数考生对字符串拼接方向的直觉——高精度加法必须从低位向高位逐位计算,但结果字符串必须按「高位在前」输出,这个转换过程里恰好就是本题唯一的坑。

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