GESP 四级 · GESP 202509 C++ 四级 第 13 题

选择题 · 答案 B · 考点:动态规划

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

题目

小杨正在爬楼梯,需要 $n$ 阶才能到达楼顶,每次可以爬 $1$ 阶或 $2$ 阶,求小杨有多少种不同的方法可以爬到楼顶,横线上应填写( )。

int climbStairs(int n) {
    if (n <= 2) return n;
    int prev2 = 1;
    int prev1 = 2;
    int current = 0;
    for (int i = 3; i <= n; ++i) {
        ________________ // 在此处填入代码
    }
    return current;
}

A.

prev2 = prev1;
prev1 = current;
current = prev1 + prev2;

B.

current = prev1 + prev2;
prev2 = prev1;
prev1 = current;

C.

current = prev1 + prev2;
prev1 = current;
prev2 = prev1;

D.

prev1 = current;
prev2 = prev1;
current = prev1 + prev2;
答案:B

考点

动态规划 讲解 →动态规划 真题汇总 →

解题思维

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

常见错误

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

详细解析(节选)

【考点】动态规划|斐波那契数列|变量状态更新顺序

B

1. 🎯 考纲定位

GESP C++四级「算法设计」模块的动态规划核心题型。命题人专卡状态转移与变量更新顺序的混淆点——绝大多数考生知道公式但对prev2该等于谁理解不清,导致循环里写错更新次序。

同考点真题

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