ID: 24177384

浙教版(2019)选修一5.2迭代与递归同步练习(含解析)

日期:2025-11-23 科目:信息技术 类型:高中试卷 查看:29次 大小:36722B 来源:二一课件通
预览图 1/4
教版,2019,选修,迭代,递归,同步
  • cover
浙教版(2019)选修一5.2迭代与递归同步练习 学校:_____姓名:_____班级:_____考号:_____ 一、选择题 1.有如下Python程序段: def f(n): if n==0: return 1 elif n==1: return 2 else: return 2*f(n-1)+f(n-2) 执行该程序段,则f(5)返回的值为( ) A.29 B.169 C.70 D.12 2.有如下Python程序段: def fac(n): res=0 for i in range(n): res+=2**i return res 执行语句print(fac(5)),输出的结果为( ) A.30 B.31 C.62 D.63 3.在计算机中,一种不断用变量的旧值递推新值的过程。这种用计算机解决问题的基本方法是( ) A.查找法 B.排序法 C.分析法 D.迭代法 4.下列适合用来解决裴波那契数列的方法的是( ) A.枚举法 B.直接法 C.迭代法 D.以上均不是 5.有如下程序段: from random import randint def f(i, j): if i>=j: return 0 t=randint (1, 2) # randint (1,2)随机生成1或2 return f(i+t, j)+1 执行语句k=f(0,5)后,k的值不可能为( ) A.3 B.4 C.5 D.6 6.定义如下函数: def f (n, k): if n==k or k==0: return 1 else: return f (n-1, k) +f (n-1, k-1) 执行语句 ans=f (5,3)后, ans的值为( ) A.2 B.8 C.10 D.20 7.下列选项中没有体现递归思想是( ) A.快速排序 B.二叉树的先序遍历 C.图的深度优先搜索 D.图的广度优先搜索 8.有如下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的值为100,则程序运行后,输出的结果是( ) A.100 B.2500 C.2550 D.5050 9.下面关于递归说法正确的是( ) A.函数间接调用自己不是递归 B.递归函数的嵌套调用次数没有限制 C.递归函数的执行效率优于非递归函数 D.递归出口和递归关系是递归函数编写的关键 10.斐波那契数列也叫兔子繁殖数列,小明编写了下列代码求第74个月能繁殖多少对兔子,他使用的算法是( ) f1=f2=1 for i in range(3,75): f1,f2=f2,f1+f2 print('兔子总对数为:',f2) A.迭代法 B.枚举法 C.二分法 D.解析法 11.定义如下函数: def chg(k): if k==-1: return "" else: c=chr(ord("a")+k) if k%2==1: return c+chg(k-l) else: return chg(k-1)+c 执行语句m=chg(4)后,m的值为( ) A."ecabd" B."dbace" C."abcde" D."edcba" 12.定义如下函数: def move(n,a,b,c): if n==1: print(a,"->",c) return move(n-1,a,c,b) move(1,a,b,c) move(n-1,b,a,c) 执行语句move(2,"A","B","C"),输出的第一行内容是( ) A.a -> c B.A -> C C.a -> b D.A -> B 13.有如下Python程序段: 下列关于两个程序段的说法,正确的是( ) A.程序1和程序2都使用了递归算法 B.若问题规模为n,程序1和程序2的时间复杂度不同 C.若程序1中问题规模为n,则n的值就是其循环执行的次数 D.若程序2中自定义函数内的代码只保留①处语句,也能获取到目标值 14.斐波那契数列:1,1,2,3,5,8,13,……,现用递归算法求解第 n 项,代码如下, def fib(n): if (n > 2): return fib(n - 1) + fib(n - 2) return 1 n = int(input('输入一个整数')) print(fib(n)) 程序执行时,输入一个整数5,则函数 fib 被第 3 次调用时的返回值为( ) A.2 B.3 C.5 D.8 15.有Python程序段如下: def f(s): if len(s)==1: return s[0] return f(s[1:])+s[0] s="abcdefg" print(f(s)) 执行该程序段后,输出的结果为( ) A."a" B."aceg" C."bef" D."gfedcba" 试卷第2页,共2页 试卷第1页,共1页 参考答案: 1.C 【详解】本题考查的是递归。阅读程序可知,f(0)=1,f(1)=2,f(2)=2*f(1)+f(0)=4+1=5,f(3)=2*f(2)+f(1)=2*5+2=12,f(4)=2 ... ...

~~ 您好,已阅读到文档的结尾了 ~~