深耕专业教研,探索前沿技术
信息技术来源:2026年4月杭州二模技术试卷

第 10 题

答案与解析

本题解析

参考答案

B

解题思路

函数以 n=0 为出口,否则调用自身 f(n-1,-sign)。每次调用使 n 减少 1,最终到达出口,构成递归结构。

程序分析

def f(n, sign):
    if n == 0:
        return n
    return n * sign + f(n - 1, -sign)

调用 f(5, 1) 后,n 尚不为 0,当前层需将 n * sign 与下一层返回值相加。下一层的 sign 取反,使相邻两层的加数正负交替;n=0 时直接返回 0,随后逐层完成加法并返回。

调用依次展开为 f(5,1)→f(4,-1)→f(3,1)→f(2,-1)→f(1,1)→f(0,-1)。

出口返回 0 后,由内向外合成:f(1,1)=1+0=1,f(2,-1)=-2+1=-1,f(3,1)=3-1=2,f(4,-1)=-4+2=-2,最后 f(5,1)=5-2=3。