选择题 共25道
判断题 共10道
编程题 共3道
递推是在定义一个函数时,出现自己调用自己。( )
Python匿名函数使用关键字lambda,冒号之后的部分表示匿名函数的参数列表。( )
Python中,函数能够增强代码的可读性,提高代码的重复利用率。 ( )
Python中自定义函数的函数体中必须要有return语句。( )
Python中,调用函数时,如果给设置了默认值的形参x再次赋值,则运行结果会使用新传入的实参值。( )
递归是通过重复执行一组语句或操作来遍历函数中的每个元素的过程。( )
二分查找算法是分治算法思想的一个典型应用。( )
使用from module import *方式导入模块中的所有功能,虽然方便,但可能会因为命名冲突导致程序出错。( )
一个函数可以没有参数,也可以没有返回值。( )
程序调试时,输入一组测试数据,能输出正确的结果,说明程序没有问题。( )
利用分治算法,求一个非空整数列表中的最小值。补全以下代码。
算法说明:将列表不断二分,直到子列表长度小于等于2,直接比较得出最小值,然后合并结果(返回两个子列表最小值中的较小者)。
def find_min(nums):
n = len(nums)
# 基线条件:问题规模足够小,直接求解
if n == 1:
return ①
elif n == 2:
return ②
# 分解:将大问题分成两个子问题
mid = n // 2
left_part = nums[:mid]
right_part = nums[mid:]
# 解决:递归求解子问题
left_min = find_min(left_part)
right_min = find_min(right_part)
# 合并:合并子问题的解
return ③
# 测试
test_list = [34, 12, 5, 78, 3, 56, 91, 23]
print('列表中的最小值是:', find_min(test_list))
小明在学习二分查找后,编写程序实现查找key所遍历的过程。如有原始数据是 12, 18, 27, 31, 46, 68, 75, 80, 90, 92,待查找的数据是90,打印输出key所遍历数分别是:
46,80,90。他编写的程序如下,完善划线处的代码。
def dfsearch(data,key): #二分法在data中查找key
p = [] #存放key所遍历数
flag = False
i,j = 0,len(data) - 1
while i <= j:
m = (i+j)//2
p.append(data[m])
if ① :
flag = True
return p,flag
elif data[m] > key:
j = ②
else:
i = ③
data = [12,18,27,31,46,68,75,80,90,92]
key = int(input())
rst,flag = ④
if flag:
print('原始数据是',data,'待查找的数据是',key,'\n找到,查找的数分别是:')
for i in rst:
print(i,end = ',')
print('原始数据是',data,'待查找的数据是',key,'\n没有找到,查找的数分别是:')
打印图案,由“*”和“-”按规律构成。当行数等于4时,图案如下。用自定义函数实现图案输出,请在序号处填写正确的代码,实现效果。
----*
---
--*
-
def tuxing(n):
for i in range(1, ① ):
print("-" * ② + "*"* ③ )
m=int(input('请输入行数:'))
④