第 1 题 单选题
有如下Python程序,包含lambda函数,运行该程序后,输出的结果是?( )
g = lambda x,y:x*y
print(g(2,3))
A. 2
B. 3
C. 6
D. 8
第 2 题 单选题
运行下列程序,输出的结果是?( )
def dtox(x,base = 2):
s = []
while x>0:
s.append(x % base)
x = x // base
return s
print(dtox(11))
A. 程序出错
B. 1101
C. [1, 1, 0, 1]
D. [1, 0, 1, 1]
第 3 题 单选题
下列哪项不是函数的优点?( )
A. 提高代码的复用率。
B. 使得程序简洁,程序功能清晰。
C. 便于程序的修改,便于扩展。
D. 代码运行速度更快。
第 4 题 单选题
下列关于函数的描述正确的是?( )
A. 函数内的语句不会改变任何非全局变量的值。
B. 传入函数的参数都会以副本的形式存在函数中。
C. 函数的名称不能与Python的保留字相同。
D. 每个函数必须有一个return语句。
第 5 题 单选题
Python中自定义函数的关键字是?( )
A. sub
B. def
C. function
D. void
第 6 题 单选题
运行下列程序,输出的结果是?( )
def nxs(x):
s = 0
while x:
s = s * 10 + x % 10
x //= 10
return s
print(nxs(106))
A. 106
B. 610
C. 160
D. 601
第 7 题 单选题
Python编写的自定义函数dy,执行该程序段后,输出的结果是?( )
def dy(x,y):
return x>y
print(dy(10,20))
A. 10
B. 20
C. False
D. True
第 8 题 单选题
在函数中有一种叫空函数。 构造一个空函数,下面的横线处应填?( )
def 函数名( ):
______________
A. None
B. return None
C. pass
D. empty
第 9 题 单选题
下列代码的输出结果是?( )
def fun(a,b):
t = a
a = b
b = t
print(a, b)
fun(pow(3,2),pow(2,3)) #pow(x,y)返回x**y的值
A. 3 2
B. 8 9
C. 2 3
D. 9 8
第 10 题 单选题
函数中用return [表达式] 结束函数,选择性地返回一个值给调用方,有时不带表达式的return相当于返回?( )
A. 0
B. None
C. 1
D. False
第 11 题 单选题
对于下面的函数:
def f(x,z,y=2):
print(x+y+z)
用f(1,2,3)和f(1,2)两个调用语句,运行结果分别是?( )
A. 都是5
B. 6和5
C. 都是6
D. 5和6
第 12 题 单选题
下列这段程序的打印结果是?( )
def demo(item,lis=[]):
lis=[]
lis.append(item)
return lis
print(demo('a'),end='')
print(demo('b'))
A.
['a']['a', 'b']
B.
['a']['b']
C.
[][]
D.
[ ]['b']
第 13 题 单选题
函数如下:
def showNumber(numbers):
for n in numbers:
print(n)
下面哪个选项在调用该函数时会报错?( )
A. showNumber([2,4,5])
B. showNumber('abcesf’)
C. showNumber(3.4)
D. showNumber((12,4,5))
第 14 题 单选题
下列关键字中,用来导入第三方库的是?( )
A. include
B. from
C. import
D. continue
第 15 题 单选题
以下选项中,不属于第三方库安装工具pip能够实现的功能是?( )
A. 安装一个第三方库。
B. 卸载已经安装的第三方库。
C. 修改已经安装的第三方库。
D. 查询已经安装的第三方库。
第 16 题 单选题
关于评价算法的优劣,以下说法正确的是?( )
A. 只要考虑是否得出正确答案。
B. 只要考虑算法的执行时间。
C. 只要考虑算法所占用的空间。
D. 从算法执行时间和需占用的空间两方面考虑。
第 17 题 单选题
下列程序实现求菲波那契数列第4项的值:
def f(n):
if n==1 or n==2:
return 1
elif n>2:
return f(n-1)+f(n-2)
else:
return -1
print(f(4))
请问:这种解决方法属于哪种算法?( )
A. 归纳
B. 列举
C. 递推
D. 递归
第 18 题 单选题
著名的菲波那契数列为1,1,2,3,5,8,……。即除开始的两项为1外,其余每一项均为前两项之和。
下面的程序实现计算该数列的第4项值的大小。
n,a,b=4,1,1
if n==1:
print("第%d个数为%d。"%_____(1)______)
if n==2:
print("第%d个数为%d。"%(n,b))
if n>2:
for i in range(2,n):
result=a+b
a,b=b,result
print("第%d个数为%d。"%(n,result))
请问:横线(1)所在位置不适合填入以下哪个选项?( )
A. (n,1)
B. (n,a)
C. (n,b)
D. (a,n)
第 19 题 单选题
运行下列程序,输出的结果是?( )
def f(n):
if n==1:
return 1
else:
return f(n-1)+(n-1)*f(n-1)
print(f(4))
A. 64
B. 24
C. 4
D. 16
第 20 题 单选题
已知Pell数列定义如下:
第5项的值是?( )
A. 29
B. 30
C. 12
D. 32
第 21 题 单选题
运行下列程序,输出的结果是?( )
def Pell(n):
if n==1:
return 1
if n==2:
return 2
if n>=3:
return 2*Pell(n-1)+Pell(n-2)
print(Pell(4))
A. 12
B. 4
C. 3
D. 24
第 22 题 单选题
运行下列程序,输出的结果是?( )
def f(n):
if n==1 or n==2:
return 1
elif n>2:
return f(n-1)+f(n-2)
else:
return -1
print(f(-2))
A. -2
B. -1
C. 出错
D. 1
第 23 题 单选题
在1-20之间玩猜数字的游戏时,如果采用二分法的策略,并且给‘大了’或‘小了’的提示,最差的情况下多少次就可以猜中?( )
A. 5
B. 10
C. 15
D. 20
第 24 题 单选题
下列选项中,哪一项不是分治算法的特征?( )
A. 问题的规模缩小到一定程度就可以容易解决。
B. 该问题分解出的子问题的解可以合并为该问题的解。
C. 各个子问题必须分解到不能分解为止。
D. 该问题具有最优子结构性质。
第 25 题 单选题
下列排序算法中利用了分治算法思想的是?( )
A. 冒泡排序
B. 插入排序
C. 选择排序
D. 快速排序
第 26 题 判断题
Python中自定义函数的代码需要写在调用该函数之前。( )
A. 正确
B. 错误
第 27 题 判断题
Python定义函数时,可选参数必须写在非可选参数后面。( )
A. 正确
B. 错误
第 28 题 判断题
Python中编写函数时,必须指明该函数的返回值。( )
A. 正确
B. 错误
第 29 题 判断题
用户自定义函数是用户自己写的一段程序,一般包括函数名、参数、返回值、函数体等四部分。其中,函数名和参数是必不可少的部分。( )
A. 正确
B. 错误
第 30 题 判断题
自定义函数def块中的代码不是主程序的一部分,运行会跳过该段代码。( )
A. 正确
B. 错误
第 31 题 判断题
算法优化主要是为了减少冗余数据,优化时间复杂度和空间复杂度。( )
A. 正确
B. 错误
第 32 题 判断题
在Python中使用爬虫技术抓取网站信息需要用到第三方库。( )
A. 正确
B. 错误
第 33 题 判断题
对于递归而言,递推与回归,二者缺一不可。( )
A. 正确
B. 错误
第 34 题 判断题
递归算法跟递推算法是一样的,都在重复调用。( )
A. 正确
B. 错误
第 35 题 判断题
使用分治算法解决问题的一般步骤是分解、求解、合并。( )
A. 正确
B. 错误
第 1 题 问答题
字符加密。将大写字母逐个按其ASCII值转换为7位二进制数,并在最左边补0,使得每个字母转换为8位二进制数,然后将8位二进制数每四位转为十六进制数。如明文是"CIE",加密后的密文是"434945"。编写的python程序如下,完善划线处的代码。
def xtob(n): #将整数转为二进制数
if n <= 1:
return str(n)
return xtob(n//2)+ ①
mingwen = "CIE"
he = '0123456789ABCDEF'
rst = ''
for c in mingwen:
s = "0" + xtob(ord(c)) #将明文转为8位二进制数
i = 0
data = 0
while i < 8:
data =data * 2 + ②
if (i + 1) % 4 == 0:
rst = rst + he[data]
data = 0
③
print('密文是:',rst)
第 2 题 问答题
辗转相除法求最大公约数,下列函数是用递归算法实现的,请完善横线处的代码。
def gcd(a,b):
m=a%b
if m==0:
return ①
else:
a=b
②
return ③
print(gcd(12,18))
第 3 题 问答题
下面的程序运用分治算法寻找列表中的最大值。请将空格补全代码。
子问题规模小于或等于2时
def zui_da_zhi(a_list):
if ① :
if a_list[0]>=a_list[1]:
most=a_list[0]
else:
most=a_list[1]
else:
most=a_list[0]
return most
分治算法排序
def fen_zhi(init_list):
n=len(init_list)
if n<=2: #若问题规模小于或等于2,解决
return zui_da_zhi(init_list)
#分解(子问题规模为n/2)
left_list,right_list= ②
#递归,分治
left_max,right_max= ③
#合并
return zui_da_zhi([left_max,right_max])
测试数据
test_data=[12,25,4,47,69,5,4,6,37,89,21]
print('最大值为:',fen_zhi(test_data))