一款经典的猜数字游戏:甲先在50以内随意写一个数字,乙开始猜,如果乙猜的比甲写的数大了,甲就说大了,反之,则说小了。请问根据对分查找思想,乙最多用多少次能猜出甲写的正确数字?( )
10
8
6
4
二分查找法是利用了哪种Python算法思想?( )
动态规划
分治算法
递推算法
递归算法
运行下列Python程序后,输出的结果是?( )
def f(n): if(n==1): return 1 return n*f(n-1) print(f(5))
24
120
15
5
下列定义计算圆周长的匿名函数中,正确的是?( )
lambda r : 2r*3.14
lambda r,3,14*2*r
rst = lambda r,3.14*r*2
rst = lambda r : 3.14*2*r
有如下Python程序段,在调用函数sjc时实参是?( )
def sjc(x): a,b=1,1 print(a,b,x) sjc(20)
20
1
a
b
下列有关匿名函数lambda的描述,错误的是?( )
lambda表达式可以包含一个表达式
在匿名函数中需要使用return来返回值
lambda表达式可以调用其他函数
定义匿名函数时,要将它赋值给一个变量
下列Python程序,运行的结果是?( )
def qh(a,b,c=5): return a+b+c print(qh(5,10),qh(10,10,10))
15 25
20 25
20 30
15 30
有如下Python程序段,执行该程序段后的结果是?( )
def area(r,pi=3.14): return r*r*pi print(area(3,10))
90
28.26
314
None
fun函数可以传入的参数a不确定有多少个,划线处的代码正确的是?( )
def fun(___): pass
a
a[]
a()
*a
请选择下面python代码的输出结果是?( )
def f(n): n += 1 return n x = 10 y = f(x) print(y)
10
11
12
None
执行如下Python程序,语句“s=s+i”被执行的次数是?( )
def f(n): s = 0 for i in range(1,n): if i % 3 == 0 or i % 2 == 0: s = s+i f(10)
5
6
7
8
有如下Python程序段,执行该程序后,输出的结果是?( )
def qh(n): s , f = 0,1 for i in range(1,n+1): s += f * i f = -f return s print(qh(4))
10
2
-2
-10
有如下Python程序,运行后fac(a)函数被调用了几次?( )
def fac(a): if a == 1: return 1 else: return a + fac(a-1) print(fac(6))
5
6
7
9
Python中对已经安装的第三方库进行更新,使之升级到最新版本的pip指令是?( )
pip install <第三方库名>
pip install -U <第三方库名>
pip download <第三方库名>
pip search <第三方库名>
Python中可以通过import math 语句导入math函数库,下列选项中可以实现向下取整的是?( )
math.ceil()
math.sqrt()
math.round()
math.floor()
以下python代码的时间复杂度是多少?( )
i = 1 n = 100 while i < n: i = i * 2
O(n)
O(log2N)
O(n*n)
O(n2)
以下哪种函数一定是直接或间接调用函数本身的函数?( )
自定义函数
库函数
匿名函数
递归函数
以下选项中关于递归算法的描述,错误的是?( )
代码简明
一定要有基例(指不需要递归就能求解得的解)
递归算法都可以用非递归的方法实现
自定义函数体通常使用循环程序结构
实现递推算法的核心程序结构通常是使用?( )
顺序结构
自定义函数
循环结构
分支结构
关于递归与递推算法,表述不准确的观点是?( )
递推算法在计算过程中利用已知条件,不断用变量的旧值递推出变量的新值,直至得到结果的算法
递推算法利用循环结构来实现
递归算法把问题转化为规模缩小了的同类问题的子问题,然后再递归调用函数或过程来求得问题的解
由于递归算法的实现代码简明精练,因此实际工作中要尽量采用递归算法解决问题,以提高工作效益
实际应用中,一般不采用递归的方法来解决层次或序列规模较大的计算问题,其原因是?( )
递归结束条件不易满足
代码变得复杂
运行过程容易出错
算法运行所需的空间消耗增大,运行效率下降很快
运行下列Python程序后的结果是?( )
def f(n): n=n*2 return n a=[7,1] b=f(a) print(a,b)
[7,1],[7,1,7,1]
[7,1],[14,2]
[7,1],[7,1],[7,1]
[7,1],[7,1]
陈丽把自己每天的学习时间情况记录在文本文件“record.txt”中,现在她想用Python程序打开并读取某天的学习时间情况,请问打开文件的正确操作的是?( )
open('record.txt','r')
close('record.txt','r')
write('record.txt')
readline('record.txt')
小明设计了一个计算矩形体积的函数,以下调用函数的四个选项中,参数传递错误的是?( )
def vol(length,width,height): v = length * width * height return v
s = vol(3,4,7)
print(s)
s = vol(3, 7,width=4)
print(s)
s = vol(3,height=7,width=4)
print(s)
s = vol(3, width=4,height=7)
print(s)
小陈编写了一段计算超市打折活动的Python程序,运行时报错,原因可能是下面哪项?( )
def discount(price,rate): final_price = price * rate old_price = float ( input ('请输入原价:')) rate = float (input ('请输入折扣率:')) discount ( old_price , rate ) print ('打折后价格是:',final_price )
调用函数时参数传递错误,应该以参数名price传递
final_price是局部变量,只在函数体内生效
定义函数时,没有定义参数的类型
函数体没有return语句,函数执行完毕后返回结果为None
对数组进行快速排序是利用分治的思想,整个排序过程可以递归进行,算法效率高效,是一种稳定的排序算法,时间复杂度为O(nlogn)。( )
把实现相同功能的代码作为一个代码块封装在一起,形成函数。( )
调用函数时如果位置实参和关键字实参两种方式混用,位置实参必须要放在关键字实参之前。( )
有如下Python程序段,运行该程序段后,将提示错误。( )
def js(x=3,y): print(x,y) js(10)
我们可以通过import模块的方法安装Python第三方库。 ( )
如果执行算法所需的临时空间不会随变量的变化而变化,那么该算法的空间复杂度为一个常量。( )
递归函数中,一定要包含对自身的调用,而且一定要有终止条件。( )
递推算法设计时,首要任务是寻找规律,确定递推表达式,从而求解问题。( )
在Python语法中,全局变量只能在主程序中使用,局部变量只能在局部函数中可用。( )
Python自定义函数时,传递参数的数量必须是明确的。( )
日期问题:
小明同学学习Python的函数后,想动手利用函数来解决生活中的问题。于是他突发奇想,输入日期,统计这一天是这一年的第几天。其中,闰年指年份能被4整除但不能被100整除,或者仅能够被400整除。编写的代码如下,请完善划线处的Python代码。
def isRn(year): #判断year是否闰年 if ① or year % 400 == 0: return 1 return 0 def jsDays(data): #计算日期data在这一年是第几天 s = 0 year = int(data[:4]) month = int(data[4:6]) day = int(data[6:]) for i in range( ② ): s += days[i] s += day if month > 2 and ③ : s += 1 return s def checkRq(data): #判断输入的日期是否正确 month = int(data[4:6]) day = int(data[6:]) if month <1 or month >12: return 0 if days[month-1]<day or day <1: return 0 return 1 days = [31,28,31,30,31,30,31,31,30,31,30,31] #定义每个月的天数 rq = input('输入年月日,格式如:20240102\n') if checkRq(rq): d = ④ print(rq,'是这一年的第',d,'天') else: print(rq,'输入的日期有错误')
数学游戏:
校园里流行一种新的数学游戏:每次邀请两个同学参加,第一个同学先从1和2中挑一个数字,第二个同学可以在对方的基础上选择加1或者加2,然后又轮到第一个同学,他也可以选择加1或者加2,之后再把选择权交给对方,就这样交替地选择加1或者加2,谁先加到20,谁就赢了。小智编写了以下程序,分析总共存在多少种可能出现的情形。请补充完成该Python程序。
def act(n): if n == 1 or ① : return 1 sn = ② return ③ tn = act( ④ ) print("总共存在%d种可能出现的情形。"%tn)
乘客问题:
某路公共汽车,总共有八站,从一号站发车时车上已有n位乘客,到了第二站先下一半乘客,再上来了六位乘客,到了第三站也先下一半乘客,再上来了五位乘客,以后每到一站都先下车上已有的一半乘客,再上来了乘客比前一站少一个......,到了终点站车上还有乘客6人,问发车时车上的乘客有多少?根据递归思想,编写自定义函数完成该程序功能,完善空白处Python代码。
def num(i): if i == 8: return ① else: return ② print( ③ )