IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 2021年9月电子学会Python等级考试试卷(五级)考题解析 -> 正文阅读

[移动开发]2021年9月电子学会Python等级考试试卷(五级)考题解析

?

青少年软件编程(Python)等级考试试卷(五级)

分数:100.00 ???????????题数:38

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

1.

执行下列代码,正确的答案是?( )

>>> l=[10,0,1,6,12,8]

>>> l.sort(key=str)

>>> l

A、[0,1,6,8,10,12]

B、[0,1,10,12,6,8]

C、[0,1,10,6,8,12]

D、[12,10,8,6,1,0]

题型:单选题

答案:B

难度:一般

试题解析:

2. 下列说法,正确的是?( )

A、集合类型是一个元素集合,元素之间有序

B、集合类型是一个元素集合,元素不能重复

C、集合类型是一个元素集合,元素可以重复

D、集合类型是一个元素集合,元素之间无序,元素类型必修相同

题型:单选题

答案:B

难度:容易

试题解析:

3. 对于r=range(5),下列合法的方法是?( )

A、r[2]=8

B、del r[2]

C、r.pop()

D、r.count(2)

题型:单选题

答案:D

难度:容易

试题解析:

4.

下列代码的运行结果是?( )

def jishu(n):

????return n % 2 == 1

newlist = filter(jishu, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

n=list(newlist)

print(n)

A、[2,4,6,8,10]

B、[1, 3, 5, 7, 9]

C、[1,2,3,4,5,6,7,8,9,10]

D、[10,9,8,7,6,5,4,3,2,1]

题型:单选题

答案:B

难度:一般

试题解析:过滤函数使用filter。

5.

下列语句的输出结果是?( )

for ?i ?in “xyz”:

for j in range(3):

????print(i,end=’?’)

if ?i==”z”:

break

A、xxxyzzz

B、xxxyyyz

C、xxxyyyzzz

D、xyyyzzz

题型:单选题

答案:B

难度:一般

试题解析:

6. 下列操作,正确的为哪一项?( )

A、

>>>tuple(‘ni hao’)

>>>(‘ni’,’hao’)

B、

>>>tuple(range(3))

>>>(0,1,2)

C、

>>>tuple(str,range(3))

>>>(0,1,2)

D、

>>>tuple(map(str,range(3)))

>>>(0,1,2)

题型:单选题

答案:B

难度:一般

试题解析:

7. 下列有关列表的描述,错误的是?( )

A、列表是包含若干元素的随机内存空间

B、列表是包含若干元素的有序内存空间

C、列表是包含若干元素的连续内存空间

D、列表的相邻元素之间使用逗号分隔

题型:单选题

答案:A

难度:一般

试题解析:列表是包含若干元素的有序连续内存空间,故选A

8.

运行下列代码的结果是?( )

import ?math

math.ceil(-3.3)

A、-4

B、-3

C、-4.0

D、-3.0

题型:单选题

答案:B

难度:容易

试题解析:

9. 下列元组的声明,非法的是哪一项?( )

A、t=1,2,3

B、t=(1,2,3)

C、t=(1,)

D、t=(1)

题型:单选题

答案:D

难度:容易

试题解析:

10.

运行下列代码,正确的结果是?( )

?>>>print("{:.2f}".format(3.1415926))

A、’3.1’

B、3.1

C、’3.14’

D、3.14

题型:单选题

答案:D

难度:容易

试题解析:

11. 使用map函数可以实现列表数据元素类型的转换,而无需通过循环。则将列表l=['2','4','6','8']转换为列表[2,4,6,8]的函数写法为?( )

A、map(int,l)

B、list(map(int,l))

C、map(l,int)

D、list(map(l,int))

题型:单选题

答案:B

难度:较难

试题解析:

12.

运行下列代码,正确的结果是?( )

>>>x = set('runoob')

>>> y = set('google')

>>> x & y?

A、{‘o’,’o’}

B、{'r', 'b', 'u', 'n'}

C、{'b', 'e', 'g', 'l', 'o', 'n', 'r', 'u'}

D、{'o'}

题型:单选题

答案:D

难度:一般

试题解析:

13.

下列语句的输出结果是?( )

l=list(range(1,3))

print(l)

A、[0,1,2]

B、{0,1,2}

C、[1,2]

D、.{1,2}

题型:单选题

答案:C

难度:一般

试题解析:

14. 赋值语句path='c:\abc\xyz\tag.txt',执行结果是?( )

A、path的值是'c:\abc\xyz\tag.txt'

B、path的值是'c:\bc\yz\ag.txt'

C、path的值是'c:\\abc\\xyz\\tag.txt'

D、提示出错

题型:单选题

答案:D

难度:容易

试题解析:

15. 方法pop()与remove()的区别与相同点,错误的是?( ??)

A、都是删除与参数表中参数相同的元素

B、pop()有返回值

C、remove()没有返回值

D、pop()如果不带参数,则表示默认参数值为-1

题型:单选题

答案:A

难度:一般

试题解析:pop()删除的是参数作为索引所指向的元素。

16. 有关jieba库的描述,错误的是?( )

A、jieba库的分词原理是利用英文词库,将待处理的内容与词库比对后找到最大概率的词组

B、jieba.lcut(s)返回的是一个列表类型

C、jieba.cut(s)返回的可能是一个元组类型

D、jieba.add_word(w)向分词词典中增加新词w

题型:单选题

答案:A

难度:一般

试题解析:

17.

要生成如下效果的图片,可以使用以下哪个python库?( )

?

A、jieba

B、math

C、matplotlib

D、wordcloud

题型:单选题

答案:D

难度:一般

试题解析:

18. 以下列表对象的表达,非法的或者值为False的选项是?( )

A、[]

B、[None,0,’’]

C、[1,2,3]

D、[8,]!=[8]

题型:单选题

答案:D

难度:较难

试题解析:[8,]!=[8]的值为False。故选D

19.

下列语句的输出结果是?( )

for ?i ?in range(6):

if i%2==0:

????continue

else:

????print(i,end=’,’)

A、1,3,5,

B、1,3,5

C、0,2,4,

D、0,2,4

题型:单选题

答案:A

难度:一般

试题解析:

20. 随机产生1-5之间的一个整数的代码是?( )

A、

>>>import random

>>>random.randrange(1,6)

B、

>>>import random

>>>random.randrange(1:6)

C、

>>>import random

>>>random.randchoice(1,5)

D、

>>>import random

>>>random.randint(1,5)

题型:单选题

答案:D

难度:容易

试题解析:

21. print(‘\x61’)的结果是?( )

A、\x61

B、‘\x61’

C、a

D、A

题型:单选题

答案:C

难度:一般

试题解析:\x**表示2位十六进制数对应的字符

22. 下列声明字典的语句,错误的是?( )

A、d={}

B、d={'name':'Tom','age':20,"salary":3900}

C、d=dict(title='Python',author='Tom',price=59)

D、d=list[('name','Jerry'),('age',20)]

题型:单选题

答案:D

难度:一般

试题解析:

23.

求执行下列操作后的正确结果?( )

>>> url='www.lxsz.com'

>>> url.split()

A、('www.lxsz.com')

B、['www’,’lxsz’,’com']

C、['www.lxsz.com']

D、('www’,’lxsz’,’com')

题型:单选题

答案:C

难度:一般

试题解析:

24. m=[x*x for x in range(5) ]的结果的是?( )

A、25

B、16

C、[0, 1, 4, 9, 16]

D、(0, 1, 4, 9, 16)

题型:单选题

答案:C

难度:一般

试题解析:

25. 若d是一个字典,则max(d)是指求?( )

A、字典中键的最大值

B、字典中值的最大值

C、字典中键值对的最大值

D、字典中数字值的最大值

题型:单选题

答案:A

难度:容易

试题解析:注意两个点,一个是map的参数为类型、序列。另外,map生成的对象不是列表,需要强制转换。

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

26. 对于列表l=[0,1,2,3,4],all(l)的值是True,any(l)的值是False。

题型:判断题

答案:错误

难度:一般

试题解析:all(l)测试是否所有元素都等价于True。any(l)测试是否存在等价于True的元素。

27. set()函数可以用于生成集合,输入的参数可以是任意组合数据类型,返回结果是一个无重复且排序任意的集合。

题型:判断题

答案:正确

难度:一般

试题解析:集合的概念

28.

下列两个语句的功能不可能等价:

>>> l=[x*x for x in range(6)]

>>> l=list(map(lambda x:x*x,range(6)))。

题型:判断题

答案:错误

难度:较难

试题解析:

29. 字典中的“键”不允许重复,“值”也不允许重复。in运算符的速度比列表、元组快得多。

题型:判断题

答案:错误

难度:一般

试题解析:“值”允许重复。

30.

>>>list(zip(range(3),"abcd"))

返回[(0, 'a'), (1, 'b'), (2, 'c'),(3,’d’)]。

题型:判断题

答案:错误

难度:一般

试题解析:正确的答案是[(0, 'a'), (1, 'b'), (2, 'c')]

31.

>>> list(enumerate(range(3)))

返回值为[(0, 0), (1, 1), (2, 2)]。

题型:判断题

答案:正确

难度:一般

试题解析:

32. 列表、元组、字符串均可以用set()转换为集合,例如:>>>set((1,2,2,3,4)),结果是{1,2,2,3,4}。

题型:判断题

答案:错误

难度:容易

试题解析:集合中元素无重复

33.

>>>m=’\n\nnihao\t\tliping\n\n\nzhang san’

>>> m.split()

结果是:['nihao', 'liping', 'zhang san']。

题型:判断题

答案:错误

难度:较难

试题解析:在调用方法split()时,若不传递任何参数,则会使用任何空白字符(包括空格、换行符、制表符等)作为分隔符;若字符串存在连续的空白字符,则按一个空白字符对待,并且返回结果中不包含任何空字符串。

34.

利用日期时间模块datetime,可以获取“今天”的日期,方法如下:

>>> import datetime

>>> t=datetime.today()。

题型:判断题

答案:错误

难度:一般

试题解析:第二行语句为>>> t=datetime.date.today()。

35.

>>> '{0:%}'.format(3.5)返回'350.000000%';

>>>’{0:.2f}’.format(1/5)返回'0.2'。

题型:判断题

答案:错误

难度:一般

试题解析:.2f表示保留两位小数

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

36.

简单去重问题:

对于给定的列表,要求对列表中每个重复元素只输出一次,请你编程完成这个任务。

例如:对于测试列表a=[11,1,14,23,11,89,14,56,89]

有如下3种算法,请你补全代码。

#方法1

a=[11,1,14,23,11,89,14,56,89]

result=[]

for i in a:

????if i not in result:

????????①??????

print("方法1:",result)

#方法2

a=[11,1,14,23,11,89,14,56,89]

for i in [j for j in a if a.count(i)>1]:

????for x in range(a.count(i)-1):

????????②?????

print("方法2:",a)

#方法3

a=[11,1,14,23,11,89,14,56,89]

i=0

while i<=len(a)-1:

????if a.count(a[i])>1:

????????③???????

????else:

????????④???????

print("方法3:",a)

题型:编程题

答案:

答案:

(1)result.append(i)(2分)?

(2)a.remove(i)(2分)?

(3)a.pop(i)(3分)?

(4)i+=1(3分)

难度:容易

试题解析:

#方法1

a=[11,1,14,23,11,89,14,56,89]

result=[]

for i in a:

????if i not in result:

?????????result.append(i)

print("方法1:",result)

#方法2

a=[11,1,14,23,11,89,14,56,89]

for i in [j for j in a if a.count(i)>1]:

????for x in range(a.count(i)-1):

????????a.remove(i)

print("方法2:",a)

#方法3

a=[11,1,14,23,11,89,14,56,89]

i=0

while i<=len(a)-1:

????if a.count(a[i])>1:

????????a.pop(i)

????else:

????????i+=1

print("方法3:",a)

37.

密码问题:

根据密码本和电子钥匙,破解笔记本电脑的密码。

密码本是一个非降的整数序列,电子钥匙是一个整数,得到密码的方法是在密码本中找到最接近电子钥匙的整数(如果多个符合条件,输出最小的一个)。

例如:

密码本为下面的列表

a=[1,22,43,45,45,55,60,70,89]

电子钥匙为整数44

满足条件的整数为43和45,最终的密码为43

补全下面的代码:

a=[1,22,43,45,45,55,60,70,89] #密码本

k=int(input())? ?#k为电子钥匙

l=0

r=8

while l+1!=r:

? ? mid=int (???①??)

? ? if a[mid]<k:

? ? ???????②? ??

? ? else:

? ? ? ? r=mid

? ? if a[r]==k:

? ? ??????③??????

if k-a[l] <=???? ④???:

???? print(a[l])

else:

? ? print()

题型:编程题

答案:

答案:

①? (l+r)/2(2分)?

②? l=mid(2分)?

③? break(2分)?

④? a[r]-k(2分)?

⑤??a[r](2分)

难度:一般

试题解析:

a = [1,22,43,45,45,55,60,70,89]

k = int(input())

l = 0

r = 8

while l+1 != r:

? ? mid = int((l+r)/2)

? ? if a[mid] < k:

? ? ? ? l = mid

? ? else:

? ? ? ? r = mid

? ? if a[r] == k:

? ? ? ? break

if k-a[l] <= a[r]-k:

? ? print(a[l])

else:

? ? print(a[r])?

38.

罗马数字问题:

罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。

27写做 XXVII,即为 XX + V + II 。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减去数 1 得到的数值 4。同样地,数字 9 表示为 IX。

这个特殊的规则只适用于以下六种情况:

I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。

X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90。

C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 900。

现编写输入一个罗马数字,输出其整数结果,请编程实现上述功能,或补全代码。

例如,当输入XXII时,输出22;当输入MCMXC时,输出1990.

?

rmdict = {'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000}?

rm = list(input("请输入正确的罗马数字:"))

num, prew = 0, 1

for ch in rm[::-1]:

? ?w =? ? ?①? ??

? ?if prew > w:?

? ? ? num = num - w?

? ?else :

? ? ? num = num + w

? ?prew =? ? ?②? ??

print(??③??)

题型:编程题

答案:

答案:

① rmdict[ch]? (4分)

② w? ?(3分)

③ num? (3分)

难度:较难

试题解析:

rmdict = {'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000}?

rm = list(input("请输入正确的罗马数字:"))

num, prew = 0, 1

for ch in rm[::-1]:

? ?w = rmdict[ch]

? ?if prew > w:?

? ? ? num = num - w?

? ?else :

? ? ? num = num + w

? ?prew = w

print(num)

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-04-26 11:52:02  更:2022-04-26 11:52:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 0:04:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码