深耕专业教研,探索前沿技术
信息技术来源:浙江强基联盟2026年5月高三联考

第 11 题

答案与解析

本题解析

参考答案

D

解题思路

函数在n=-1时返回空字符串,否则以func(n-1)调用自身,参数逐次减1直到递归出口。求func(5)的返回值,需要从出口开始逐层完成字符串拼接。

程序分析

def func(n):
    if n==-1:
        return ""
    elif n%3==0:
        return str(n%2) + func(n-1)
    else:
        return func(n-1) + str(n%2)

str(n%2)将余数转换为字符,偶数对应'0',奇数对应'1'。当n是3的倍数时,当前字符放在func(n-1)返回值的左侧;其余情况下放在右侧。

调用由func(5)逐层展开到func(-1),再由空字符串开始向上合成:

n 本层的拼接过程 func(n)的返回值
0 '0' + '' '0'
1 '0' + '1' '01'
2 '01' + '0' '010'
3 '1' + '010' '1010'
4 '1010' + '0' '10100'
5 '10100' + '1' '101001'