【电子学会】2022年12月Python二级试卷

这是一份2022年12月电子学会组织的青少年软件编程(Python)二级考试试卷,包含25道单选题、10道判断题和2道编程题,涵盖Python基础知识、数据结构和操作等方面,旨在测试考生的Python编程能力。
摘要由CSDN通过智能技术生成

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

分数:100 题数:37

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

010203040506070809101112131415
BBACBBDBDBABBDD
16171819202122232425
DCBCCCBBCD

1、运行下列程序,最终输出的结果是?( )

info = {1: '小明', 2: '小黄', 3: '小兰'}
info[4] = '小红'
info[2] = '小白'
print(info)
  • A. {1: ‘小明’, 2: ‘小白’, 3: ‘小红’, 4: ‘小兰’}
  • B. {1: ‘小明’, 2: ‘小白’, 3: ‘小兰’, 4: ‘小红’}
  • C. {1: ‘小白’, 2: ‘小名’, 3: ‘小兰’, 4: ‘小红’}
  • D. {1: ‘小明’, 2: ‘小红’, 3: ‘小兰’, 4: ‘小白’}
  • 标准答案:B
  • 试题难度:中

2、下列Python程序的功能是求?( )

s = 0
k = 1
for i in range(1, 101):
    s = s + k * i
    k = -k
print(s)
  • A. s = 1 + 2 + 3 + 5 + 6 + … + 100的值
  • B. s = 1 - 2 + 3 - 4 + 5 - 6 + … - 100的值
  • C. s = 1 + 2 + 3 + 4 + 5 + 6+ … +101的值
  • D. s = 1 - 2 + 3 - 4 - 5 - 6 - … - 101的值
  • 标准答案:B
  • 试题难度:困难

3、有以下三个词组的列表,

game_name = ['一只蜗牛', '一只猫', '一只兔子', '孩子们', '运动员们', '一朵云']
game_where = ['在伞底下', '在沙滩上', '在沙发上', '在石头上', '在天空中', '在公园里']
game_what = ['搭了个窝', '在慢慢爬', '玩滑梯', '打排球', '正在睡觉', '遮住太阳']

如果造词的输出结果是“一只兔子在公园里搭了个窝”,代码正确的是?( )

  • A. print(game_name[-4] + game_where[-1] + game_what[0])
  • B. print(game_name[2] + game_where[6] + game_what[0])
  • C. print(game_name[3] + game_where[6] + game_what[1])
  • D. print(game_name[-4] + game_where[5] + game_what[1])
  • 标准答案:A
  • 试题难度:中

4、执行下面代码,输出的结果是?( )

for leibie in 'student':
    if leibie == 'u':
        break
    print(leibie)
  • A. st
  • B. stu
  • C.
s
t
  • D.
s
t
u
  • 标准答案:C
  • 试题难度:较难

5、score = {'跳绳': 85, '跳远': 99, '跑步': 92}。下列哪个代码可以将跳绳的85修改成95?( )

  • A. score[跳绳] = 95
  • B. score[‘跳绳’] = 95
  • C. score[0] = 95
  • D. score[‘0’] = 95
  • 标准答案:B
  • 试题难度:中

6、已知列表a = [2, 4, 6],执行语句 print(2 * a),显示的结果是?( )

  • A. [[2, 4, 6], [2, 4, 6]]
  • B. [2, 4, 6, 2, 4, 6]
  • C. [4, 16, 36]
  • D. [4, 8, 12]
  • 标准答案:B
  • 试题难度:中

7、下列程序执行后,打印的结果是?( )

a = [3, 9, 5]
b = a
b[0] = 7
print(b)
  • A. [3, 9, 5]
  • B. [7, 3, 9, 5]
  • C. [3, 9, 5, 7]
  • D. [7, 9, 5]
  • 标准答案:D
  • 试题难度:较难
  • 试题解析:a=[3,9,5] b=a b变量指向a列表,因此a和b指向的是同一个列表[3,9,5] b[0]=7对b指向的列表的第0个元素值更改成7,b指向的列表值为[7,9,5] 由于a和b指向同一个列表,因此a和b列表相同,都是[7,9,5]

