1、2022 年 9 月 Python 编程等级考试试卷(四级)一、单选题(共 25 题,共 50 分)分数:100题数:381. 下列不是评判一个算法优劣的标准是?()A. 时间复杂度B. 空间复杂度C. 难易度D. 健壮性2. 某自定义函数中使用了 3 个变量,其中 2 个变量都指定了默认值,调用该函数时,参数的个数最少为几个?()A. 0B. 2C. 3D. 13. Python 中用于字符与其 ASCII 码相互转换的内置函数是?()A. float() abs()B. pow() format()C. ord() chr()D. round() import()4. Python 中,可
2、以将数字类字符串转换成整数的函数是?()A. int( )B. float( )C. bool( )D. class( )5. 运行下列这段程序,正确的输出结果是?() LS = apple, red, orangedef funb(a):LS.append(a) funb(yellow) print(LS)A. apple,red,orangeB. apple,red,orange,yellowC. D. yellow6. 下列代码的输出结果是?() def func(a, b):c=a*2+b b=a return ca=10b=2 c=func(b,a)+aprint(c,b)A.102
3、 2B.24 10C.24 2D.102 107. 下列关于函数返回值的描述正确的是?()A. 函数可以没有返回值,也可以有一个或多个返回值B. 函数定义中最多含有一个 return 语句C. 在函数定义中用 return 语句时,至少给一个返回值D. 函数中 return 语句只能放在函数定义的最后8. 运行下列这段程序,正确的输出结果是?()def reverseA(s): t=for i in range(0,len(s): t=si+treturn t print(reverseA(reverse)A. esreverB. reverseC. rsereveD. rseveer9. 下
4、列导入 pandas 模块的方法不正确的是?()A. import pandasB. import pandas as pC. import pandas *D. from pandas import *10. Python 中提供了大量的标准库模块,比如利用 time 模块可以获取计算机的时钟信息, 包括日期和时间,若想要实现延时 1 分钟,则应该使用的语句是?()A. sleep(3600)B. time.time(60)C. time.asctime(1)D. time.sleep(60)11. 使用分治算法的基本步骤是?()A. 分解、解决、合并B. 分解、解决C. 合并、解决D. 合
5、并、解决、分解12. 二分查找法是运用哪种策略实现的算法?()A. 分治法B. 贪心法C. 回溯法D. 动态规划法13. 下列程序是分治算法的典型应用,其运行结果是?()def dividAndConquer(arr,left,right):if (right = left + 1) or (right = left): return max(arrleft,arrright)mid = int(left + right) / 2)leftMax = dividAndConquer(arr,left,mid) rightMax = dividAndConquer(arr,mid,right)
6、return max(leftMax,rightMax)arr1 = 8, 1, 14, 19, 5print(dividAndConquer(arr1,0,4)A.1B.19C. 8D. 514. 下列程序输出的结果是?()def change(a,b): a=10b+=a a=4b=5 change(a,b) print(a,b)A. 4 5B.10 5C.4 15D.10 1515. 下列程序运行的结果是?()def a():print(here)b()a()def b():print(there)a()b()A. 出错B. 死循环C. hereD. herethere16. 设函数 f
7、 定义如下:def f(x,y = 0): pass下列选项执行时,出现错误的是?() A.f(,2)B.f(1,2)C.f(1)D.f(1,)评价描述:17. 下列程序段运行的结果是?()def check(x = 2,y = 3): print(x,y)check(y=6,x=5)A. 5 6B. 6 5C. 2 3D. 3 218. def AddApple(fruit=None): if fruit is None:fruit= fruit.append(Apple) return fruitAddApple() AddApple()print(AddApple(Pear)以上程序段运
8、行的结果是?()A. Pear,AppleB. Pear,Apple,AppleC. Apple,Pear,Apple,AppleD. Apple19. def ThankYou(name):print(感谢%s 对公司的贡献! %name)ThankYou(张三) ThankYou()以上程序运行的结果是?()A. 打印输出:感谢张三对公司的贡献!然后报错:TypeError: ThankYou() missing 1 required positional argument: name打印输出:B. 感谢张三对公司的贡献! 感谢对公司的贡献!C. 无法输出。D. 需要增加 main 函数才
9、能正确运行。20. 编写程序计算 1+1/2+1/3+1/n 的结果,可以使用哪种调用函数自身的算法?()A. 枚举B. 递归C. 解析D. 分治21. 用下面的程序求解计算 s=1+3+5+7+9 的值,请选择横线处应填写的代码?()def Sum(n):if n=1:return 1 else:return print(Sum(9)A. n+Sum(n-1)B. n+Sum(n+1)C. n+Sum(n+2)D. n+Sum(n-2)22. 下列选项中,哪一项不是递归函数必须要具备的条件?()A. 明确的边界条件B. 边界值C. 循环语句D. 终止条件23. 用递归算法实现 5 的阶乘,则
10、下方的程序中横线上需要的代码是?()def func(n):if n :return func(n+1)*n else:return 1 print(func(1)A. 4B. 5C. 6D. 724. 执行以下代码,程序的输出结果是?()def weight(n): if n=1:return 100 else:return weight(n-1) +10 print(weight(3)A.100B.110C.120D.13025. 以下关于递归与递推的说法,错误的是?()A. 递归算法不涉及高深的数学知识,比较容易理解。B. 递归过程一般通过函数或子过程来实现。C. 递归算法是递推分解问题
11、,然后再将最简单情况的解回归成大问题的解。D. 存在既可以用递归算法解决,也可以用递推算法解决的问题。二、判断题(共 10 题,共 20 分)26. 函数中 return 语句只能放在函数定义的最后。()正确错误27. Python 定义函数时如果没有参数,也不能省略后面的空括号。() 正确错误28. 函数的参数分为形参和实参两种,函数调用中实参和形参的值可以互相传递。() 正确错误29. 导入模块中指定成员时,可采用的语句是:import成员名 1,成员名 2from模块名。() 正确错误30. 二分搜索、快速排序可以使用分治算法进行求解。() 正确错误31. 调用带有默认值参数的函数时,不
12、能为默认值参数传递任何值,只能使用函数定义时设定的默认值。正确错误32. 在 Python 中,可以在自定义函数中再定义函数。() 正确错误33. 在定义一个函数时,如果出现调用自身的成分,则称为递推。() 正确错误34. 递归算法通常显得很简洁,因为多次调用自身,所以运行效率较高,应该大力提倡用递归算法设计程序。()正确错误三、编程题(共 3 题,共 30 分)35. 同样的问题使用不同的算法编程解决,其时间复杂度可能不一样。() 正确错误36. 验证哥德巴赫猜想:任意一个大于等于 4 的偶数总可以分解为两个素数之和。请在下面的横线上补全代码,使得通过键盘输入一个偶数 x(x0:print(%d 级楼梯共有%d 种爬法。%(,)