2023-2024学年高二上学期浙教版(2019)选修一5.2 迭代与递归 一、选择题 1.定义如下函数: def f(s): if len(s)==1: return s elif "0"<=s[0]<="9": return s[0]+f(s[1:]) else: return f(s[1:])+s[0] 执行语句print(f("lab2"))后,输出结果为( ) A.12ba B.12ab C.21ab D.2bal 2.递归算法可以用三个字来概括,但不包括下列选项中的( ) A.解 B.分 C.治 D.合 3.以下程序代码采用的算法是( )。 def gcd(m,n): while m%n != 0: m,n=n,m%n return n a=int(input("请输入a的值:")) b=int(input("请输入b的值:")) print(gcd(a,b)) A.枚举法 B.二分法 C.递归法 D.迭代法 4.下列选项中没有体现递归思想是( ) A.快速排序 B.二叉树的先序遍历 C.图的深度优先搜索 D.图的广度优先搜索 5.斐波那契在《计算之书》中提出了一个有趣的兔子问题:从第三个月开始,每个月的兔子对数是前两个月的兔子对数之和,又同时作为下一个月兔子对数的加数。这种重复反馈的过程称为迭代。迭代法也称辗转法,阅读下列程序代码。 def fib(n): #迭代求Fibonacci数列 f2=f1=1 for i in range(①,n+1): ② return f2 n=int(input('输入需要计算的月份数:')) print('兔子总对数为:',fib(n)) input("运行完毕,请按回车键退出...") 下列说法错误的是( ) A.确定迭代变量, 程序中的的f1、f2 B.建立迭代关系式,②处应填写:f1,f2=f2,f1+f2 C.对迭代过程进行控制,①处应填写range(3,n+1)枚举从第三个月开始 D.f1,f2=f2,f1+f2不可以用temp=f1+f2,f1=f2,f2=temp代替 6.定义如下函数: def peach(day): if day==7: num=1 else: num=(peach(day+1)+1)*2 return num print(peach(1)) 执行该程序段后,输出的结果是( ) A.14 B.94 C.190 D.382 7.在递归算法中,以下哪种情况可能导致栈溢出?( ) A.递归深度太深 B.递归出口设置正确 C.递归调用自身 D.递归调用其他函数 8.有如下Python程序段: 下列关于两个程序段的说法,正确的是( ) A.程序1和程序2都使用了递归算法 B.若问题规模为n,程序1和程序2的时间复杂度不同 C.若程序1中问题规模为n,则n的值就是其循环执行的次数 D.若程序2中自定义函数内的代码只保留①处语句,也能获取到目标值 9.定义如下函数: 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" 10.定义如下函数: def rf(n): if n<3: return n return rf(n-1)+rf(n-3) 执行语句v=rf(5),函数rf被调用的次数是( ) A.11 B.5 C.7 D.15 11.金老师编写了一个函数,它的功能为使用递归的方法快速计算Xn: def fun(x,n): if n==1: return x t=fun( ) if n%2==1: return x*t*t else: return t*t 划线处代码为( ) A.n//2,x B.n/2,x C.x,n//2 D.x,n/2 12.递归算法的基本结构通常包括哪两个部分?( ) A.递归出口和递归体 B.递归调用和递归出口 C.递归体和递归入口 D.递归调用和递归体 13.在递归算法中,递归出口的作用是什么?( ) A.减少计算量 B.增加计算量 C.结束递归 D.开始递归 14.有如下程序段: def cal(n): if n <= 1: return 1 if n % 2 == 0: return 2*cal(n-1) return 1+cal(n-1) 执行语句k=cal(5),则k的值为( ) A.6 B.7 C.10 D.11 15.19世纪末,在欧洲的商店中出售一种智力玩具,在一块铜板上有三根杆,最左边的杆上自上而下、由小到大顺序串着由64个圆盘构成的塔。玩家要将最左边杆上的盘子全部移到最右边的杆子上,要求一次只能移动一个盘,且不允许大盘放在小盘的上面。如果最左边 ... ...
~~ 您好,已阅读到文档的结尾了 ~~