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

一、单选题(共25题,共50分)
1.已知一个列表lst = [2,3,4,5,6],lst.append(20),print(lst)的结果是?(C)(2分)
A.[10,2,3,4,5,6,20]
B.[20,2,10,3,4,5,6]
C.[2,3,4,5,6,20]
D.[2,3,4,5,6,10,20]

2.水果店管理员现有列表 fruits = ['apple', 'orange', 'banana', 'peach'] ,当前卖出苹果('apple'),需要删去列表元素'apple',正确的操作是?(A)(2分)
A.del fruits[0]
B.del fruits['apple']
C.del fruits[1]
D.del fruits[apple]
答案解析:Python列表元素删除的基本操作,’apple’的列表索引值为0,则操作为del fruits[0] 。

3.科技小组4位同学分别在Python中定义了一个列表,正确的是?(C)(2分)
A.list1 = ['power'; 'sensor'; 'control']
B.list2 = [power, sensor, control]
C.list3 = ['power', 'sensor', 'control']
D.list4 = ['power'、 'sensor'、'control']
答案解析:Python列表可以存储字符型,列表中的每个元素都分配一个位置,一个元素对应一个位置,第一个索引是0,第二个索引是1,依此类推。

4.下列语句正确的输出是?(B)(2分)

lis= [4 * c for c in "draw"]
print(tuple(lis))


A.('4*d', '4*r', '4*a', '4*w')
B.('dddd', 'rrrr', 'aaaa', 'wwww')
C.('draw', 'draw', 'draw', 'draw')
D.(4*d, 4*r, 4*a, 4*w)
答案解析:列表推导式会遍历后面的可迭代对象,然后按照for前的表达式进行运算生成列表,最终转换为元组。

5.Python中 print('十六进制{0:x}'.format(100)) 正确的输出结果是?(B )(2分)
A.十六进制0:x64
B.十六进制64
C.十六进制0x100
D.十六进制100
答案解析:字符串的format()函数,x:输出整数的小写十六进制形式,十进制100的十六进制为64,正确的输出结果为"十六进制64"

