当前位置:   article > 正文

中国电子学会2022年12月份青少年软件编程Python等级考试试卷五级真题(含答案)_计算机程序设计员5级考题

计算机程序设计员5级考题

2022-12 Python五级真题
分数:100  
题数:38
测试时长:60min

一、单选题(共25题,共50分)
1.下面哪个语句正确定义了元组类型数据tuple1?(D)(2分)
A.tuple1=["张三","李四","王五"]
B.tuple1=("张三";"李四";"王五")
C.tuple1=(张三,李四,王五)
D.tuple1=("张三",)
答案解析:元组定义符号为“()”,多个元素之间用英文“,”分割,当只有一个元素时,要加“,”。

2.已知元组tuple1=("张三","李四","王五","赵六"),能输出('李四', '赵六')的是?(B)(2分)
A.print(tuple1(1:3))
B.print(tuple1[1::2])
C.print(tuple1[1,3])
D.print(tuple1[2:4])
答案解析:根据题意可知,输出间隔为2,所以选择B。

3.以下哪个选项不能生成列表['data1', 'data3', 'data5', 'data7', 'data9']?(D)(2分)
A.

  1. list1 = []
  2. for i in range(1,10,2):
  3.     list1.append("data{}".format(i))
  4. print(list1)

B.

  1. list2 = [ "data{}".format(i)for i in range(1,10,2)]
  2. print(list2)
'
运行

C.

  1. list3= []
  2. for i in range(10):
  3.     if i %2 == 1:
  4.         list3.append("data{}".format(i))
  5. print(list3)

D.

  1. list4 = [ "data{}".format(i) for i in range(0,10) if i % 2 == 0]
  2. print(list4)
'
运行


答案解析:list4 = [ "data{}".format(i) for i in range(0,10) if i % 2 == 1]或者list4 = [ "data{}".format(i) for i in range(1,10) if i % 2 == 1]

4.关于各类推导式的运用的表述中,错误的是?(B)(2分)
A.yield作为Python的关键字之一,在生成器函数中用来返回值。
B.使用生成器对象的元素时,不可以将其根据需要转化为列表或者元组。
C.与列表推导式不同的是,生成器推导式的结果是一个生成器对象,而不是列表,也不是元组。
D.从形式上看,生成器推导式与列表推导式非常接近,只是生成器推导式使用圆括号而不是列表推导式所使用的方括号。
答案解析:使用生成器对象的元素时,可以根据需要将其根据需要转化为列表或者元组。


5.Python中yield是一个类似return 的关键字,迭代一次遇到yield时就返回yield后面(右边)的值。下一次迭代时,从上一次迭代遇到的yield后面的代码(下一行)开始执行。下列程序的输出结果是?(A)(2分)

  1. def fun():
  2.     a,b = 1,1
  3.     while True:
  4.         yield a
  5.         a,b = b,a+b
  6. c = fun()
  7. for i in range(6):
  8.     print(c.__next__(),end = ' ')


A.1 1 2 3 5 8
B.1 1 2 2 3 3
C.8 5 3 2 1 1
D.1 2 3 4 5 6
答案解析:运用序列解包,该程序的功能是输出斐波那契数列前6项。

6.下列列表的定义,正确的是哪一项?(C)(2分)
A.list1 = ['red'; 'blue'; 'yellow']
B.list2 = [red, blue, yellow]
C.list3 = ['red', 'blue', 'yellow']
D.list4 = ['red'、 'blue'、'yellow']

7.现有列表 fruits = ['apple', 'orange', 'banana', 'peach'] ,当前需要删去列表元素'orange',正确的操作是?(B)(2分)
A.del fruits['orange']
B.del fruits[1]
C.del fruits[2]
D.del fruits[orange]

8.水果店管理员现有列表 fruits = ['apple', 'orange', 'banana', 'peach'] ,当前接收到葡萄('grape'),需要在列表末尾添加该元素,正确的是哪一项?(B)(2分)
A.fruits.insert('grape')
B.fruits.append('grape')
C.fruits.index('grape')
D.fruits.count('grape')

9.现有校园气象站最近一周(周一至周日)信息采集数据列表:sunlight = [425, 293, 381, 197, 408, 355, 362]当前需要输出周一至周六的数据信息,正确的操作是?(D)
A.print(sunlight[1:n])
B.print(sunlight[1:n-1])
C.print(sunlight[::-1])
D.print(sunlight[:-1])

10.现有集合 stationery = set(("pen", "pencil", "eraser", "ruler")),需要集合中添加元素"ink",正确的是哪一项?(D)(2分)
A.stationery.set("ink")
B.stationery.insert("ink")
C.stationery.pop("ink")
D.stationery.add("ink")

11.通过下列哪个方法,可以实现两个集合交集的操作?(B)(2分)
A.copy()
B.intersection()
C.union()
D.update()

12.运行下列程序,输出结果正确的一项是?(D)(2分)

  1. ds = {'aa':2,'bb':4,'cc':9,'dd':6}
  2. print(ds.popitem(), len(ds))