8、

toy = ['魔方', '拼图']
toy.append('积木')
print(toy)

以上代码的运行结果是?( )

  • A. [‘魔方’, ‘拼图’, [‘积木’]]
  • B. [‘魔方’, ‘拼图’, ‘积木’]
  • C. [‘积木’, ‘魔方’, ‘拼图’]
  • D. ‘魔方’, ‘拼图’, ‘积木’
  • 标准答案:B
  • 试题难度:容易
  • 试题解析:本题考查列表append命令的用法,在append括号中填入一个元素,执行append命令后,会在列表的末尾添加一个元素。

9、

a = 1
for i in range(4):
    if i == 3:
        break
        a += 1
    else:
        a += 2
print(a)

以上代码的运行结果是?( )

  • A. 4
  • B. 5
  • C. 6
  • D. 7
  • 标准答案:D
  • 试题难度:中
  • 试题解析:i的值为0,1,2,3。当取值为3时,a的值不变,其他取值时,a自增2,所以a的值为1+2+2+2=7。

10、想要删除gift字典中的键值对 ‘糖果’ : 10, 可以使用的代码是?( )

  • A. gift.pop('糖果': 10)
  • B. gift.pop('糖果')
  • C. gift.remove('糖果': 10)
  • D. gift.remove('糖果')
  • 标准答案:B
  • 试题难度:中
  • 试题解析:字典中,使用pop删除字典的键值对,参数是键。

11、在空格处填入以下哪个语句,不能得到从大到小的排序结果是?( )

list1 = [1, 5, 9, 67, 4, 44, 99]
for i in range(2):
    a = int(input())
    list1.append(a)
    _________________
for i in list1:
    print(i, end=" ")
  • A. list1.sort()
  • B. list1 = sorted(list1, reverse=True)
  • C. list1.sort(reverse=True)
  • D.
list1.sort()
list1 = list1[-1::-1]
  • 标准答案:A
  • 试题难度:中
  • 试题解析:本题主要考查列表的排序操作,sort()和sorted()函数都可以实现排序,但是两个函数只能实现从小到大的排序操作,所以这里需要将序列反向排列,A选项只做了排序,故选择A.

12、下列关于列表变量ls操作的描述中,错误的是?( )

  • A. min(ls):找出ls中最小元素
  • B. ls.remove(x):删除ls中所有x元素
  • C. ls.index(x):返回元素x在列表中的下标
  • D. ls.copy():生成一个新列表,复制ls的所有元素
  • 标准答案:B
  • 试题难度:容易
  • 试题解析:本题考查列表中的min、remove、index、copy等操作,选项B中的remove移除的是列表中第一次出现的x元素,所以选择B。

13、下面代码的输出结果是?( )

name = "Python语言程序设计"
for i in range(5):
    print(name[i], end='')
  • A. Python
  • B. Pytho
  • C. ython
  • D. Python语言程序
  • 标准答案:B
  • 试题难度:较难
  • 试题解析:考察对range函数的认识。

14、下列程序的运行结果是?( )

str1 = "cat dog cat dog cat dog"
str2 = str1.replace("cat", "mouse", 2)
print(str2)
  • A. cat dog mouse dog cat dog
  • B. 2 dog mouse dog cat dog
  • C. mouse mouse dog mouse mouse dog cat dog
  • D. mouse dog mouse dog cat dog
  • 标准答案:D
  • 试题难度:困难
  • 试题解析:考察字符串replace()方法的使用。

15、下列程序的运行结果是?( )

tem = (4, 7, 4, 6, 9)
tem = tem + (4,)
print(tem.count(4))
  • A. 2
  • B. 0
  • C. 程序报错
  • D. 3
  • 标准答案:D
  • 试题难度:困难
  • 试题解析:考察统计元组相同值的个数。

16、下列说法正确的是?( )

  • A. if语句通常用于重复执行某一段程序
  • B. while语句通常用于执行条件判断
  • C. 在Python中可以使用do…while循环
  • D. break语句可以跳出for和while的循环体
  • 标准答案:D
  • 试题难度:容易
  • 试题解析:Python中没有do…while循环

