教科版(2019)选修一3.1迭代与递归课时作业

2024-06-09
| 7页
| 89人阅读
| 1人下载

资源信息

学段 高中
学科 信息技术
教材版本 高中信息技术教科版选择性必修1 数据与数据结构
年级 高一
章节 3.1 迭代与递归
类型 作业-同步练
知识点 -
使用场景 同步教学-新授课
学年 2023-2024
地区(省份) 全国
地区(市) -
地区(区县) -
文件格式 DOCX
文件大小 81 KB
发布时间 2024-06-09
更新时间 2024-06-09
作者 匿名
品牌系列 -
审核时间 2024-06-09
下载链接 https://m.zxxk.com/soft/45663900.html
价格 1.00储值(1储值=1元)
来源 学科网

内容正文:

教科版(2019)选修一3.1迭代与递归课时作业 学校:___________姓名:___________班级:___________考号:___________ 一、选择题 1.对于下列递归式子,当n=5时,F的值是(    )    F(1)=3    F(n)=F(n-1)*2 A.16 B.48 C.32 D.64 2.下面的故事与(    )算法有着异曲同工之妙。从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:“从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:‘从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事……’” (   ) A.枚举 B.递归 C.二分 D.迭代 3.有如下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 4.猴子吃桃:猴子第一天摘了若干个桃子,当即吃了一半,还不解馋,又多吃了一个;第二天,吃剩下的桃子的一半,还不过瘾,又多吃了一个;以后每天都吃前一天剩下的一半多一个,到第10天想再吃时,只剩下一个桃子了,问第一天共摘了多少个桃子?使用迭代法时首先确定迭代变量为桃子数n,并设置最后一天的桃子数1为初始值,则迭代关系式和迭代次数分别是(   ) A.n=n/2-1           9 B.n=(n+1)*2     9 C.n=n/2-110         10 D.n=(n+1)*2     10 5.下列程序代码采用的算法是(    ) def mi(x,n):     if n==0:          return 1     else:          return x*mi(x,n-1) A.迭代法 B.枚举法 C.递归法 D.解析法 6.关于8个圆盘的汉诺塔问题,要求将塔座A上的所有圆盘借助塔座B移到塔座C上,并仍按同样顺序叠放。移动圆盘时,需遵守汉诺塔问题的移动规则。由此设计出了下列解决汉诺塔问题的递归算法,能按要求正确解决此问题的选项是(   ) A.   B.   C.   D.   7.递归算法可以用三个字来概括,但不包括下列选项中的(   ) A.解 B.分 C.治 D.合 8.下列关于递归和迭代两种算法的描述错误的是(   ) A.迭代算法和递归算法原理不同,因此迭代程序和递归程序不能相互转换 B.递归是重复调用函数自身 C.迭代通常使用计数器结束循环 D.递归中遇到满足终止条件的时候逐层返回 9.关于迭代与递归算法,下列说法错误的是(   ) A.迭代是重复反馈的活动,其目的通常是逼近所需目标或结果 B.递归是重复调用函数自身 C.迭代程序可以转换成等价的递归程序 D.迭代和递归是同一种算法的两种不同的表述 10.斐波那契数列,运用函数递归的方法可以实现,运用迭代的方式也可以实现,而且比函数递归要快许多。下列关于斐波那契数列的迭代表达式正确的是(   )。 A.f,f2,f2=f1+f2 B.fl=fl+f2,f2= C.fl,f2=f2,fl+f2 D.f=f1+f2,fl=f2,f2=f 11.斐波那契在《计算之书》中提出了一个有趣的兔子问题:从第三个月开始,每个月的兔子对数是前两个月的兔子对数之和,又同时作为下一个月兔子对数的加数。这种重复反馈的过程称为迭代。迭代法也称辗转法,阅读下列程序代码。 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代替 12.用递归求n!,当n=1时,f(1)=1,否则f(n)=f(n-1)*n,当n=3时,递归调用顺序正确的是(   ) A.f(1)、f(2)、f(3) B.f(2)、f(3)、f(1) C.f(3)、f(2)、f(1) D.以上都不对 13.上台阶:每一步只能迈上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 14.关于“递归”,下列说法不正确的是(  ) A.可以利用“递归”进行具有自相似性无限重复事物的定义 B.可以利用“递归”进行具有自重复性无限重复动作的执行,即“递归计算”或“递归执行” C.可以利用“递归”进行具有自相似性无限重复规则的算法的构造 D.递归算法的关键只要给出递归关系式即可求出问题的解 15.下面代码的输出结果是(   )。 def add(x): if x>0: return x+add(x-l) else: return 0 result=add(10) print(result) A.0 B.10 C.55 D.45 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.B 【详解】本题主要考查递归算法。F(5)=F(4)*2=F(3)*2*2=F(2)*2*2*2=F(1)*2*2*2*2=3*2*2*2*2=48,故本题选B选项。 2.B 【详解】本题主要考查递归的描述。一种计算过程,如果其中每一步都要用到前一步或前几步的结果,称为递归的。用递归过程定义的函数,称为递归函数,故本题选B选项。 3.C 【详解】本题主要考查递归函数的应用。n=7,double_f(7)=double_f(5)*7=double_f(3)*5*7=double_f(1)*3*5*7=1*3*5*7=105,故本题选C选项。 4.B 【详解】本题考查的是迭代算法相关知识。采用倒推方法,每天都吃前一天剩下的一半多一个,故迭代关系式为:n=(n+1)*2 ;从第9天倒推到第1天,共需要迭代9次。选项B正确。 5.C 【详解】本题考查的是算法相关知识。迭代法也称辗转法,是一种不断用变量的旧值递推新值的过程,跟迭代法相对应的是直接法(或者称为一次解法),即一次性解决问题;枚举法将问题的所有可能的答案一一列举,然后根据条件判断此答案是否合适,合适就保留,不合适就丢弃;能采用递归描述的算法通常有这样的特征:为求解规模为N的问题,设法将它分解成规模较小的问题,然后从这些小问题的解方便地构造出大问题的解,并且这些规模较小的问题也能采用同样的分解和综合方法,分解成规模更小的问题,并从这些更小问题的解构造出规模较大问题的解;解析法又称为分析法,它是应用数学推导、演绎去求解数学模型的方法。分析本题代码可知采用的算法是递归法,故本题应选C。 6.B 【详解】本题考查的是递归算法应用。解决汉诺塔问题的算法是先把n-1个圆盘从刚开始的塔座上移动到过渡塔座上,然后把开始塔座上的最后一个圆盘移动到目的塔座上,最后是把中间塔座上的n-1个圆盘移动到目的塔座上。故本题应选B。 7.A 【详解】本题主要考查递归算法。递归算法即在程序中不断反复调用自身来达到求解问题的方法。此处的重点是调用自身,这就要求待解决的问题能够分解为相同问题的一个子问题,每个子问题分别解决,这样通过多次调用,将所有的子问题合在一起就可以完成求解。递归算法可以用三个字来概括,即分、治、合,故本题选A选项。 8.A 【详解】本题考查的是递归和迭代算法的区别。迭代算法和递归算法递归算法原理不同,但迭代程序和递归程序可以相互转换,选项A说法错误;递归是重复调用函数自身,其结束方式是遇到满足终止条件的时候逐层返回,迭代算法通常使用计数器结束循环,故选项BCD正确。 9.D 【详解】本题主要考查迭代与递归算法。迭代是重复反馈的活动,其目的通常是逼近所需目标或结果;递归是重复调用函数自身;迭代程序可以转换成等价的递归程序;迭代和递归不是同一种算法的两种不同的表述,故本题选D选项。 10.D 【详解】本题主要考查迭代与递归算法。斐波那契数列指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义: F (0)=0, F (1)=1, F (n)= F (n - 1)+ F (n - 2)( n ≥ 2, n ∈ N*)。所以关于斐波那契数列的迭代表达式正确的是f=f1+f2,fl=f2,f2=f,故本题选D选项。 11.D 【详解】本题主要考查迭代算法及Python程序实现。从第三个月开始,每个月的兔子对数是前两个月的兔子对数之和,又同时作为下一个月兔子对数的加数,故确定迭代变量, 程序中的的f1、f2;建立迭代关系式,②处应填写:f1,f2=f2,f1+f2;对迭代过程进行控制,①处应填写range(3,n+1)枚举从第三个月开始;f1,f2=f2,f1+f2可以用temp=f1+f2,f1=f2,f2=temp代替,故本题选D选项。 12.C 【详解】本题主要考查递归算法。当n=3时,f(3)=f(2)*3,f(2)=f(1)*2,f(1)=1,故递归调用顺序是f(3)、f(2)、f(1),故本题选C选项。 13.B 【详解】本题主要考查递归算法。n=0 和 n=1 的时候并没有其他可选择的,所以可以得出f(0)=0,f(1)=1。 n>=2时情况就变复杂起来,但是这个时候可以操作的步骤也就2种,也就是走1步(n-1)与走2步(n-2),所以可以得到f(n)=f(n-1)+f(n-2),故本题选B选项。 14.D 【详解】本题主要考查递归算法。可以利用“递归”进行具有自相似性无限重复事物的定义;可以利用“递归”进行具有自重复性无限重复动作的执行,即“递归计算”或“递归执行”;可以利用“递归”进行具有自相似性无限重复规则的算法的构造;递归算法的关键要给出递归关系式和递归出口即可求出问题的解, 故本题选D选项。 15.C 【详解】本题主要考查递归算法及Python程序实现。add(x)函数是一个递归函数,如果x>0,则返回x+add(x-1),所以result=add(10)=10+9+8+7+6+5+4+3+2+1=55,故本题选C选项。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

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