高中信息技术粤教版(2019)选修一 5.1迭代与递归

2024-08-05
| 7页
| 125人阅读
| 0人下载

内容正文:

高中信息技术粤教版(2019)5.1迭代与递归 一、选择题 1.走楼梯的问题可以利用迭代算法来解决,解决该问题的正确顺序应该是(    ) ①建立迭代关系式  ②让迭代过程无休止地重复执行  ③对迭代过程进行控制  ④确定迭代变量 A.④①③② B.①②③ C.④①③ D.①④③ 2.定义如下函数: 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 3.下列对递归思想的形象化表示错误的是(   )。 A. B. C. D. 4.斐波那契数列也叫兔子繁殖数列,小明编写了下列代码求第74个月能繁殖多少对兔子,他使用的算法是(   ) f1=f2=1 for i in range(3,75):     f1,f2=f2,f1+f2 print('兔子总对数为:',f2) A.迭代法 B.枚举法 C.二分法 D.解析法 5.有如下Python程序段: 下列关于两个程序段的说法,正确的是(   ) A.程序1和程序2都使用了递归算法 B.若问题规模为n,程序1和程序2的时间复杂度不同 C.若程序1中问题规模为n,则n的值就是其循环执行的次数 D.若程序2中自定义函数内的代码只保留①处语句,也能获取到目标值 6.有如下Python程序段 def s(x):     if x<=2:         y=x     else:         y=s(x-1)+s(x-2)     return y a=int(input("请输入正整数:")) result=s(a) print(result) 运行程序,输入值为6,则输出结果为( ) A.8 B.9 C.13 D.14 7.上台阶:每一步只能迈上1个或2个台阶,上完n级台阶,一共有多少种走法,下面说法正确的是( ) A.用递归算法,递归关系式为f(n)=f(n-1)+2 B.用递归算法,递归关系式为f(n)=f(n-1)+f(n-2) C.用递归算法,递归关系式为f(n)=f(n+1)+f(n+2) D.用递归算法,递归关系式为f(n)=f(n-1)*2 8.下列python代码运行的结果是(    ) def f(m, n):     q=m%n     if q == 0:         return n     else:         return f(n,q) print(f(14,10)) A. 4 B.24 C.2 D.70 9.直接或间接地调用函数自身的方法为(  ),不断用变量的旧值推出新值的过程为(  ). A.递归  枚举 B.迭代  枚举 C.迭代  递归 D.递归  迭代 10.递归算法设计的关键点是(   ) A.确保每次递归调用都朝着基本情况靠近 B.保证递归函数的参数每次都减少 C.设置明确的递归停止条件 D.以上都是 11.下列函数实现的功能是(    ) def mi(x,n): if n==0:    return 1 else:    return x*mi(x,n-1) A.计算x的n次方 B.计算n的x次方 C.计算x!*n D.计算x*n! 12.定义如下函数: 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" 13.有如下Python程序:     def trans(n):        ch=″0123456789ABCDEF″        if n < 16:           return ch[n % 16]        else:           digit = trans(n // 16) + ch[n % 16]           return digit     n = int(input(″请输入一个正整数:″))     print(trans(n)) 执行该程序时,输入“268”(不含引号),则输出的结果为(   ) A.C01 B.C010 C.10C D.010 14.定义如下函数: def f(x):    if x<3:       return 2    return f(x-1)*f(x-3) 关于该函数,下列说法正确的是(    ) A.采用了迭代算法 B.时间复杂度是0(log2n) C.计算f(5),函数f被调用的次数是6次 D.f(5)的返回值为16 15.有如下Python程序段: def double f(m):    if   m==1   or   m==2:       return    m    else:       return double f(m-2)*m n=int(input("请输入一个正整数n:") print(double f(n)) 执行该程序段后,输入n 的值为7,输出的结果是(   ) A.1 B.7 C.105 D.35 二、填空题 16.def f(x,y):     ans=y;     for i in range(1,y-x+1):         ans = ans + f(x+i,y-i)     return ans; def init():     x = int(input())     y = int(input())     print(f(x,y)) init() (1) 输入:4 5 输出:     (2) 输入:3 6 输出:     三、操作题 17.运用辗转相除法求两个正整数的最大公约数。 def f(m, n):  # 递归定义函数,求m和n的最大公约数     if == 0:   # m可以被n整除         return n  # 求得最大公约数      :         q = m % n     return f(n, q) a = int(input('请输入第一个正整数:')) b = int(input('请输入第二个正整数:')) print( ) 18.斐波那契在《计算之书》中提出了一个有趣的兔子问题:假设一对兔子每个月可以生一对小兔子,一对兔子出生后第2个月就开始生小兔子。则一对兔子一年内能繁殖成多少对?程序代码如下,请补全划线处对应的代码: def fib(n):       f2=f1= (1)       for i in range (3,  (2) ):            f1,f2=f2,f1=f2       return (3) n=int(input(“输入月份数:”)) print(“兔子总对数为:”,fib(n)) n = int(input("输入月份数:")) print("兔子总对数为:", fib(n)) 【填空】 (1)      【填空】 (2) 【填空】 (3) 四、简答题 19.请简述什么是递归函数,并给出一个递归函数的例子。 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.C 2.C 3.D 4.A 5.C 6.C 7.B 8.C 9.D 10.D 11.A 12.B 13.C 14.D 15.C 16. 9 22 17. m%n else f(a,b) 18. 1 n+1 f2 19.递归函数是一种在函数体内调用自身的函数。一个递归函数的例子是计算斐波那契数列的函数,其中每个数是前两个数的和,递归定义为Fib(n) = Fib(n-1) + Fib(n-2),基本情况是Fib(0) = 0和Fib(1) = 1。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

高中信息技术粤教版(2019)选修一  5.1迭代与递归
1
高中信息技术粤教版(2019)选修一  5.1迭代与递归
2
高中信息技术粤教版(2019)选修一  5.1迭代与递归
3
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。