17、已知有字符串str2 = "Good Morning!",则执行print(len(str2[1:-2]))输出的结果是?( )

  • A. 8
  • B. 9
  • C. 10
  • D. 11
  • 标准答案:C
  • 试题难度:较难
  • 试题解析:str2[1:-2]截取的结果是ood Mornin,有10个字符(包括空格)

18、运行下列程序段后,输出的结果是?( )

i = 1
while i <= 5:
    i = i + 2
print(i)
  • A. 3
  • B. 7
  • C. 5
  • D. 6
  • 标准答案:B
  • 试题难度:容易

19、运行语句print("ab"<"ac")后,输出的结果是?( )

  • A. 0
  • B. 1
  • C. True
  • D. False
  • 标准答案:C
  • 试题难度:容易

20、若a = [1, 2]b = [3, 4],则执行a = a + b语句后,a的值是?( )

  • A. [1, 2]
  • B. [4, 6]
  • C. [1, 2, 3, 4]
  • D. [3, 4]
  • 标准答案:C
  • 试题难度:容易

21、小明用列表s存储小组同学的身高,s = [136.0, 135.0, 142.0, 140.0],则max(s)的值是?( )

  • A. 136.0
  • B. 135.0
  • C. 142.0
  • D. 140.0
  • 标准答案:C
  • 试题难度:容易

22、已知list8列表有8个元素,执行print(list8[1:-2])输出的结果是一个列表,则输出的列表有几个元素?( )

  • A. 4
  • B. 5
  • C. 6
  • D. 7
  • 标准答案:B
  • 试题难度:困难
  • 试题解析:list8[1:-2]表示从第二位开始(包含)截取到倒数第二位(不包含),所以输出的列表共有5个元素

23、下面的d是一个字典变量,能够输出数字9的语句是?( )

d = {'奥运奖牌': {'金牌': 5, '银牌': 4}, '金牌': 9, '银牌': 4}
  • A. print(d['奥运奖牌']['金牌'])
  • B. print(d['金牌'])
  • C. print(d['奥运奖牌'][-1])
  • D. print(d['金牌'][1])
  • 标准答案:B
  • 试题难度:中
  • 试题解析:本题考查访问字典里的值,同时考查易错点字典的值如果创建同一键被赋值两次,则后一个值会取代前一个值成为键的值。故选择B。

24、设有元组tup = (5, 2, 8, 1, 89, 43, 7, 22),执行下列语句,结果是?( )

tup1 = sorted(tup)
print(tup1)
  • A. [89, 43, 22, 8, 7, 5, 2, 1]
  • B. (89, 43, 22, 8, 7, 5, 2, 1)
  • C. [1, 2, 5, 7, 8, 22, 43, 89]
  • D. (1, 2, 5, 7, 8, 22, 43, 89)
  • 标准答案:C
  • 试题难度:中
  • 试题解析:元组为不可变序列,所以元组使用元组使用sorted()排序后,会生成一个列表,而不是元组,所以排除选项B,D,此题中并没有反向排序,故选择C。

25、下列代码输出的结果是?( )

tup = ('python', 2022, '神州十三号')
print(type(tup))
  • A. <class ‘dict’>
  • B. <class ‘set’>
  • C. <class ‘list’>
  • D. <class ‘tuple’>
  • 标准答案:D
  • 试题难度:容易

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

26272829303132333435
×××××

26、字典的元素可以通过键来访问,也可以通过索引(下标)来访问。( )

  • 正确();
  • 错误();
  • 标准答案:×
  • 试题难度:中
  • 试题解析:字典的元素只能通过键来访问。

27、Python中,可以通过索引来访问列表、字符串等序列,也可以通过索引对列表中的元素和字符串中的字符进行修改。例如:a = 'python'a[0] = 'P',字符串a将被修改为“Python”。( )

  • 正确();
  • 错误();
  • 标准答案:×
  • 试题难度:中
  • 试题解析:字符串是不可变序列,可以用索引获取字符串中某个字符的值,但是字符串中的字符不允许被修改。

