选择题 共25道
判断题 共10道
编程题 共2道
对于数列3,8,11,15,17,19,25,30,44,采用“二分查找”法查找8,需要查找多少次?
下面哪一项不是pip指令?
有如下Python语句,执行该语句后,结果是?
f=lambda x:5
print(f(3))
执行如下Python代码后,结果是?
def inverse(s,n=0): while s:
n = n * 10 + s % 10
s = s // 10
return n
print(inverse(456,123))
下列有关循环和递归的描述正确的是?
以下有关Python函数的定义表述中错误的是?
如下代码运行后下面选项中描述错误的是?
def pph(a,b):
c=a**2+b
b=a
return c
a=10
b=100
c=pph(a,b)+a
print(a,' ',b,' ',c)
阅读下列程序段,数列的第6项值为多少?
def fibona(x):
if x==1 or x==2:
f=1
for i in range(3,x+1):
f=fibona(x-1)+fibona(x-2)
return f
n=int(input("请输入数列第几项:"))
m=fibona(n)
print("数列的第"+str(n)+"项的值为"+str(m))
有如下Python的自定义函数,执行该程序后,结果是?( )
def calc(x,y,op):
return eval(str(x)+op+str(y))
print(calc(3,5,'+'))
有如下Python程序,执行该程序后,结果是?
x = 3
def calc():
x = 5
print(calc())
应用分治算法的前提是?
有一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下,求它在第10次落地前,反弹多高?用递归函数解决,下面选项正确的是?
g = lambda x,y=3,z=5:x+y+z
print(g(2))
下面的程序输出1~100之间能被7整除但不能同时被5整除的所有整数。
k=1
while k<101:
if k%7==0 and k%5 !=0:
print(k)
k += 1
根据下面哪个选项的方法优化后,程序的运行效率最高?
下列程序段的运行结果为?( )
def f(n):
if n<=1:
return 1
else:
return f(n-1)*3
print(f(5))
下列选项中,关于如何安装第三方库的说法正确的是?
运行以下程序输出的结果是?( )
y=2
def fun():
global y
y=1
print(y)
fun()
下面哪种算法使用了分治的方法?
下面关于递归函数说法正确的是?
观察此题示例代码,以下表述中错误的是?
nums = range(2,20)
for i in nums:
nums=list( filter(lambda x:x==i or x % i,nums))
print(nums)
在一个平面中,有n个圆两两相交,但任二个圆不相切,任三个圆无公共点,以下函数能计算出n个圆把平面分成的区域个数,空格处填写的语句是?
def c(n):
if n=1:
return 2
return
有如下Python程序段,执行该程序后,结果是?
def fun(*p):
return sum(p)
print(fun(1,3,5))
以下关于全局变量和局部变量的表述正确的是?
关于以下程序,下列表述中错误的一项是?
c=1
def fun(n):
a=1
for b in range(1,n):
a*=b
return a
n=int(input('Enter n='))
print(fun(n),c)
以下程序的运行结果是?
def f(x,y,z): print(x,y,z)
f(z=3,x=2,y=1)
所有的Python第三方库均可以使用pip工具进行安装。
算法的时间复杂度与空间复杂度没有必然关系。
在创建自定义函数时,即使函数没有参数,也必须保留一对空的"()"。
执行以下代码:
def fun( mylist ):
mylist.append([1,2,3,4])
print("函数内取值: ", mylist)
mylist = [5,6,7]
fun( mylist )
print("函数外取值: ", mylist)
程序输出的结果为:函数内取值: [5, 6, 7, [1, 2, 3, 4]]
函数外取值: [5, 6, 7, [1, 2, 3, 4]]。
定义Python函数时,如果函数中没有return语句,则该函数返回值是None。
sum=0
def fun(arg1,arg2):
sum=arg1+arg2
print(sum)
return sum
fun(5,10)
程序输出的结果为:15
15
对于一个复杂问题,如果所分解出的各个子问题之间相互不独立,则不适合使用分治算法。
def fun( name, age = 30 ):
print("Name:", name)
print("Age:", age)
fun( age=40, name="summy" )
fun( name="summy" )
程序输出的结果为:
Name: summy Age: 40
Name: summy
Age: 40。
下列程序段运行后的结果是2。
def change(a,b):
a,b=b,a
a=2
b=3
print(change(change(a,b),a))
对于斐波那契数列:1,1,2,3,5,……,我们只能采用迭代公式以递推的方式求解。
在编写抽奖程序时,为了保证一个人只有一次中奖机会,要检查新抽出来的数字是不是已经被抽中过了。
一种办法是将已经中过奖的人员编号存放在test_list里面,然后每抽出一个新的人员编号,判断它是否在中奖人员列表中。
如果没有在中奖人员列表中,说明中奖号码有效,并将它保存进中奖人员列表;如果已经在里面了,就再生成一个新的人员编号。
请你补全下面的代码,实现判断一个数字是否在列表中的功能。
#子问题算法(子问题规模为1)
def is_in_list(init_list,num):
if init_list[0] == num:
return True
return False
#分治法
def find_out(init_list,num):
n = len(init_list)
if ____①______ #如果问题的规模等于1,直接解决
return is_in_list(init_list,num)
#分解(子问题规模为n/2)
left_list,right_list = _________②____________
#递归,分治,合并
res=find_out(left_list,num) __③__ find_out(right_list,num)
return res
if __name__ == "__main__":
#测试数据
test_list = [18,43,21,3,28,2,46,25,32,40,14,36]
#查找
print(_____④_____)
程序运行结果:
>>>True
乘法运算等于多个加法运算的和。比如,3×2可以理解为3+3,也可以理解为2+2+2 。
下面的程序使用递归算法演示了计算两个自然数的乘积的过程。请你补全代码。
输入:分两次输入自然数num1,num2
输出:num1 × num2 = 乘积 def cheng_fa(num1,num2,value):
if ①
value += 0
value += num1
②
value = cheng_fa(num1,num2,value)
return ③
num1=int(input('输入第1个数:'))
num2=int(input('输入第2个数:'))
value=0
print('{} X {} = {}'.format(num1,num2,value))
输入第1个数:3
输入第2个数:7
3 X 7 = 21