选择题 共25道
判断题 共10道
编程题 共2道
考察以下函数定义代码:
def func(x:int,y:str)->str:
z=x*y
return z
以下陈述正确的是?( )
用枚举算法求解“100以内既能被3整除又能被4整除的元素”时,在下列数值范围内,算法执行效率最高的是?( )
下列有关函数的描述中,正确的是?( )
下列哪个语句能够定义参数个数不确定的函数?( )
执行如下Python代码的结果是?( )
def area(r,pi=3.14): return r*r*pi print(area(2,10))
执行如下Python代码,输出结果是?( )
def hs(num): num += 1 return num n=10 s=hs(n) print(s)
有如下Python程序,输出的结果是?( ) def whao(year = '2023'): print('你好' + year) whao()
编写计算正方体体积的匿名函数,下列哪一个语句是正确的?( )
执行如下Python程序,运行的结果是?( )
def zfzh(s): c = '' for ch in s: if "9">=ch>= "0": c+=str(int(ch)+1) elif "z">=ch>= "a": c+= chr(ord(ch)- ord("a")+ord("A")) return c s = 'hzag-21-8' print(zfzh(s))
在Python中,以下哪个代码是安装numpy模块的方法?( )
《阅微草堂笔记》里描述了槐树果实“响豆”,在夜里爆响,这种豆一棵树只有一粒,难以辨认出。所以古人就等槐树开花结果后,用许多布囊分别贮存豆荚,用来当枕头。夜里如果没有听到声音,便扔掉。如果有爆响声。然后把这一囊的豆荚又分成几个小囊装好,夜里再枕着听……如此这么分下去直到找到响豆。以上故事体现的算法是?( )
下列哪项不是分治算法所具有的特征?( )
两位同学玩猜数字游戏,规则如下:一方在心里默想一个范围在1-100之间的数,如果另一方猜的数字比对方想的要大,就说大了;如果猜的数字比想的要小,就说小了,直到猜中数字。那么使用二分查找法最多需要猜测的次数是?( )
用递推算法求解n个自然数的乘积,请问代码中横线上需要填入的正确代码是?( )
def fact(n):
s=1
for i in range(1,n+1):
s=s*i
return ________
a=fact(5)
print(a)
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
可以用下列代码解决这个问题,请问这段代码是基于( )算法编写的?
high=100
s=0
sum=0
for i in range(10):
s,high=high+high/2,high/2
sum=sum+s
sum=sum-high
print(sum)
print(high)
用递归算法求1~n个连续自然数的乘积的代码如下,请选择合适的代码补全程序?( ) def Chengji(n): if n <=1: return 1 else: return _____?______ print(Chengji(3))
有一根绳子,第一次剪去一半多2米,第二次剪去剩下的一半多2米,第三次剪去剩下的一半多2米,第四次剪去剩下的一半多2米,第五次剪去剩下的一半多2米,此时绳子还剩2米。这根绳子长几米?想解决这个问题的话,可以采用以下哪种算法?( )
小猴子第一天摘下若干桃子,当即吃掉一半,又多吃一个。第二天早上又将剩下的桃子吃一半,又多吃一个。以后每天早上吃前一天剩下的一半另加一个。到第5天早上猴子想再吃时,发现只剩下一个桃子了。问第一天猴子共摘多少个桃子?
这个问题可以用递归来解决,代码如下:
def peach(day):
if day==1:
return 1
return (peach(day-1) + 1)*2
s=peach(5)
print('一共有%d只桃子'%(s))
请问第2行的“if day == 1”代码起到的作用是?( )
下列代码可以求两个数的最小公倍数。请认真阅读下列代码运用了什么算法?( )
def lcm(s,m,n):
if s%n==0:
return s
else:
return lcm(s+m,m,n)
a=int(input('请输入第1个数:'))
b=int(input('请输入第2个数:'))
c=lcm(a,a,b)
print('{}和{}的最小公倍数是{}'.format(a,b,c))
关于函数,正确的描述是?( )
关于全局变量和局部变量,正确的描述是?( )
定义以下函数:
def func(x,y,z=2):
print(x+y+z)
分别以func(1,2,3)和func(1,2)语句调用该函数,运行后的结果分别是?( )
在嵌套函数中,也就是一个函数里面还有一个函数,如果内部函数需要修改外部变量的值,处理的方法是?( )
在自定义函数中,如果发现局部变量与全局变量同名,则?( )
函数是将实现相同功能的代码封装在一起,实现代码复用。( )
关键字实参通过“关键字=值”的方式传值,函数参数全部采用此方式传值时,不需要考虑函数调用过程中形参的顺序。( )
函数的定义代码不需要在主程序调用函数之前。( )
命令pip download <第三方库>表示下载并安装指定的第三方库。( )
二分查找又称对折半查找,例如:在数列34、17、25、9、10、3中查找3,适合采用二分查找法。( )
递归算法不涉及高深的数学知识,使得很多比较复杂的问题,也可以用简洁的代码解决,代码的执行效率比较高,所以即使有其他算法可行,也应该首选递归算法解决问题。( )
递归算法中,必然存在函数体内调用自身的情况,可以在最后调用,也可以在中间调用。( )
Python程序中,自定义函数可以放在整个程序的开头,也可以放在主程序之后,比较自由。( )
通过把某些特定功能语句设计成自定义函数,可以简化主程序的编写。( )
下面代码的时间复杂度为O(n*n)。( )
arr = [ 2, 3, 4, 10, 40 ]
n = len(arr)
for i in range(n):
for j in range(0, n-i-1):
if arr[j] > arr[j+1] :
arr[j], arr[j+1] = arr[j+1], arr[j]
从键盘上分别输入要查找和替换的字符串,对文本文件进行查找与替换,替换后保存到新的文本文件中。
思路:输入待查找字符串s,需查找子字符串key和替换字符串new,通过调用自定义函数replace实现替换。完善划线处代码。
s = input("请输入待查找的字符串:")
key = input("请输入需查找的子字符串:")
new = input("请输入要替换的字符串:")
def findstr(key, s, begin):
for i in range(begin,len(s) - len(key) + 1):
if s[i: ① ]== key:
return i
return -1
def replace(key, new, s):
begin = 0
while begin < ② :
pos = findstr(key,s, begin)
if pos ==-1:
break
s = s[0:pos]+ new + s[pos + len(key): ③ ]
begin = pos + len(key)
rst = ④ #调用函数替换字符
print(rst)
一个列表中存在n个数据,可以用分治算法来找到其中的最小值。具体过程如下:如果列表元素的个数小于等于2的时候,经过一个判断就找到其中的最小值,所以可以先把数据从中间划分为左右两部分,然后通过递归把每一部分再划分为左右两部分,直到数据规模小于等于2的时候,返回结果,然后通过递归到最后为两个数据对比,我们就可以找到最小值。
请根据以上算法过程,补全代码。
# 求列表中小于两个元素的最小值
def get_min(number):
if len(number) == 1:
return ①
if number[1] > number[0]:
return number[0]
return number[1]
def solve(number):
n = len(number)
if n <= 2:
return get_min(number)
# 将整个列表分为左右两部分
left_list, right_list = ② , number[n//2:]
# 递归(树),分治
left_min, right_min = solve(left_list), ③
return get_min([left_min, right_min])
test_list = [5, 11, 3, 2, 7, 9]
print(solve(test_list))