内容正文:
递归函数专题
班级 姓名
1.【202304天域联盟】小红走楼梯时每次走1个台阶或2个台阶,问小红走n个台阶时,有多少种不同的走法。实现上述功能的Python代码如下:
def up(n):
if n<2:
return 1
else:
return up(n-1)+up(n-2)
n=int(input("请输入楼梯台阶数:"))
way=up(n)
print(way)
程序运行后,输入楼梯台阶数有6个, 程序输出的结果是( )
A.8 B.13 C.21 D.26
2.【202304宁波二模】有下列Python程序:
def trans(n):
if n<=1:
return str(n)
else:
return trans(n//2) + str(n%2)
print(trans(13))
执行该程序,输出结果是( )
A.1101 B.1011 C.13 D.31
3.【202304绍兴二模】有下列Python程序:
def f(n):
if n==1:
return "*"
else:
return n*f(n-1)
print(len(f(4)))
执行该程序,输出结果是( )
A.4 B.6 C.10 D.24
4.【202302名校协作】有如下Python程序段:
def f(n):
if n<2:
return 0
elif n%2==0:
return n+f(n-2)
else:
return f(n-1)
n=int(input())
print(f(n))
若输入n的值为101,则程序运行后,输出的内容为( )
A.100 B.2500 C.2550 D.5050
5.【202304杭二模】定义如下递归函数,计算正整数n的每位数字之和,例如n=123,函数返回值为 6。
def f(n):
x=(1)
if x==0:
return n
else:
y=(2)
return (3)
上述程序段中方框处可选代码为:
1 n%10 ②n//10 ③y+f(x) ④y+f(n-1)
则(1)(2)(3)处代码依次为( )
A.①②③ B.①②④ C.②①③ D.②①
6.【202303百校联考】有下列Python程序:
def trans(m,n):
if m!=0 or n!=0:
r=(m%2+n%2)%2
return trans(m//2,n//2)+str(r)
else:
return "0"
a=int(input("a="))
b=int(input("b="))
print(trans(a,b))
执行该程序段,依次输入10和7,则输出的结果是( )
A.10110 B.01011 C.01101 D.11010
7.【202303嘉兴平湖】有如下Python程序:
def f(s):
if s:
return f(s[1:])+1
else:
return 0
n=input()
print(f(n))
若运行该程序段后输入"python",则输出显示的结果为( )
A.0 B.1