数据结构与算法Python版-第五周测验

1单选(2分)
以下哪项不是递归的三定律之一?
A. 对函数运行结果进行缓存
B. 有一个基本结束条件
C. 算法调用自身
D. 能够不断减小问题规模
正确答案:A

2单选(2分)
递归函数的实现与哪种数据结构直接相关?
A. 队列
B. 栈
C. 堆
D. 无序表
正确答案:B

3单选(2分)
使用进制转换函数:

def toStr2(n,base):
    convertString='0123456789ABCDEF'
    if n == 0:
        return ''
    return toStr2(n // base, base) + convertString[n % base]

将数字135转换为三进制“12000”的过程中,函数共被调用了多少次(包含初始调用)?
A. 4
B. 5
C. 6
D. 3
正确答案:C

4单选(2分)
若定义实心等边三角形为0阶谢尔宾斯基三角,现给定一个边长为1的3阶谢尔宾斯基三角,请问它的面积更接近以下哪个数字?
A. 0.1370079
B. 0.1826772
C. 0.4330127
D. 0.2435696
正确答案:B

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)的函数调用?
A. “(((()((()))”
B. “((()))(((”
C. “((()))”
D. “()((()))”
正确答案:A

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)时,下列哪些说法是正确的?
A. 树梢共512个
B. 组成树的线段共1023条
C. 树梢距树根距离为275
D. 树梢距树根距离为270
正确答案:A、B、C

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>

如何补全该函数使其可以正常使用?
A. C处应填:mid
B. C处应填:solve(f, mid, x2)
C. C处应填:solve(f, x1, mid)
D. B处应填:solve(f, mid, x2)
正确答案:C、D

8多选(3分)
以下哪些问题可以用递归算法求解?
A. 图像、语义识别
B. 查找有序列表中某元素是否存在
C. 绘制Mandelbrot集的图形
D. 求斐波那契数列第N项的值
正确答案:B、D

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值