'
运行


A.('aa', 2) 4
B.('dd', 6) 4
C.('bb', 2) 3
D.('dd', 6) 3
答案解析:Python 字典 popitem() 方法表示,从字典中删除最后一个项目。

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

  1. ds = {'语文':99,'数学':98,'历史':94,'物理':97}
  2. print(ds.pop(max(ds.keys()), 0))
'
运行


A.数学
B.94
C.99
D.语文

14.有如下Python程序段:

  1. n=int(input("请输入一个整数:"))
  2. s=0
  3. for i in range(1,n):
  4.     if n%i==0:
  5.         s=s+i
  6. print(s)

若输入的数为10,则输出的结果为?(A)(2分)
A.8
B.11
C.18
D.55
答案解析:本题变量s的值为整数n除n外的因子之和。

15.有如下Python程序段:

  1. for i in range(1,11):
  2.     for j in range(1,11,2):
  3.         if i+j!=10:
  4.             break
  5.         print(i,j)

执行程序后,输出的结果为?(D)(2分)
A.3 7
B.5 5
C.7 3
D.9 1
答案解析:本题程序在用双重循环遍历i、j的过程中,判断如果i+j不等于10,则结束内循环,只有当i=9、j=1时输出。

16.有如下Python程序段:

  1. s=['3','5','11','28']
  2. max=s[0]
  3. for i in range(1,len(s)):
  4.    if s[i]>max:
  5.        max=s[i]
  6. print(max)

执行程序后,输出的结果为?(B)(2分)
A.3
B.5
C.11
D.28
答案解析:本题程序功能比较列表中字符串的大小,输出最大值。

17.有如下Python程序段:

  1. s=0
  2. for i in range(1,11):
  3.     if i%3==2:
  4.         continue
  5.     s+=i

执行程序后,输出s的值为?(C)(2分)
A.15
B.26
C.40
D.55
答案解析:本题变量s的值为序列1到10中对3取余不等于2的数之和。

18.Python表达式"Hello"+"Python"的值为?(B)(2分)
A."Hello"+"Python"
B."HelloPython"
C.Hello+Python
D."Hello Python"

19.有字符串s="Hello Python",则s[-2:2:-2]的值为?(B)(2分)
A.""
B."otPo"
C."otPol"
D."hy l"

20.回文指正读和反读都相同的字符序列,如“abba”、“abccba”、12321、123321是“回文”,“abcde”和“ababab”则不是“回文”。 在数学中具备这样特征的数就叫做回文数。假设字符变量a中存放的是一个三位数,下列语句不能取出字符变量a中的回文数的是?(D)(2分)
A.a[2]+a[1]+a[0]
B.a[::-1]
C.a[-1]+a[-2]+a[-3]
D.a[-1:0:-1]

21.已知变量name="张昊"、age=18,下列字符串格式化输出,错误的是?(A)(2分)
A.print('我叫%s,今年我%d岁了'%(age,name))
B.print(‘我叫%s,今年我%d岁了'%(name,age)
C.print('我叫{},今年我{}岁了'.format(name,age))
D.print(f'我叫{name},今年我{age}岁了')

22.编写Python程序实现:随机生成输出一个1-100之间的整数。

  1. import random
  2. print(num)

下列语句不可以完善程序,实现相关功能的是?(A)(2分)
A.num=int(random.random()*99)+1
B.num=int(random.uniform(1,100))
C.num=random.randint(1,100)
D.num=random.choice(range(1,101))

23. 编写Python程序实现:输入圆的半径,输出圆的面积。

  1. import math
  2. r=float(input())                
  3. print(s)

下列语句不可以完善程序,实现相关功能的是?(D)(2分)
A.s=math.pi*math.pow(r,2)
B.s=math.pi*r**2
C.s=math.pi*r*r
D.s=pi*r*r

24.time模块中,time.time()所得的结果的数据类型是?(B)(2分)
A.整形
B.实型
C.字符串类型
D.列表类型

25.Python中jieba的功能描述,正确的是?(A)(2分)
A.分词
B.数据可视化
C.计算
D.画图


二、判断题(共10题,共20分)
26.一个完整的切片表达式包含两个“:”,用于分隔三个参数(start_index、end_index、step),当只有一个“:”时,默认第三个参数step=0。(错)
答案解析:当只有一个“:”时,默认第三个参数step=1

27.Python中列表的索引是从1开始的。(错)

28.Python中集合元素是有序的,可以用索引获取集合的具体元素。(错)

29.Python集合中每一个元素都是唯一的。(对)

30.当以指定“键”为下标给字典对象赋值时,若该“键”存在则表示修改该“键”对应的“值”,若不存在则抛出错误。(错)
答案解析:若不存在则表示为字典对象添加一个新的“键-值对”。

31.>>> list(range(4))可以生成列表[0,1,2,3,4]。(错)

32.在Python中,字符串常量必须用双引号引起来。(错)

33.假设字符串a=”students”,索引切片a[:]的结果与a[:1]的结果相同。(错)

34.time库是Python中处理时间的标准库, time库中时间获取函数time()和ctime(),返回的都是字符串。(错)

35.元组是一种有序的序列结构,元素可重复,数据类型可不相同,元素可以修改。(错)

三、编程题(共3题,共30分)
36.破译密码:经过研究,该密码的加密规律如下:
1)原文中所有的字符都在字母表中被循环左移了三个位置(dec  -> abz);
2)逆序存储(abcd -> dcba );
3)大小写反转(abXY -> ABxy)。
输入:一个加密的字符串。(长度小于50且只包含大小写字母)
输出:输出解密后的字符串。
根据上述算法思想,补全下列代码。
输入输出示例:
输入:
djiAHYhSju
输出:
XMvKbkdLMG

  1. a=input()
  2. a=list(a)
  3. newList1=[]
  4. newList2=[]
  5. for i in a:
  6.     num=ord(i)
  7.     if num >=120 and num<=122:
  8.         num=           ①           
  9.     elif num>=88 and num<=90:
  10.         num=num-23
  11.     else:
  12.         num =           ②           
  13.     c=chr(num)
  14.     newList1.append(c)
  15.            ③           
  16. for i in newList1:
  17.     if i.isupper():
  18.         newList2.append(           ④           )
  19.     if i.islower():
  20.         newList2.append(i.upper())
  21. for i in newList2:
  22.     print(i,end='')