28、break用来跳出最内层for或者while循环,脱离该循环后程序继续执行后续代码。( )

  • 正确();
  • 错误();
  • 标准答案:√
  • 试题难度:容易
  • 试题解析:考察对break语句的认识。

29、单分支结构是用if语句判断满足一个条件,就执行相应的处理代码。( )

  • 正确();
  • 错误();
  • 标准答案:√
  • 试题难度:容易
  • 试题解析:考察对单分支选择结构的认识。

30、tem1 = (1),用type(tem1)检查其类型应该为tuple。( )

  • 正确();
  • 错误();
  • 标准答案:×
  • 试题难度:容易
  • 试题解析:当给元组变量赋一个元素时,应该用tem1=(1,)

31、在语句for i in range(5):中,当进入第5次循环时,i的值为5。( )

  • 正确();
  • 错误();
  • 标准答案:×
  • 试题难度:容易

32、clear()方法可以移除列表中第一次出现的该元素。( )

  • 正确();
  • 错误();
  • 标准答案:×
  • 试题难度:容易
  • 试题解析:clear()方法可以清空列表。remove()方法可以移除列表中某个值的第一个匹配项。

33、运行如下代码:

words = "123abc"
slice1 = words[-1::-1]
print(slice1)

结果为:“cba321”。( )

  • 正确();
  • 错误();
  • 标准答案:√
  • 试题难度:中
  • 试题解析:本题考查字符串切片。

34、元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组。( )

  • 正确();
  • 错误();
  • 标准答案:√
  • 试题难度:中
  • 试题解析:本题考查元组为不可变序列,不能删除元素。

35、else保留字除了可以和if语句一起搭配使用构成if…else…,也可以和while或for循环搭配使用,构成while…else…和for…else…结构。( )

  • 正确();
  • 错误();
  • 标准答案:√
  • 试题难度:较难
  • 试题解析:如题,while…else和for…else…是循环语句的拓展用法

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

36

编写一个重复执行的程序,要求用户输入一个字符串。如果输入的字符串的长度是奇数,就输出字符串最中间的字符。如果字符串的长度是偶数,就输出字符串的最后一个字符。然后重复以上操作。

参考程序:

注意:仅供参考,考生可以自行设计,结果符合题意即可。

while True:
    s = input('请输入一个字符串:')
    length = len(s)
    if length % 2 !=0:
        print(s[length//2])
    else:
        print(s[-1])

试题难度:较难

评分标准:

(1)能正确地要求用户输入字符串;(2分)

(2)使用len()方法计算字符串的长度;(3分)

(3)使用至少一个if判断;(2分)

(4)能正确判断用户输入的字符串的长度是奇数还是偶数;(4分)

(5)当用户输入的字符串长度为奇数时,能正确地截取字符串最中间的字符并输出;(4分)

(6)当用户输入的字符串长度为偶数时,能正确地截取字符串的最后一个字符并输出;(3分)

(7)程序可循环运行。(2分)

37

从键盘输入任意字符串,按照下面要求分离字符串中的字符:

1、分别取出该字符串的第偶数位的元素(提醒注意:是按照从左往右数的方式确定字符串的位置);

2、并依次存储到一个列表中;

3、输出这个列表。

参考程序:

注意:仅供参考,考生可以自行设计,结果符合题意即可。

利用while循环:

s = input('请输入字符串:')
lst = []
i = 1

while i<len(s):
    lst.append(s[i])
    i += 2
print(lst)

利用for循环:

s = input('请输入字符串:')
lst = []

for i in range(1,len(s),2):
    lst.append(s[i])

print(lst)

试题难度:

评分标准:

(1)定义一个变量接受从键盘输入的字符串;(2分)

(2)for 循环格式正确或者采用其他方法将偶数(或者所有)元素逐一取出;(3分)

(3)能够将取出的偶数位元素追加到列表中;(3分)

(4)输入列表正确。(2分)

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青少年编程小助手_Python

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值