2022-06 Python四级真题

分数:100

题数:38

测试时长:60min

一、单选题(共25题,共50分)

1.有如下Python程序,包含lambda函数,运行该程序后,输出的结果是?(C )(2分)

g = lambda x,y:x*yprint(g(2,3))

A.2

B.3

C.6

D.8

答案解析:g = lambda x,y:x*y,lambda函数返回参数x和y的积,因此选C。

2.运行下列程序,输出的结果是?(C )(2分)

def dtox(x,base = 2):s = []while x>0:s.append(x % base)x = x // basereturn sprint(dtox(11))

A.程序出错

B.1101

C.[1, 1, 0, 1]

D.[1, 0, 1, 1]

答案解析:函数dtox有一个位置参数x,一个默认值参数base,默认值是2,本函数的功能是将参数x转换成base进制,保存列表s返回。本程序将参数11转换成二进制后的结果,因此选C。

3.下列哪项不是函数的优点?( D)(2分)

A.提高代码的复用率。

B.使得程序简洁,程序功能清晰。

C.便于程序的修改,便于扩展。

D.代码运行速度更快。

答案解析:函数的使用不一定使得代码运行速度更快,其它3项是函数的优点。

4.下列关于函数的描述正确的是?(C )(2分)

A.函数内的语句不会改变任何非全局变量的值。

B.传入函数的参数都会以副本的形式存在函数中。

C.函数的名称不能与Python的保留字相同。

D.每个函数必须有一个return语句。

答案解析:函数的名称不能与Python的保留字相同,其他均错误。

5.Python中自定义函数的关键字是?(B )(2分)

A.sub

B.def

C.function

D.void

答案解析:Python中自定义函数使用def关键字,因此选B。

6.运行下列程序,输出的结果是?(D )(2分)

def nxs(x):s = 0while x:s = s * 10 + x % 10x //= 10return sprint(nxs(106))

A.106

B.610

C.160

D.601

答案解析:自定义函数nxs功能将参数x各位数字逆序拼接成新的整数,即将106,拼接成(6*10+0)*10+1,即601,选D。

7.Python编写的自定义函数dy,执行该程序段后,输出的结果是?(C )(2分)

def dy(x,y):return x>yprint(dy(10,20))

A.10

B.20

C.False

D.True

答案解析:自定义函数dy功能是判断x与y的大小,并返回对应的逻辑值,本题中x=10,y=20;因此函数的返回值是False。选C。

8.在函数中有一种叫空函数。 构造一个空函数,下面的横线处应填?(C )(2分)

def  函数名( ):______________

A.None

B.return None

C.pass

D.empty

答案解析:pass 是一种空操作,解释器执行到它的时候,除了检查语法是否合法,什么也不做就直接跳过。

9.下列代码的输出结果是?(B )(2分)

def fun(a,b):t = aa = bb = tprint(a, b)fun(pow(3,2),pow(2,3))   #pow(x,y)返回x**y的值

A.3 2

B.8 9

C.2 3

D.9 8

答案解析:该函数作用,交换两个参数位置,再输出。

10.函数中用return [表达式] 结束函数,选择性地返回一个值给调用方,有时不带表达式的return相当于返回?(B )(2分)

A.0

B.None

C.1

D.False

答案解析:不带表达式的return,相当于返回None。

11.对于下面的函数:

def f(x,z,y=2):print(x+y+z)

用f(1,2,3)和f(1,2)两个调用语句,运行结果分别是?( B)(2分)

A.都是5

B.6和5

C.都是6

D.5和6

答案解析:Python函数中位置参数和关键字参数。

12.下列这段程序的打印结果是?(B )(2分)

def demo(item,lis=[]):lis=[]lis.append(item)return lisprint(demo('a'),end='')print(demo('b'))

A.['a']['a', 'b']

B.['a']['b']

C.[][]

D.[ ]['b']

13.函数如下:

def showNumber(numbers):for n in numbers:print(n)

下面哪个选项在调用该函数时会报错?(C)(2分)

A.showNumber([2,4,5])

