模块式网站制作,做网络推广怎么收费,邢台手机网站建设服务,荣耀官方网站手机商城Python等级考试#xff08;1~6级#xff09;全部真题・点这里 一、单选题#xff08;共25题#xff0c;每题2分#xff0c;共50分#xff09;
第1题
不超过100个元素的有序数列#xff0c;使用二分查找能找到指定的元素#xff0c;可能的查找次数不包括#xff1f; … Python等级考试1~6级全部真题・点这里 一、单选题共25题每题2分共50分
第1题
不超过100个元素的有序数列使用二分查找能找到指定的元素可能的查找次数不包括
A1次 B6次 C7次 D8次
答案D
按照二分查找法的规律100个元素的有序列表不管是否找到至多查找7次。
第2题
运行以下代码正确的打印结果是
def f():c0for i in range(4,51,4):if i%60:cc1return cprint(f())A1 B2 C4 D8
答案C
函数f()的作用是求4-50间4和6的公倍数个数即12的倍数个数。
第3题
10个人站一列分苹果问第10个人分到多少个苹果他说比前面一个人多分到2个依次往前都说比前面一个人多分到2个最后问第一个人他说分到10个苹果。用以下函数求第10个人分到的苹果数则应补充选项为
def apple(n):if n 1:return 10else:return print(apple(10))Aapple(n)2 Bn2 Capple(n-1)2 Dapple(n1)-2
答案C
第4题
观察程序段以下说法错误的是
def fib(n):if n1 or n2:s1else:sfib(n-1)fib(n-2)return smint(input(请输入m的值m2:))print(fib(m))A如果输入m的值为8打印的结果为20 B该程序段用了递归来实现 C如果缺少语句“return s”程序会报错 D语句“def fib(n):”中的n为形参
答案A
定义函数时的语法如下 def 函数名参数集合 函数体 [return 函数值] 本题中的自定义函数fib(m)需要返回值所以“return 函数值”语句不能少定义时“函数名参数集合”中的参数为形参调用时“函数名参数集合” 中的参数为实参。如果输入m的值为8打印的结果为21。
第5题
关于python函数参数的说法正确的是
A函数一定要有参数和返回值 B在调用一个函数时若函数中修改了形参变量的值则对应的实参变量的值也被修改 C参数的值是否会改变与函数中对变量的操作有关与参数类型无关 D函数的形参在函数被调用时获得初始值
答案D
函数的形参作用域为本函数在函数被调用时获得初始值。
第6题
关于递归与递推方法的比较错误的观点是
A递归是将复杂问题降解成若干个子问题依次降解求出低阶规模的解代入高阶问题中直至求出原问题的解 B递推是构造低阶的问题并求出解依次推导出高阶的问题以及解直至求出问题的解 C数学上的递推关系可以通过递归的方法来实现 D递归算法代码简洁运行速度比递推快因此应该尽量采用递归的方法
答案D
D.递归的运行开销大。
第7题
运行以下代码输出结果正确的是
a1bc[]def fun(a,c):a2c.append(a)fun(a,c)print(a,b,c)A2 [2] [2] B1 [] [2] C1 [2] [2] D2 [] [2]
答案C
函数体内变量a的值为2添加到了列表c中b和c指向同一个列表地址因此列表b也随之改变
第8题
关于Turtle库的表述中错误的是
ATurtle库是Python语言中一个很流行的绘制图像的函数库。 B画布就是turtle为我们展开用于绘图区域我们可以设置它的大小和初始位置。 Cturtle.circle( )是只能画一个指定半径为r的圆。 Dturtle.speed(speed)设置画笔移动速度画笔绘制的速度范围[0,10]整数数字越大越快。
答案C
turtle.circle( )是turtle中的常用命令基本语法是circle(radius,e)即画一个指定半径为r角度e的圆或弧
第9题
有100枚金币其中有1枚轻1克的假金币现在要找出这枚假金币但身边只有1个没有刻度的天秤。小明先是将金币分成50枚一堆共两堆称重在轻的那一堆中又分成两堆接着在轻的25枚中分成12,12,1三堆称重若两堆12枚的重量相同则假币为单独剩下的那一枚否则在轻的那一堆中继续按照之前的办法称下去直到找到假金币。请问小明采用的办法与哪个算法有着相似之处
A递归 B分治 C枚举 D贪心
答案B
分治算法就是对一个问题采取各个击破的方法将一个规模为N的问题分解为K个规模较小的子问题这些子问题相互独立且与原问题性质相同。只要求出子问题的解就可得到原问题的解。
第10题
运行以下代码正确的打印结果是
def f(s):t0max0for i in s:if i0 and i9:tt1else:if tmax:maxtt0print(max)list123ab45cd6df(list)A0 B1 C2 D3
答案D
本段代码中函数f()的作用是求最长的连续数字字符串的长度。
第11题
下列关于函数的描述正确的是
A函数是可重复使用的用来实现单一或相关联功能的代码段 B函数中必须return语句 C函数好处是模块性但不能提高代码的利用率 D函数内容以冒号起始可以不缩进
答案A
函数是一段封装了特定功能的代码块可以在程序中多次调用。函数的设计目的是为了实现特定的功能并且具有模块化的特性可以提高代码的可读性、可维护性和重用性。
第12题
调用以下函数时语句“ssi”被执行的次数是
def f():s0i1while i10:if i%30 or s%21:ssiii1print(s)A3 B4 C5 D6
答案C
在给定的代码中ssi语句将在第3、4、5、6、9次循环迭代中执行。这是因为在这些迭代中满足条件i%30 or s%21。
因此ssi语句被执行的次数是5次。
第13题
已知有n本按照书名拼音排序好的图书使用对分查找法搜索其中任何一本书最多查找次数为6次则n的值可能为
A20 B50 C80 D110
答案B
对规模为n的数据进行对分查找时无论是否查找到至多进行 |log2n|1次|log2n|表示小于等于log2n的最大整数因此25≤n26即32≤n64。
第14题
某程序代码设计如下若输入整数5则最终输出的结果为
def fact(x):if x1:s1else:sfact(x-1)*xreturn snint(input(请输入一个大于1的整数))print(fact(n)fact(n-1))A120 B24120 C144 D12024
答案C
由于fact(5)fact(4)*5, fact(4)fact(3)*4, fact(3)fact(2)*3, fact(2)fact(1)*2, fact(1)1,所以fact(5)fact(4)12024144。
第15题
用匿名函数方式求两个数中较大的数下列定义语句格式正确的是
Aresult lambda ‘x,y’: y if x y else x Bresult lambda x,y: y if x y else x Cresult lambda ‘x,y’: x if x y else y Dresult lambda x,y: x if x y else y
答案D
匿名函数的定义语法lambda 参数表达式语法。先写lambda关键字然后依次写匿名函数的参数多个参数中间用逗号连接然后是一个冒号冒号后面写返回的表达式。
第16题
下列程序段的正确运行结果是
def fun(m,n):while m!n:if mn:mm-nelse:nn-mreturn mprint(fun(24,16))A4 B8 C-8 D2
答案B
自定义函数fun(m,n)的作用是求m,n两个整数的最大公约数。
第17题
运行下列程序输出结果正确的是
def fun(x,y5):return x*yafun(10,10)print(a)A100 B50 C10 D运行出错
答案A
参数的默认值被替换。
第18题
如果需要在某函数内部调用上一层的局部变量则可以使用 关键字。
ALocal Bnonlocal Cglobal Dnonglobal
答案B
仅B可以调用上一层的局部变量
第19题
在Python程序中设已定义函数op它有一个整型传值参数一个字符串型传值参数。设x,y为整型变量z为字符串型变量则下列能调用该函数的正确语句是
Aop Bop(x,y,z) Cop x,y Dop(xy,z)
答案D
在调用自定函数时需要用到“函数名参数表”的方法且自定义函数op共有两个参数。
第20题
下列哪个语句段的时间复杂度最低
A
if n%20:xx*2else:xx2B
n1while n100:xx2C
for i in range(100):for j in range(10):xx2D
for i in range(100):for j in range(i):xx2 答案A
时间复杂度按数量级递增顺序为常数阶、对数阶、线性阶、线性对数阶、平方阶
第21题
下列哪个不是Python中的内建函数
Aasc(x) Bord(x) Cchr(x) Dabs(x)
答案A
Python中没有asc(x)这个内建函数ord(x)函数的作用是返回x对应的ASCII值chr(x)函数的作用是返回x对应的字符abs(x)函数的作用是返回x的绝对值。
第22题
关于函数的定义语句以下几项中正确的是
Adef f(c2,a,b): Bdef f(a,b2,c): Cdef f(*c,**d,a,b): Ddef f(a,b,*c,**d):
答案D
顺序实参必须要放在关键字实参之前位置参数*args必须要在关键字参数**kwargs前否则会程序报错。
第23题
下列关于递归的描述不正确的是
A递归函数一定包含条件控制语句 B递归函数一定包含调用自身的语句 C在调用自身函数时需要明确的边界终止条件 D递归算法一般代码简洁执行效率高空间复杂度低
答案D
递归算法并不一定代码简洁执行效率高或者空间复杂度低。实际上在某些情况下递归算法可能会导致代码冗长和执行效率低下因为每次递归调用都涉及函数调用和堆栈操作。
第24题
下列哪个不是Python第三方库的pip安装方法
A使用pip命令 B使用wheel命令 C集成安装方法 D文件安装方法
答案B
第三方库安装
第25题
对于下列递归式子当n4时F的值是
F(n)F(n-1)3 F(1)2
A2 B5 C11 D14
答案C
用递归式子推导得出。
二、判断题共10题每题2分共20分
第26题
def add(a, b, c0):return abcprint(add(1, 2, 4))这段程序的运行结果为3。
答案错误
在调用函数时给函数提供了实参时Python将使用指定的实参值
第27题
算法复杂度分析的目的是分析算法的效率以求改进。
答案正确
算法复杂度分析的目的是分析算法的效率以便对算法进行改进。通过分析算法的复杂度我们可以评估算法在输入规模增大时所需的时间和空间资源。这有助于我们比较不同算法的效率并选择最优算法来解决问题。
因此算法复杂度分析的目的是为了分析算法的效率并找到改进的方法。
第28题
sum0for i in range(5):sumsumiprint(sum)运行以上程序输出结果是15。
答案错误
给定的代码计算了从0到4的累加和。然而由于范围函数range(5)不包括上限值5因此循环只会迭代0、1、2、3、4这五个数。
因此输出结果将是10而不是15。
第29题
已有函数def demo(*p):return sum§表达式 demo(1, 2, 3, 4) 的值为10。
答案正确
给定的函数demo(*p)使用了可变参数可以接受任意数量的参数。在这个函数中参数p被传递给sum()函数用于计算所有参数的和。
因此表达式demo(1, 2, 3, 4)将会将参数1、2、3、4传递给sum()函数计算它们的和结果是10。
第30题
使用python -m pip install --upgrade pip命令能够升级pip。
答案正确
使用python -m pip install --upgrade pip命令可以升级pip。在命令行中执行此命令后pip工具将会检查当前安装的pip版本并尝试升级到最新版本。这是通过安装最新版本的pip包来实现的。
因此给定的命令确实可以用于升级pip。
第31题
在python函数中局部变量不能与全局变量重名。
答案错误
当全局变量和局部变量同名时首先会找程序内部有没有局部变量如果有则调用如果没有才会去调用全局变量。
第32题
下列程序段返回的值为“Hello!Python”。
lstHello!Pythondef f():global lstlstHello!return lstf()print(lst)答案错误
在函数f中通过使用global关键字我们将lst变量声明为全局变量。然后在函数内部我们将其值修改为Hello!。最后我们调用函数f()并打印全局变量lst的值。
因此输出结果将是Hello!“而不是Hello!Python”。函数内部的修改只会影响全局变量的值。
第33题
使用分治算法求解子问题不能重复。
答案正确
分治算法的子问题之间不可以包含公共的子问题。
第34题
设计一个程序来求xnx的几次方的值算法思想是把xn转换为xxn-1而xn-1又可以转换为xxn-2如此重复下去直到x*x0而x01从而求出了xn的值。这个程序可以用递归来实现。
答案正确
递归体现了“大事化小小事化了”的思想把大问题转换成小问题来解决且有终止条件即算法中的到x01为止。
第35题
下列程序段能正确打印1。
def f(a,b):aabba-baa-breturn bprint(F(1,4))答案错误
Python中字母区分大小写所以自定义函数创建和调用时函数名要一致否则调用不成功。
三、编程题共3题共30分
第36题
利用分治思想给定一个顺序表编写一个求出其最大值的程序。 根据上述算法思想补全下列代码。 输入输出示例当顺序表是 [22,13,34,4,68,15,5,58,36]输出68
def fun_max(numlist):return max(num)def fun(num):n ① if n 2:return ② l_list, r_list num[:n//2], num[n//2:]l_max, r_max ③ return fun_max( ④ )if __name__ __main__:alist [22,13,34,4,68,15,5,58,36]print(fun(alist))答案
def fun_max(numlist):return max(num)def fun(num):n len(num)if n 2:return fun_max(num)l_list, r_list num[:n//2], num[n//2:]l_max, r_max fun(l_list), fun(r_list)return fun_max([l_max, r_max])if __name__ __main__:alist [22,13,34,4,68,15,5,58,36]print(fun(alist)) 评分标准 ① len(num) 或等效答案 2分 ② fun_max(num) 或等效答案 2分 ③ fun(l_list), fun(r_list) 或等效答案 2分 ④ [l_max, r_max] 或等效答案2分
第37题
现有n个人依次围成一圈玩游戏从第1个人开始报数数到第m个人出局然后从出局的下一个人开始报数数到第m个人又出局…如此反复到只剩下最后一个是胜利者。设n个人的编号分别为12…n打印出局的顺序。 根据上述算法思想补全下列代码。 输入输出示例当n10m4输出如下 出局的人是: 4 出局的人是: 8 出局的人是: 2 出局的人是: 7 出局的人是: 3 出局的人是: 10 出局的人是: 9 出局的人是: 1 出局的人是: 6 最后胜利者是: 5
def fun(n,k):L list( ① )if n 1:returnelse:x 0for i in ② x ③ - 1print(出局的人是:,L[x])del L[x]if x 0:x 0print(最后胜利者是:, ④ )fun(10,4)答案
def fun(n,k):L list(range(1,n1))if n 1:returnelse:x 0for i in range(n-1):x (x k) % len(L) - 1print(出局的人是:,L[x])del L[x]if x 0:x 0print(最后胜利者是:,L[0])fun(10,4) 评分标准 ① range(1,n1) 或等效答案3分 ② range(n-1): 或等效答案3分 ③ (x k) % len(L) 或等效答案3分 ④ L[0] 或等效答案3分
第38题
设计一个算法将一个正整数分解质因数。 程序分析对n进行分解质因数应先找到一个最小的质数k然后按下述步骤完成 (1)如果这个质数恰等于n则说明分解质因数的过程已经结束输出即可。 (2)如果nk但n能被k整除则应打印出k的值并用n除以k的商,作为新的正整数n重复执行第一步。 (3)如果n不能被k整除则用k1作为k的值重复执行第一步。 根据上述算法思想补全下列代码。 输入输出示例当n105输出105 357 当n60输出60 223*5
def fun(n):print(%d%n,end )for i in ① :while n!i:if ni and ② :print(i,end*)③ else:breakelse:④ breakif __name__ __main__:while True:numinput(输入一个正整数)if not num.isdigit():breakfun(int(num))答案
def fun(n):print(%d%n,end )for i in range(2,n1):while n!i:if ni and n%i0:print(i,end*)nn//ielse:breakelse:print(n)breakif __name__ __main__:while True:numinput(输入一个正整数)if not num.isdigit():breakfun(int(num)) 评分标准 ① range(2,n1) 或等效答案3分 ② n%i0 或等效答案3分 ③ nn//i 或等效答案2分 ④ print(n) 或等效答案2分