参考程序:

  1. a=input()
  2. a=list(a)
  3. newList1=[]
  4. newList2=[]
  5. for i in a:
  6.     num=ord(i)
  7.     if num >=120 and num<=122:
  8.         num=num-23
  9.     elif num>=88 and num<=90:
  10.         num=num-23
  11.     else:
  12.         num = num + 3
  13.     c=chr(num)
  14.     newList1.append(c)
  15. newList1.reverse()
  16. for i in newList1:
  17.     if i.isupper():
  18.         newList2.append(i.lower())
  19.     if i.islower():
  20.         newList2.append(i.upper())
  21. for i in newList2:
  22.     print(i,end='')

评分标准:
(1)num-23 或等效答案; (2分)
(2)num + 3 或等效答案; (2分)
(3)newList1.reverse() 或等效答案;  (3分)
(4)i.lower() 或等效答案。(3分)


37.科技社团组织一次实践活动,设计海报过程中需要对一个字符串进行编辑,字符串由大小写英文字母和英文标点符号组成,根据活动主题,需要将字符串中小写字母’h’替换为大写字母’H’。有一点要注意:第一个和最后一个’h’不用替换。

输入格式:
   共1行,1个字符串,长度不超过100,由大小写英文字母和英文标点符号组成。
输出格式:
   共1行,1个字符串,表示经过编辑后的字符串。
输入样例:
   hill how high hello how hide
输出样例:
    hill How HigH Hello How hide

  1. s=input()
  2. x=s.            ①           ('h')
  3. y=s.rfind('h')
  4. t=s[           ②           :y]
  5. t=t.           ③           ('h','H')
  6. print(s[0:x+1]+t+s[y:           ④           ])


参考程序:

  1. s=input()
  2. x=s.find('h')
  3. y=s.rfind('h')
  4. t=s[x+1:y]
  5. t=t.replace('h','H')
  6. print(s[0:x+1]+t+s[y:len(s)])
'
运行

评分标准:
(1)find  或等效答案;(3分)
(2)x+1  或等效答案;(2分)
(3)replace 或等效答案;(2分)
(4)len(s) 或等效答案。(3分)


38.小石喜欢带有字符“2”、“6”、“8”的车牌号,不喜欢带有数字“4”的车牌号,因此小石设计了一个计算车牌满意值的程序。对于车牌号中的所有字符,字符“2”满意值为 1,字符“6” 满意值为 2,字符“8”满意值为 3,字符“4”的满意值为-2,其他字符的满意值为 0,车牌号的满意值即为其所有字符的满意值之和,例如车牌号“浙 H94286”的满意值为 4,计算某车牌号 满意值的程序代码如下,请补充完整。

  1. dic={"2":1,"4":-2,"6":2,"8":3}
  2. cp=input("请输入车牌号:")
  3. ans=0    
  4. for i in range(           ①           ) :
  5.     ch=cp[i]
  6.     if           ②           :   
  7.                    ③            
  8. print("该车牌号的满意值为:",ans)


参考程序:

  1. dic={"2":1,"4":-2,"6":2,"8":3}
  2. cp=input("请输入车牌号:")
  3. ans=0    
  4. for i in range( len(cp) ) :
  5.     ch=cp[i]
  6.     if ch in dic :   
  7.        ans+= dic[ch]      
  8. print("该车牌号的吉利值为:",ans)


评分标准:
(1)len(cp) ;(3分)
(2)ch in dic;(3分)
(3)ans+= dic[ch]。(4分)


 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/961485
推荐阅读
相关标签
  

闽ICP备14008679号