GESP 四级 · GESP 202503 C++ 四级 第 10 题

选择题 · 答案 B · 考点:递推

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

题目

小杨正在爬楼梯,需要爬 $ n $ 阶才能到达楼顶。如果每次可以爬 1 个或 2 个台阶,下面代码采用递推算法来计算一共有多少种不同的方法可以爬到楼顶,则横线上应填写( )。

int f(int n) {
    if (n == 1 || n == 2)
        return n;

    int f1 = 1;
    int f2 = 2;
    int res = 0;
    for (int i = 3; i <= n; i++) {
        // 在此处填入代码
    }
    return res;
}

A.

res += f1 + f2;
f1 = f2;
f2 = res;

B.

res = f1 + f2;
f1 = f2;
f2 = res;

C.

res += f1 + f2;
f2 = res;
f1 = f2;

D.

res = f1 + f2;
f2 = res;
f1 = f2;
答案:B

考点

递推

解题思维

答案B。代码补全要考虑参数传递方式。如果需要修改实参,需用指针(*)传递。排序算法要理解每步比较的含义。

常见错误

排序代码补全要理解每步比较的含义。选择排序找最小值时比较的是array[min]>array[j]。

详细解析(节选)

【考点】递推思想|滚动变量优化|斐波那契数列

🎯 考纲定位

本题考查《GESP 考试大纲》四级"递推与动态规划"模块。命题人卡住的是学生"只会写递归、不懂滚动优化"的弱点——四级要求手动实现空间优化版递推。

同考点真题

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