小明正在学习辗转相除法求两数的最大公约数,他用Python语言编写了如下程序,请问第二次调用gcd()函数时,函数实参是多少?递归函数总共调用了几次?( )
def gcd(a, b):
if a % b == 0:
return b
return gcd(b, a % b)
print(gcd(168, 66))
2分
登录后查看选项
14
小明在玩爬楼梯的游戏,需要爬n阶才能到达楼顶。规定每次只能爬1个或2个台阶,编写程序计算一共有多少种不同的方法可以爬到楼顶。
小明用Python语言编写了如下代码,下列哪个选项能得到正确结果?( )
def fun(n):
if n in (1, 2):
return n
f1, f2, res = 1, 2, 0
for i in range(3, n+1):
__________
return res
def fact(n): if n <= 1:
return 1
else:
return n*fact(n-1)
def fact2(n):
s = 1
for i in range(1, n+1):
s = s * i
return s
上述Python语言编写的两个函数,它们实现的功能是一样的。( )
price = int(input()) #存礼物的实际价格
def sear(p,pmin,pmax):
i = pmin
j = pmax
s = ''
c = 0
while ①:
c = c + 1
m = (i + j)//2
if m == p:
s = s + str(m) + ',' ②
elif m < p:
i = m + 1
else: ③
s = s + str(m) + ','
return s,c
pmin = 1
pmax = 200
rst , c = sear(price,pmin,pmax)
print('猜价格的过程是',rst)
print('一共猜了',c,'次就猜对价格')
10分
登录后作答
37
铺设积木
小乐用 1x2 和 1x3 的乐高积木块横向铺满长度为 n(不为0) 的积木条。小乐只能使用 1x2 和 1x3 的格子。可以任意组合这些格子来覆盖小路。格子只能横着铺,不能竖着铺。求不同的铺法总数。def ①:
if ②:
return 0
if x == 2 or x == 3:
return ③ return ④ n = int(input())
print(calc(n))
10分
登录后作答
38
垃圾分类
为了响应国家“绿色环保,健康生活”的号召,某小区安装了智能垃圾桶,能自动识别垃圾类型并分类。请你完善以下程序,实现垃圾自动分类功能。recycle = ["纸", "塑料瓶", "玻璃", "金属"]
harmfull = ["电池", "药品", "灯泡", "油漆"]
category = {1: "可回收垃圾", 2: "有害垃圾", 3: "其他垃圾"}
trash_lst = ["烟蒂", "药品", "金属"]
def judge(item):
if ①:
return 1
elif item in harmfull:
return 2
else:
return ② def classify(trash):#通过字典键获取垃圾类型
i = judge(trash)
return ③ for trash_name in trash_lst:#判断垃圾类型
cate_name = ④(trash_name)
print(f"{trash_name} 属于: {cate_name}")
输出效果:
烟蒂 属于: 其他垃圾
药品 属于: 有害垃圾
金属 属于: 可回收垃圾