本文主要是介绍MOOC数据结构与算法Python版-第五周测验,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1 单选(2分)
以下哪项不是递归的三定律之一?B
-
A.有一个基本结束条件
-
B.对函数运行结果进行缓存
-
C.能够不断减小问题规模
-
D.算法调用自身
2 单选(2分)
递归函数的实现与哪种数据结构直接相关?C
-
A.队列
-
B.无序表
-
C.栈
-
D.堆
3 单选(2分)
使用进制转换函数:
- def toStr2(n,base):
- convertString='0123456789ABCDEF'
- if n == 0:
- return ''
- return toStr2(n // base, base) + convertString[n % base]
将数字135转换为三进制“12000”的过程中,函数共被调用了多少次(包含初始调用)?A
-
A.6
-
B.4
-
C.3
-
D.5
4 单选(2分)
若定义实心等边三角形为0阶谢尔宾斯基三角,现给定一个边长为1的3阶谢尔宾斯基三角,请问它的面积更接近以下哪个数字?B
- A.0.4330127
-
B.0.1826772
-
C.0.1370079
-
D.0.2435696
5 单选(2分)
以下是使用递归方式实现的圆括号匹配函数:
- def match(s, n=0):
- if s:
- if s[0] == '(':
- n += 1
- else:
- n -= 1
- if n < 0:
- return False
- return match(s[1:], n)
- else:
- return n == 0
请问以下哪个输入中可能出现参数为match("((()))", 3)的函数调用?B
-
A."((()))"
-
B."(((()((()))"
-
C."()((()))"
-
D."((()))((("
6 多选(3分)
给定绘制分形树函数:
- def tree(branch_len):
- t.pendown()
- t.forward(branch_len)
- t.penup()
- if branch_len > 5:
- t.left(20)
- tree(branch_len - 5)
- t.right(40)
- tree(branch_len - 5)
- t.left(20)
- t.backward(branch_len)
其中t为海龟画笔对象。
在调用函数tree(50)时,下列哪些说法是正确的?CD
-
A.组成树的线段共511条
-
B.画线的长度总和为9150
-
C.树梢共512个
-
D.组成树的线段共1023条
7 多选(3分)
以下函数用于可用于求方程的近似解,其中参数f为一个输入、输出均为数字的函数
- def solve(f, x1, x2):
- mid = (x1 + x2) / 2
- if f(mid) == 0 or abs(x1 - x2) < 1e-8:
- return # <A>
- elif f(mid) * f(x1) > 0:
- return # <B>
- else:
- return # <C>
如何补全该函数使其可以正常使用?BCD
-
A.
C处应填:
- mid
-
B.
A处应填:
- mid
-
C.
B处应填:
- solve(f, x1, mid)
-
D.
B处应填:
- solve(f, mid, x2)
8 多选(3分)
以下哪些问题可以用递归算法求解?AB
-
A.查找有序列表中某元素是否存在
-
B.求斐波那契数列第N项的值
-
C.图像、语义识别
-
D.绘制Mandelbrot集的图形
这篇关于MOOC数据结构与算法Python版-第五周测验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!