B.showNumber('abcesf’)

C.showNumber(3.4)

D.showNumber((12,4,5))

答案解析:3.4是浮点数,不是序列对象。

14.下列关键字中,用来导入第三方库的是?(C )(2分)

A.include

B.from

C.import

D.continue

答案解析:import用来导入第三方库。

15.以下选项中,不属于第三方库安装工具pip能够实现的功能是?( C)(2分)

A.安装一个第三方库。

B.卸载已经安装的第三方库。

C.修改已经安装的第三方库。

D.查询已经安装的第三方库。

答案解析:pip可以安装、卸载、查询第三方库。

16.关于评价算法的优劣,以下说法正确的是?(D )(2分)

A.只要考虑是否得出正确答案。

B.只要考虑算法的执行时间。

C.只要考虑算法所占用的空间。

D.从算法执行时间和需占用的空间两方面考虑。

答案解析:评价算法的指标主要有时间复杂度和空间复杂度。

17.下列程序实现求菲波那契数列第4项的值:

def f(n):if n==1 or n==2:return 1elif n>2:return f(n-1)+f(n-2)else:return -1print(f(4))

请问:这种解决方法属于哪种算法?(D)(2分)

A.归纳

B.列举

C.递推

D.递归

18.著名的菲波那契数列为1,1,2,3,5,8,……。即除开始的两项为1外,

其余每一项均为前两项之和。

下面的程序实现计算该数列的第4项值的大小。

n,a,b=4,1,1if n==1:print("第%d个数为%d。"%_____(1)______)if n==2:print("第%d个数为%d。"%(n,b))if n>2:for i in range(2,n):result=a+ba,b=b,resultprint("第%d个数为%d。"%(n,result))

请问:横线(1)所在位置不适合填入以下哪个选项?(D)(2分)

A.(n,1)

B.(n,a)

C.(n,b)

D.(a,n)

答案解析:当n=1时,a,b都是1,因此,此时使用(n,1),(n,a),(n,b)这几项都是一样的。

19.运行下列程序,输出的结果是?(B)(2分)

def f(n):if n==1:return 1else:return f(n-1)+(n-1)*f(n-1)print(f(4))

A.64

B.24

C.4

D.16

答案解析:f(4)

=f(3)+3f(3)

=4(f(3))

=4(f(2)+2f(2))

=12(f(2))

=12(f(1)+f(1))

=12*2

=24

20.已知Pell数列定义如下:第5项的值是?(A)(2分)

A.29

B.30

C.12

D.32

答案解析:数列为1,2,5,12,29,……

21.运行下列程序,输出的结果是?( A)(2分)

def Pell(n):if n==1:return 1if n==2:return 2if n>=3:return 2*Pell(n-1)+Pell(n-2)print(Pell(4))

A.12

B.4

C.3

D.24

22.运行下列程序,输出的结果是?( B)(2分)

def f(n):if n==1 or n==2:return 1elif n>2:return f(n-1)+f(n-2)else:return -1print(f(-2))

A.-2

B.-1

C.出错

D.1

23.在1-20之间玩猜数字的游戏时,如果采用二分法的策略,并且给‘大了’或‘小了’的提示,最差的情况下多少次就可以猜中?(A )(2分)

A.5

B.10

C.15

D.20

答案解析:最多5次就可以确定一个整数。

24.下列选项中,哪一项不是分治算法的特征?(C )(2分)

A.问题的规模缩小到一定程度就可以容易解决。

B.该问题分解出的子问题的解可以合并为该问题的解。

C.各个子问题必须分解到不能分解为止。

D.该问题具有最优子结构性质。

答案解析:子问题分解到什么程度需要视具体问题而定,并不一定要分解到不能分解为止。其余三个选项都是分治算法的特征。

25.下列排序算法中利用了分治算法思想的是?( D)(2分)

A.冒泡排序

B.插入排序

C.选择排序

D.快速排序

答案解析:快速排序利用了分治算法思想。

二、判断题(共10题,共20分)

26.Python中自定义函数的代码需要写在调用该函数之前。( 对)

答案解析:Python中自定义函数的代码需要写在调用该函数之前。

27.Python定义函数时,可选参数必须写在非可选参数后面。(对 )

答案解析:Python定义函数时,可选参数必须写在非可选参数后面。

28.Python中编写函数时,必须指明该函数的返回值。(错 )

答案解析:Python中编写函数时,不一定需要指明该函数的返回值。

29.用户自定义函数是用户自己写的一段程序,一般包括函数名、参数、返回值、函数体等四部分。其中,函数名和参数是必不可少的部分。(错 )

30.自定义函数def块中的代码不是主程序的一部分,运行会跳过该段代码。(对 )

答案解析:def块中的代码并不是主程序的一部分,程序运行时会跳过这一部分,从def块以外的第一行代码开始运行。

31.算法优化主要是为了减少冗余数据,优化时间复杂度和空间复杂度。(对 )

答案解析:算法优化包括时间和空间两个方面的优化。

32.在Python中使用爬虫技术抓取网站信息需要用到第三方库。(对 )

答案解析:Python的基本库不支持网络爬虫。

33.对于递归而言,递推与回归,二者缺一不可。(对 )

答案解析:递推关系是递归的重要组成。

34.递归算法跟递推算法是一样的,都在重复调用。(错 )

35.使用分治算法解决问题的一般步骤是分解、求解、合并。(对 )

三、编程题(共3题,共30分)

36.字符加密。将大写字母逐个按其ASCII值转换为7位二进制数,并在最左边补0,

使得每个字母转换为8位二进制数,然后将8位二进制数每四位转为十六进制数。

如明文是"CIE",加密后的密文是"434945"。编写的python程序如下,完善划线处的代码。

def xtob(n): #将整数转为二进制数if n <= 1:return str(n)return  xtob(n//2)+①mingwen = "CIE"he = '0123456789ABCDEF'rst = ''for c in mingwen:s = "0" + xtob(ord(c)) #将明文转为8位二进制数i = 0data = 0while i < 8:data =data * 2 +②if (i + 1) % 4 == 0:rst = rst + he[data]data = 0③print('密文是:',rst)

参考程序:

def xtob(n): #将整数转为二进制数if n <= 1:return str(n)return  xtob(n//2)+ str(n%2)mingwen = "CIE"he = '0123456789ABCDEF'rst = ''for c in mingwen:s = "0" + xtob(ord(c)) #将明文转为8位二进制数i = 0data = 0while i < 8:data =data * 2 + int(s[i])if (i + 1) % 4 == 0:rst = rst + he[data]data = 0i += 1print('密文是:',rst)

说明:本题将每个大写字母转换为二进制数,①处代码是递归的方法将十进制转二进制,若整数不是0或1的时候,继续整除2,因此①处代码是xtob(n//2)+str(n%2);8位二进

制数每4位二进制数转十六进制数,因此②处的代码是data * 2 + int(s[i]) ;③处的代码是循环变量i自增1,因此该处代码是i=i+1。

评分标准:

(1)str(n%2) ; (4分)

(2)int(s[i]) ; (4分)

(3)i += 1 或i=i+1。 (4分)

37.辗转相除法求最大公约数,下列函数是用递归算法实现的,请完善横线处的代码。

def gcd(a,b):m=a%bif m==0:return     ①    else:a=b②     return       ③    print(gcd(12,18))

参考程序:

def gcd(a,b):m=a%bif m==0:return belse:a=bb=mreturn  gcd(a,b)print(gcd(12,18))

评分标准:

(1)b; (3分)

(2)b=m;(3分)

(3)gcd(a,b)。(4)

38.下面的程序运用分治算法寻找列表中的最大值。请将空格补全代码。

#子问题规模小于或等于2时

def zui_da_zhi(a_list):if①:if a_list[0]>=a_list[1]:most=a_list[0]else:most=a_list[1]else:most=a_list[0]return most# 分治算法排序def fen_zhi(init_list):n=len(init_list)if n<=2:                  #若问题规模小于或等于2,解决return zui_da_zhi(init_list)#分解(子问题规模为n/2)left_list,right_list=②#递归,分治left_max,right_max=③#合并return zui_da_zhi([left_max,right_max])#测试数据test_data=[12,25,4,47,69,5,4,6,37,89,21]print('最大值为:',fen_zhi(test_data))

参考程序:

#子问题规模小于或等于2时def zui_da_zhi(a_list):if len(a_list) == 2:if a_list[0]>=a_list[1]:most=a_list[0]else:most=a_list[1]else:most=a_list[0]return most# 分治算法排序def fen_zhi(init_list):n=len(init_list)if n<=2:                  #若问题规模小于或等于2,解决return zui_da_zhi(init_list)#分解(子问题规模为n/2)left_list,right_list=init_list[:n//2],init_list[n//2:]#递归,分治left_max,right_max=fen_zhi(left_list),fen_zhi(right_list)#合并return zui_da_zhi([left_max,right_max])#测试数据test_data=[12,25,4,47,69,5,4,6,37,89,21]print('最大值为:',fen_zhi(test_data))

评分标准:

(1)len(a_list) == 2;  (2分)

(2)init_list[:n//2],init_list[n//2:];   (3分)

(3)fen_zhi(left_list),fen_zhi(right_list)。  (3分)

中国电子学会2022年06月份青少年软件编程Python等级考试试卷四级真题(含答案)相关推荐

  1. 中国电子学会2022年06月份青少年软件编程Python等级考试试卷二级真题(含答案)

    2022-06 Python二级真题 分数:100 题数:37 测试时长:60min 一.单选题(共25题,共50分) 1.运行下列程序,输出的结果是?(A)(2分) tup1=('苏炳添','谷爱凌 ...

  2. 中国电子学会2022年06月份青少年软件编程Python等级考试试卷一级真题(含答案)

    2022-06 Python一级真题 分数:100题数:37 一.单选题(共25题,共50分) 1.在Python编辑器中写好程序代码后,在Run菜单中,下列哪个命令可以用来执行程序?(B)(2分) ...

  3. 中国电子学会2022年06月份青少年软件编程Python等级考试试卷三级真题(含答案)

    2022-06 Python三级真题 分数:100 题数:38 测试时长:60min 一.单选题(共25题,共50分) 1.如下所示的2行代码,最后print()函数打印出来的结果是?( C) c = ...

  4. 中国电子学会2021年06月份青少年软件编程Python等级考试试卷三级真题(含答案)

    青少年软件编程(Python)等级考试试卷(三级) 分数:100.00             题数:38 测试时长:60min 一.单选题(共25题,每题2分,共50分) 1. 关于open()函数 ...

  5. 中国电子学会2022年12月份青少年软件编程Python等级考试试卷四级真题(含答案)

    分数:100   题数:38 测试时长:60min         一.单选题(共25题,共50分) 1.    有n个按名称排序的商品,使用对分查找法搜索任何一商品,最多查找次数为5次,则n的值可能 ...

  6. 中国电子学会2022年12月份青少年软件编程Python等级考试试卷三级真题(含答案)

    2022-12 Python三级真题 分数:100 题数:38 测试时长:60min 一.单选题(共25题,共50分) 1.  列表L1中全是整数,小明想将其中所有奇数都增加1,偶数不变,于是编写了如 ...

  7. 中国电子学会2022年12月份青少年软件编程Python等级考试试卷一级真题(含答案)

    分数:100 题数:37 一.单选题(共25题,共50分) 1.关于Python语言的注释,以下选项中描述错误的是?(C) A. Python语言有两种注释方式:单行注释和多行注释 B. Python ...

  8. 中国电子学会2022年09月份青少年软件编程Python等级考试试卷四级真题(含答案)

    2022-09 Python四级真题 分数:100   题数:38 测试时长:60min 一.单选题(共25题,每题2分,共50分) 1.下列不是评判一个算法优劣的标准是?(C) A. 时间复杂度 B ...

  9. 中国电子学会2023年03月份青少年软件编程Python等级考试试卷一级真题(含答案)

    2023-03 Python一级真题 分数:100   题数:37 测试时长:60min 一.单选题(共25题,共50分) 1.    在启动IDLE后,看到下列哪一个提示字符,表明已经进入Pytho ...

  10. 中国电子学会2023年05月份青少年软件编程Python等级考试试卷三级真题(含答案)

    2023-05 Python三级真题 题数:38 分数:100 测试时长:60min 一.单选题(共25题,共50分) 1.  请选择,下面代码运行之后的结果是?(C)(2分) a = '2' b = ...

最新文章

  1. JSTL标签库学习笔记
  2. 【PTA】JAVA提交的一些注意点
  3. 360的困兽之斗——重新探讨奇虎商业模式
  4. U9cloud RPA加持 智领未来
  5. 上海交大提出多模态框架「EmotionMeter」,更精准地识别人类情绪
  6. java调度:(六)quarts_cron表达式
  7. 大学c语言下上机考试题,计算机考试二级C语言上机试题下[5]
  8. [转]订制CentOS自安装光盘
  9. 在没有插件的情况下为Chrome设置Proxy
  10. 疑似vivo X60t Pro在工信部入网:搭载天玑1200 主打线下渠道
  11. html游戏代码_新手使用的Mac系统的简易代码编辑器推荐
  12. 如何修正Linux下面MySQL中文乱码问题
  13. coreldraw铺花纹_详解CorelDRAW位图图样填充
  14. 教师计算机考试取得模块,2015年教师称计算机考试模块.doc
  15. spss19 视频教程下载_19个网站免费下载股票视频介绍和录像
  16. guass白名单的配置命令
  17. Android 角标设置
  18. Nerv - 京东高性能前端框架
  19. 301代码php代码在哪里加,301转向设置及代码及方法详解
  20. 需求调研前的准备工作

热门文章

  1. CES展科技巨头各显其能,英伟达携Xavier震撼来袭!
  2. hdu 3625 Examining the Rooms
  3. MATLAB矩阵处理2——矩阵变换
  4. 弘辽科技:淘宝怎么增加手淘访客?有什么技巧?
  5. 文件上传+CTF题目
  6. Python urllib 用爬取视觉中国图片
  7. 字节跳动 AI Lab 火山翻译在 WMT2022 非洲语向任务夺得桂冠
  8. Java程序员月薪20k的涨薪秘籍:网上的java教学有用吗
  9. 20余家基金公司符合QDII资格
  10. CentOS系统更新失败:dnf update error--