资源简介 4.2非数值计算 练习题1.以下选项中,对于递归程序的描述错误的是( )A.递归程序都可以有非递归编写方法B.执行效率高C.一定要有基例D.书写简单2.下列能用二分查找解决问题的序列是( )A. 1,2,5,9,19,28,73B. 9,8,5,3,2,14,33C. 1,3,5,7,9,11,13D. 98,65,44,23,47,23.重复调用自身的函数是( )A. 迭代B. 递归C. 二分查找D. 均不是4.关于递归函数的描述,以下选项中正确的是( )A.函数比较复杂B.包含一个循环结构C.函数名称作为返回值D.函数内部包含对本函数的再次调用5.根据题目不补全下列代码。题目:某路公共汽车,总共有八站,从一号站发轩时车上已有n位乘客,到了第二站先下一半乘客,再上来了六位乘客;到了第三站也先下一半乘客,再上来了五位乘客,以后每到一站都先下车上已有的一半乘客,再上来了乘客比前一站少一个……,到了终点站车上还有乘客六人,问发车时车上的乘客有多少?def num(i):if i == ① : # 终点站return ②else:return (num(i+1)-8+i)*2i = eval(input())print(num(i))6.根据题目不补全下列代码。题目:有一群猴子摘来了一批桃子,猴王规定每天只准吃一半加一只(即第二天吃剩下的一半加一只,以此类推),第九天正好吃完,问猴子们摘来了多少桃子?def peach(n):if ① :return 0elif n == 9:return 2 # 第九天还有两个桃子,都被吃了else:return (peach(n+1)+1)*2print("猴子们摘来了:{}个桃子".format(peach(1)))s = peach(1)for i in range( ② , ③ ):print("第{}天吃了{}个桃子,剩余桃子数为{}". format(i, s-peach(i+1), peach(i+1)))s = peach(i+1)7.迭代和递归的相同点与不同点。答案:第1题:B第2题:C第3题:B第4题:D第5题:① 8 ② 6第6题:① N>9 ② 1 ③ 10第7题:相同点:都需要重复执行某些代码不同点:重复内容不同:迭代是重复反馈过程的活动,其目的通常是逼近所需目标或结果。递归是重复调用函数自身。结束条件不同:递归中,遇到满足终止条件的情况时逐层返回。迭代则通常使用计数器结束循环。 展开更多...... 收起↑ 资源预览