6.下面可以正确输出  号称"世界屋脊"的青藏高原  字符的Python语句是?(A )(2分)
A.print('号称\"世界屋脊\"的青藏高原')
B.print(号称\"世界屋脊\"的青藏高原)
C.print('号称'\"世界屋脊\"的青藏高原)
D.print("号称\"世界屋脊\"的青藏高原)
答案解析:字符串的转义,\" 可以实现输出标点符号" 。

7.Python使用range可以创建数值列表。下面可以正确输出不超过1000的10的倍数正整数的语句是?(C )(2分)
A.print(list(range(1, 1000, 10)))
B.print(list(range(0, 1000, 10)))
C.print(list(range(10, 1001, 10)))
D.print(list(range(10, 1000, 10)))
答案解析:range(start, stop[, step])的基本应用。

8.学生机器人比赛的时候经常会用到倒计时程序。下面可以正确倒序输出5以内正整数的语句是?( C)(2分)
A.print(list(range(5, -1, 1)))
B.print(list(range(-1, 5, 1)))
C.print(list(range(5, 0, -1)))
D.print(list(range(5, 1, -1)))
答案解析:range(start, stop[, step])的高阶应用。

9.有一个字典内容如下,它的元素数量有几个?(B )(2分)

info = {'Id': 12, 'Num': 4, 'height': 9 }

A.12
B.3
C.4
D.9
答案解析:字典的基本知识,{'Id': 12, 'Num': 4, 'height': 9 }字典的元素数量为3。

10.现有集合 items = set(("height", "width", "color", "align")) ,需要在集合中添加元素"text",正确的是?(A )(2分)
A.items.add("text")
B.items.insert("text")
C.items.pop("text")
D.items.set("text")
答案解析:集合添加元素的操作为items.add("text")。

11.计算三位完全平方数(100-999范围内),正确的生成器推导式是?(A )(2分)
A.square = (x**2 for x in range(10,32))
B.square = (x**2 for x in range(32))
C.square = (x**2 for x in range(10,31))
D.square = [x**2 for x in range(31)]
答案解析:生成器推导式的语法格式如下:(表达式 for 迭代变量 in 可迭代对象 [if 条件表达式])

12.下列Python序列解包,正确的输出是?( C)(2分)

fruit=['apple','peach','orange']
weight=[65,77,68]
for i,j in zip(fruit,weight):
     print(i,j,end=' ')


 
A.'apple','peach','orange',65,77,68
B.apple peach orange 65 77 68
C.apple 65 peach 77 orange 68
D.apple 65 , peach 77 , orange 68

13.下列哪个选项是Python math库的数字常数?(B )(2分)
A.math.log
B.math.inf
C.math.rnd
D.math.exp
答案解析:Python math.inf 为数字常数,表示正无穷大的浮点数。

14.Python中词云主要有WordCloud库,在创建好词云对象后,可以使用什么方法生成词云,并使用to_file方法将词云图像保存在文件中?(B )(2分)
A.WCloud
B.generate
C.random
D.jieba
答案解析:利用WordCloud对象的generate()方法加载词云文本,生成词云。

15.有列表li= [‘a’,’b’,’c’,’d’],执行li=li + [‘d’,’e’,’f’] 后,print(li)的结果是?(D )(2分)
A.[‘a’,’b’,’c’,’d’], [‘d’,’e’,’f’]
B.[‘a’,’b’,’c’,’d’,’e’,’f’]
C.(‘a’,’b’,’c’,’d’,‘d’,’e’,’f’)
D.[‘a’,’b’,’c’,’d’,‘d’,’e’,’f’]

16.已知有元组tup1=('a','b'),tup2=(1,2,3),tup3=tup1+tup2,执行print(len(tup3))后结果是?( A)(2分)
A.5
B.3
C.2
D.0

17.现在有str1="day day up up .",请问str1[5]的值是?(B ) (2分)
A.d
B.a
C.day d
D.p
答案解析:字符串的下标获取元素

18.下面哪个选项不可以输出语句"我要考python,今年考5级。"?(C )(2分)
A.print("我要考{},今年考{}级。".format("python",5))
B.print("我要考{str},今年考{grade}级。".format(grade=5,str="python"))
C.print("我要考%s,今年考%s级。"%(5,"python"))
D.print("我要考%s,今年考%d级。"%("python",5))

19.下面程序要输出1~10,则在①处应填入?(C)(2分)

x = list(range( ① ))
t = 1**2
for i in x:
    print(i+t)


 
A.5
B.0,10,2
C.10
D.0:10:2

20.>>> range(9,2,-2)[0]执行后的结果是?(C )(2分)
A.0
B.-2
C.9
D.2
答案解析:range索引

21.字典中多个元素之间使用     分隔开,每个元素的“键”与“值”之间使用     分隔开。
下列选项中正确的填空选项是?( A)(2分)
A.逗号 冒号
B.逗号 分号
C.冒号 句号
D.分号 圆点号

22.下列哪一个选项可以输出内容:{'World', 'e', 'H', 'l', 'o'}?(B )(2分)
 
A.

s=set("Hello") 
s.append("World") 
print(s)

B.

s=set("Hello") 
s.add("World") 
print(s)

C.

s=set("Hello")
s.update("World") 
print(s)

D.

s=set("Hello") 
s.insert("World") 
print(s)

23.根据下列代码及运行结果判断字典推导公式实现的功能?(B)(2分)

a ={'x ': 6,'y ': 9}
a_change= {v: k for k, v in a.items( )}
print(a_change)
 


A.创建字典并输出
B.交换字典的key和value
C.输出字典key和value
D.遍历字典

24.下列代码运行后的正确选项是?(A)(2分)

import time
a=time.gmtime()
print(time.strftime('%Y-%m-%d %a %h:%M:%S %p',a))


 
A.2023-02-01 Wed Feb:08:04 PM
B.Wed Feb: 2023-02-01 08:04 PM
C.Wed Feb:08:04 PM 2023-02-01
D.2023-02-01 Wed Feb:08:04

25.Python的random库中,random.choice()命令的功能是?(D )(2分)
A.返回时间值
B.返回随机产生的一个字符串
C.获取随机整数
D.随机获取一个元素并返回

二、判断题(共10题,共20分)
26.在Python中设定字符串 str="Happy new year", 则str.rfind('y')返回值为4。(错 )
答案解析:str="Happy new year", str.rfind('y')返回值为10。

27.乐器社团活动,小明用Python进行信息汇总,为了便于操作,他使用了各个元素之间没有先后顺序的集合类型。( 对)
答案解析:Python中的集合元素是无序的。

28.已知元组tup1='a','b','cd',执行print(tup1.count('cd'))后的结果是3。(错 )

29.在python中使用双重转义(用两个斜杠)输出文件路径,如:"d:\test\text\file1.txt",在字符串中这样表示:l="d:\\test\\text\\file1.txt",print(l)。(对 )
答案解析:输出右斜杠时,要用两个右斜杠进行转义。

30.执行下列两段代码的结果是一致的。( 对)

#代码1:
for i in range(9,2):
    print("i=",i)
#代码2:
for j in range(2,9,-2):
    print("j=",j)
 


31.字典对象的items()方法是返回字典中的“键-值对”对象。(对 )
答案解析:字典对象的items()方法是返回字典中的“键-值对”对象。

32.集合类型是一个包含0个或多个数据项的无序的、不重复的数据组合。其中,元素类型只能是固定数据类型,如整数、浮点数、字符串、元组等。(对 )
 
33.使用生成器对象的元素时,不可以将其根据需要转化为列表或者元组。(错 )
答案解析:使用生成器对象的元素时,可以将其根据需要转化为列表或者元组。

34.wordcloud库生成词云有文本生成和频率生成两种方法。(对 )

35.在Python的列表数据结构中,通过insert ()方法可以在指定位置插入元素。(对 )
 
三、编程题(共3题,共30分)
36.体育社团活动,老师首先让社团小组成员按从低到高顺序排成一队站好,小明站在队中,发现和他同样身高的有3人,他想知道,当前社团小组的队列中,具有相同身高的最多人数。 给出社团小组的每个成员身高信息,请你帮忙编写程序输出相同身高的最多人数。
输入格式:

    输入共1行,若干个有序数值(从小到大),互相之间以空格隔开。

输出格式:

    输出共1行,1个整数,表示相同身高的最多人数。

输入样例:

    120 123 123 125 125 125 126 126 126 126 127 127 129 130

输出样例:

    4

a=[int(i) for i in input().         ①        ]
n=len(a)
k,maxn=1,1
for i in range(1,n):
   if a[i] ==         ②        :
      k+=1
   else:
             ③        
   maxn=max(         ④        )
print(maxn)


参考程序:

a=[int(i) for i in input().split()]
n=len(a)
k,maxn=1,1

for i in range(1,n):
   if a[i] == a[i-1]:
      k+=1
   else:
      k=1
   maxn=max(maxn,k)
print(maxn)

评分标准:
(1)split()或等效答案;(2分)
(2)a[i-1]或等效答案;(3分)
(3)k=1或等效答案;(2分)
(4)maxn,k或等效答案。(3分)

37.文学社团组织一次英语实践活动,每个参与活动的同学都分发到一个英文字符串,所有字符为小写字母,活动任务是找出字符串中的最长回文子串。
如果有多个相同长度的回文子串,输出其中任意一个即可。
例如:
“aykkyu”中最长回文子串是“ykky”。
“helloacmcbjbky”中最长回文子串有2个“cmc”“bjb”。

输入格式:
共1行,1个字符串,长度不超过50。

输出格式:
共1行,1个字符串,最长回文子串。

输入样例:
    aykkyu

输出样例:
    ykky

s=input()
n=         ①        
flag=1
for j in range(n,0,          ②        ):
   for i in range(0,n-j+1):
      x=s[i:i+j]
      y=         ③        
      if(x==         ④        ):
         print(x)
         flag=0
         break
   if(flag==0):
      break


参考程序:

s=input()
n=len(s)
flag=1

for j in range(n,0,-1):
   for i in range(0,n-j+1):
      x=s[i:i+j]
      y=x[::-1]
      if(x==y):
         print(x)
         flag=0
         break

   if(flag==0):
      break

评分标准:

(1)len(s)或等效答案;(2分)
(2)-1或等效答案;(3分)
(3)x[::-1]或等效答案;(3分)
(4)y或等效答案。(2分)


38.假设字典dic_city存放每个人想去旅游的城市,小明想去厦门、成都、大理。小李想去大理、广州。小张想去三亚、大理、青岛、上海。
(1)统计每个人想去旅游的城市数目。
(2)统计想去大理的人数以及名单。
根据上述算法思想,补全下列代码。

dic_city={"小明":["厦门","成都","大理"],"小李":["大理","广州"],"小张":["三亚","大理","青岛","上海"]}
for k,v in         ①        :
    print("{}想去{}个城市旅游".        ②        )
name=[]
for k,v in dic_city.items():
    if "大理" in         ③        :
        name. append(k)
print("想去大理旅游的有{}人,他们是{}".format(len(name) ,"、".        ④        ))

参考程序:

dic_city={"小明":["贵阳","成都","大理"],"小李":["大理","广州"],"小张":["三亚","大理","青岛","上海"]}
for k,v in dic_city.items():
    print("{}想去{}个城市旅游".format(k,len(v)))
name=[]
for k,v in dic_city.items():
    if "大理" in v:
        name. append(k)
print("想去大理旅游的有{}人,他们是{}".format(len(name) ,"、".join(name)))


评分标准:
(1)dic_city.items()或等效答案;(3分)
(2)format(k,len(v))或等效答案;(3分)
(3)v或等效答案;(2分)
(4)join(name)或等效答案。(2分)

你可能感兴趣的:(电子学会Python真题,python,青少年编程)