2024年12月中国电子学会青少年软件编程(Python)等级考试试卷(二级)答案 + 解析

更多真题在线练习系统:历年真题在线练习系统

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

1. 已知字典如下

dic1 = {

        'name': 'Ming',

        'age':20,

        'grade': 'A',

        'Tel':6666666

    }

以下哪个代码运行结果为20?( )

A. dic1('age')

B. dic1[1]

C. dic1(20)

D. dic1['age']

标准答案:D

试题难度:一般

试题解析:字典键是唯一的,所以可以通过键获得值,格式为 字典名[键名],所以选D

2. 若 ls = ["cat", "dog","tiger", "fox"],则运行代码 ls[1:2] 的结果是?( )

A. ["cat"]

B. ["dog"]

C. ["tiger"]

D. ["fox"]

标准答案:B

试题难度:一般

试题解析:首先,列表的正索引是从左向右从0开始,其次,ls[1:2]只能取到1号,不包含2号,则ls[1:2]的结果只能是["dog"]。

3. 有代码 city = ["Qingdao","Beijing","Shanghai","Wuhu","Hefei"],则正确获取 city 元素个数的命令是?( )

A. city.clear()

B. city.copy()

C. city.reverse()

D. len(city)

标准答案:D

试题难度:一般

试题解析:获取列表元素个数的函数(方法)是len()。

4. 已知 d = {"东岳":"泰山", "西岳":"华山", "南岳":"衡山", "北岳":"恒山"},则向 d 中添加元素的选项是?( )

A. d.pop("中岳")

B. d.get("中岳")

C. d["中岳"] = "嵩山"

D. del d["中岳"]

标准答案:C

试题难度:一般

试题解析:对于字典d,可以使用 d['key'] = 'value' ,即使用索引赋值的方式添加元素。

5. 已知列表ver=['香菱',11,"钟离",28,"芭芭拉",'神里绫华'],下列哪个命令能够获得列表中的"芭芭拉"?( )

A. ver[5]

B. ver[3]

C. ver[-2]

D. ver[-1]

标准答案:C

试题难度:一般

试题解析:列表list的元素只要是Python支持的数据类型就可以,故上述列表中共有6个元素;列表的索引从左向右计数时,是从0开始递增的,即0,1,2……;若从右向左计数,则从-1开始递减,即-1,-2,-3……;该列表倒数第二个元素通过索引值4或-2访问。故本题答案选C。

6. 小宸同学最近迷上了姓名查重系统(当输入一个人名时,系统自动反馈当前全国取这个名字的人数)。小宸想用Python做个简单版的名字查重系统:将自己所在的年段所有学生姓名存入列表中,当输入人名,反馈该人名在本年段重名人数。请问,统计某个人名在年段出现的次数,可以使用以下哪个函数?( )

A. append()

B. insert()

C. count()

D. index()

标准答案:C

试题难度:一般

试题解析:

列表中append()函数用于向列表新增单个元素;insert()函数用于向列表指定位置插入元素;index()函数用于在列表中查找某个元素出现的初始位置,count()函数用于统计元素出现的次数。

7.

s1="Let life be beautiful like summer flowers and death like autumn leaves."

s2=s1.split()

print(type(s2))

以上程序运行的结果?( )

A. <class 'set'>

B. <class 'str'>

C. <class 'list'>

D. <class 'dict'>

标准答案:C

试题难度:一般

试题解析:

str.split(参数)其功能是使用参数中指定的字符将字符串str分割成字符串列表,结果返回的是列表类型。

8.

a=[70,71,72,73,74,75]

b=('2021年','2022年','2023年','2024年')

c="新中国,旧中国"

以下哪个选项可以实现输出字符串“2024年是新中国成立75周年。”?( )

A. print(b[3]+"是"+c[:3]+"成立"+str(a[5])+"周年。")

B. print(b[3]+"是"+c[:3]+"成立"+a[5]+"周年。")

C. print(b[3]+"是"+c[:4]+"成立"+str(a[5])+"周年。")

D. print(str(b[3])+"是"+c[:4]+"成立"+str(a[5])+"周年。")

标准答案:A

试题难度:较难

试题解析:

字符串之间的连接可采用连接符“+”,字符串与整型数字类型无法直接连接,需将其他类型的数据转化为字符串类型后方可连接。其他数据类型转换为字符串类型可使用str()函数。字符串的索引从下标0开始,字符串的切片遵循左闭右开原则。

B选项a[5]的结果是“int”类型,无法直接与其余字符串类型进行连接。

C、D选项输出的结果是“2024年是新中国,成立75周年。”未能输出题目指定的字符串。

9.

for i in range(2024,2124):

    if(i%400==0 or (i%4==0 and i%100!=0)):

        print("{}是闰年。".format(i))

    else:

        continue

以上程序的作用是?( )

A. 从2024遍历到2124,判断哪些年份是闰年,并输出闰年年份

B. 从2024遍历到2123,判断哪些年份是闰年,并输出闰年年份

C. 从2025遍历到2124,判断哪些年份是闰年,并输出闰年年份

D. 寻找2024年至2123年期间的第一个闰年

标准答案:B

试题难度:一般

试题解析:

Python程序的循环结构+if条件结构。range()函数会生成数列,range(left,right[,step]):左闭右开区间即大于等于left,小于right。step是步长。

10.

在Python中,下列选项不属于循环结构语句的是?( )

A.

for 变量 in 序列:

    语句块

B.

while(判断条件):

    语句块

C.

for 变量 in range(100):

    语句块

D.

do:

    语句块

whlie(判断条件);

标准答案:D

试题难度:一般

试题解析:在Python程序中,没有do……while直到型循环。

11. 以下选项无法创建列表的是?( )

A. ls=list()

B. ls=['字典';'集合']

C. ls=['列表','元组','字符串']

D. ls=list(range(10))

标准答案:B

试题难度:一般

试题解析:

选项A,用于创建一个空列表,等效于 ls=[]

选项B,无法创建列表,列表元素之间应该用逗号分隔

选项C,直接录入列表元素创建列表

选项D,利用list函数将序列转换为列表

所以选B

12.

以下程序段执行的结果是?( )

ls=[1,2]

ls.append([1,2,3])

ls.extend([1,2])

ls.remove(2)

print(ls)

A. [1,[1,2,3],[1,2]]

B. [1, [1, 2, 3], 1, 2]

C. [1,[1,3],[1]]

D. [1,1,3,1]

标准答案:B

试题难度:一般

试题解析:ls.append([1,2,3])将列表[1,2,3]作为一个元素添加到ls中,添加后列表ls为[1,2,[1,2,3]] ls.extend([1,2])在ls列表末尾追加列表[1,2]中的所有元素,所以该语句执行后ls为[1,2,[1,2,3],1,2] ls.remove(2)删除ls列表中第一个出现的元素2,所以该语句执行后ls为[1, [1, 2, 3], 1, 2] 所以程序段的执行结果是[1, [1, 2, 3], 1, 2]。

13. 阿宝的期末考试成绩保存在字典score中,score={'数学':100,'语文':95,'英语':98,'科学':97,'美术':98,'音乐':99},以下删除字典中音乐成绩的语句正确的是?( )

A. del score[音乐]

B. del score['音乐']

C. score.pop(音乐)

D. score.remove('音乐')

标准答案:B

试题难度:容易

试题解析:删除字典中键值对的方法是用del 字典名[键名]

14. 下面哪个选项是一个格式正确的元组?( )

A. [1, 2, 3]

B. {1, 2, 3}

C. (1, 2, 3)

D. (1、2、3)

标准答案:C

试题难度:一般

试题解析:元组是用小括号括起来的,元素之间是逗号,因此选 C。

15. 运行这段代码,终端区会打印什么内容?( )

for i in range(10):

    if i > 5:

        print(i, end='')

A. 12345678910

B. 0123456789

C. 56789

D. 6789

标准答案:D

试题难度:一般

试题解析:range(10) 的范围是 0-9,条件判断大于 5 才成立,因此会打印 6789。

16. 将古诗《春晓》的句子存入列表如下: lst=['春眠不觉晓,', '处处闻啼鸟,', '夜来风雨声,', '花落知多少。'] 请问len(lst[3])的值是?( )

A. 4

B. 5

C. 6

D. 7

标准答案:C

试题难度:一般

试题解析:len()函数的作用是求出括号内的对象的长度。 本题中lst[3]表示列表中下标为3的元素,即 '花落知多少。' ,中文长度为5,标点符号'。'长度为1,总长度为6。

17. 小明所在的小组有5位同学,他们本次的数学考试成绩存储在一个元组中,如下所示: tuple = (88, 93, 76, 85, 90) 这时小明需要在终端中打印元组中的第二个分数,他应该在终端输入如下哪个代码呢?( )

A. print(tuple[1])

B. print(tuple.get(1))

C. print(tuple[2])

D. print(tuple.index(1))

标准答案:A

试题难度:一般

试题解析:在Python中,可以通过索引来访问元组中的元素。由于索引是从0开始的,所以元组中的第二个元素的索引是1。 选项A正确地返回了元组中的第二个元素。选项B是错误的,因为元组没有get方法。选项C返回的是元组中的第三个元素。选项D返回的是元组中第一个值为1的元素的索引,而不是第二个元素。

18. 小明帮妈妈浇花,如果花盆里土的湿度低于30%,就需要浇水。如果用变量moisture表示土壤湿度,以下哪个Python语句可以模拟需要浇水的情况?( )

A.

if moisture>30%:

    print('浇水')

B.

if moisture<30%:

    print('浇水')

C.

if moisture>30%:

print('不浇水')

D.

if moisture<30%:

    print('不浇水')

标准答案:B

试题难度:一般

试题解析:Python语言中if语句的正确格式是 if 条件: 语句,其中“语句”部分是要执行的代码。选项A和D的逻辑与题目描述相反,选项C描述的是不需要浇水的情况,并且第二行没有缩进。因此,正确答案是B。

19. 小明想要通过Python来判断一个数字num是否是偶数。以下哪个语句是正确的?( )

A.

if num%2 != 0:

    print("是偶数")

B.

if num%2 == 0:

    print("是偶数")

C.

if num/2 == 0:

    print("是偶数")

D.

if num/2 != 0:

    print("是偶数")

标准答案:B

试题难度:一般

试题解析:在Python中,判断一个数字是否是偶数,通常使用取模运算符(%)。如果一个数字除以2的余数是0,那么它就是偶数。因此,正确的语句是if num%2 == 0: print("是偶数")。

20. 以下各项中,哪一个表示的是列表?( )

A. [1; 3; 3; 2; 4]

B. {1, 3, 3, 2, 4}

C. [1, 3, 3, 2, 4]

D. (1, 3, 3, 2, 4)

标准答案:C

试题难度:容易

试题解析:Python中,用方括号[ ]表示列表,逗号分隔其中的元素,本题正确答案选C。

21. 以下关于字符串的描述,不正确的是?( )

A. 字符串定义后不可修改

B. 字符串可以用“*”操作符进行连接

C. 字符串是用单引号或双引号括起来的一串字符

D. 内置函数len()返回字符串的长度

标准答案:B

试题难度:容易

试题解析:字符串是由“+”操作符连接,由“*”进行重复,故此题正确答案是选项B。

22. 已知dict = {'语文':59,'数学':99,'英语':97},执行以下哪个命令可以将其修改为{'语文':95,'数学':99,'英语':97}?( )

A. dict[0] = 95

B. dict[1] = 95

C. dict[语文] = 95

D. dict['语文'] = 95

标准答案:D

试题难度:容易

试题解析:序列是以连续的整数为索引,而字典是以关键字为索引,关键字需是任意不可变类型,通常用字符串或数值,选项A、B是序列模式的索引,选项C的索引是变量,故本题正确答案是选项D。

23. 创建元组时,使用下列哪个符号?( )

A. ()

B. []

C. <>

D. ''

标准答案:A

试题难度:容易

试题解析:创建元组时使用( ),创建列表使用[ ],创建字符串使用' ' 或者 " "。所以本题正确答案为A。

24. 运行以下程序,打印的最后一个数字是?( )

i = 0

while i < 100:

    print(i)

    i = i + 1

A. 98

B. 99

C. 100

D. 101

标准答案:B

试题难度:较难

试题解析:当i小于100时,才会执行循环体中的语句,99是大于100的最大的数字,因此打印的最后一个数字是99。所以本题正确答案为B。

25. 在Python中,下列关于 range() 说法正确的是?( )

A. range()是列表

B. range()是函数,能生成一系列英文字母

C. range()是函数,能生成一系列数字

D. range()是函数,能生成一系列汉字

标准答案:C

试题难度:容易

试题解析:range()函数是Python中一个强大而灵活的内置函数,它主要用于生成一个整数序列。

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

26. for、while和if均可以相互嵌套使用。( )

A. 正确

B. 错误   

标准答案:正确

试题难度:一般

试题解析:for里面可以嵌套while、if,while中也可以嵌套if和for,if语句中同样可以嵌套for和while。

27.

str1='加油!'+'加油!'+'加油!'

str2='加油!'*3

str1和str2是一样的,都是“加油!加油!加油!"( )

A. 正确

B. 错误   

标准答案:正确

试题难度:容易

试题解析:

字符串的*运算,表示字符串的复制

字符串的+运算,表示字符串的连接

 str1='加油!'+'加油!'+'加油!'

 str2='加油!'*3

 str1和str2的结果都是:'加油!加油!加油!'

28. 在编写一个需要用户输入数字(数字为整数)并判断其奇偶性的程序时,可以使用input()函数获取用户输入,并使用int()函数将输入转换为整数类型。( )

A. 正确

B. 错误   

标准答案:正确

试题难度:一般

试题解析:正确。在Python中,input()函数用于获取用户输入的字符串类型的数据,而int()函数可以将字符串转换为整数类型(前提是字符串的内容可以表示为一个整数)。因此,在编写需要判断用户输入数字奇偶性的程序时,可以先使用input()函数获取输入,然后使用int()函数进行类型转换。

29. 执行代码print('今年是%d年,农历%s年。'%(2024,'甲辰')),得到的输出结果为“今年是2024年,农历甲辰年。”。( )

A. 正确

B. 错误   

标准答案:正确

试题难度:较难

试题解析:考察字符串的格式化输出,%d表示该位置为数值,%s表示该部分为字符串,最后的%用于分隔字符串与值。

30. 可以使用index(x)方法获取所有值为x的元素的索引。( )

A. 正确

B. 错误   

标准答案:错误

试题难度:容易

试题解析:可以使用index(x)方法获取第一个值为x的元素的索引。

31. break语句可以跳出所有循环。( )

A. 正确

B. 错误   

标准答案:错误

试题难度:容易

试题解析:break语句可以跳出break语句所在的这层循环。

32. 在if…else…语句中,当if语句不执行时,会执行else语句。( )

A. 正确

B. 错误   

标准答案:正确

试题难度:容易

试题解析:在if…else…语句中,当if语句不执行时,会执行else语句。

33. del语句可以删除整个列表,clear()方法可以清除列表中所有的元素。( )

A. 正确

B. 错误   

标准答案:正确

试题难度:一般

试题解析:在Python的列表操作中,del语句可以删除整个列表,clear()方法可以清除列表中所有的元素。

34. 字典(dictionary)和列表(list)的共同点是都可以通过下标访问内容。( )

A. 正确

B. 错误   

标准答案:错误

试题难度:容易

试题解析:考察字典的概念,字典存储的是键值对,只能通过键值访问。

35. 在Python中,元组是无序不重复的。( )

A. 正确

B. 错误   

标准答案:错误

试题难度:一般

试题解析:元组是由一系列按特定顺序排列的元素组成,元素可以重复。

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

36. 马铃薯也叫土豆,是一种常见的根茎类蔬菜,每个土豆根据重量可以分为以下四个等级:

A类(大土豆)    重量>=50克

B类 (中土豆)  50克>重量>=30克

C类(小土豆) 30克>重量>=20克

D类(微小土豆)重量<20克

不同类别市场批发价格也不同:

A类:1.5元/500克

B类:1.2元/500克

C类:1元/500克

D类:0.7元/500克

阿宝下乡研学期间发现土豆的分类和分拣通常由人工观察,进行大致分类。阿宝想,是否可以做一个自动分拣土豆机,根据土豆的重量结合机械手臂进行自动分拣。

你可以帮助阿宝编写这个程序吗?该程序需要实现以下功能:

(1)录入每个土豆的重量(用来模拟,称重后的读数);假定输入数据是合理范围(都是大于等于0的数字,为了便于计算,要求输入的数据都是整数)

(2)当录入0时,程序停止运行,并打印所有土豆售出后的销售额;(提醒大家,土豆的售价是以500克为单位,每个土豆的价格需要进行换算,换算公式为:每个土豆价格=每个土豆的重量*批发价/500)

(3)销售金额,最终结果保留2位小数

【输入样例】

80

50

90

70

40

30

20

10

20

60

78

65

0

【输入样例】

销售额是:1.74元

友情提示:

由于考试平台暂不支持eval()命令,同学们可以选用其他命令;当然如果您使用了,只要程序是正确的,我们阅卷时依然按照正常处理。

标准答案:

参考程序:

A=[] #>50g

B=[] #30-50g

C=[] #20-30

D=[] #<20

while True:

    weight=int(input())

    if weight==0:

        break

    if weight>=50:

        A.append(weight)

    elif weight>=30:

        B.append(weight)

    elif weight>=20:

        C.append(weight)

    else:

        D.append(weight)

#一斤:500g

total=sum(A)*1.5/500+sum(B)*1.2/500+sum(C)*1/500+sum(D)*0.7/500

print('销售额是:{:.2f}元'.format(total))

试题难度:容易

试题解析:

评分标准:

(1)有输入语句;(2分)

(2)有循环语句,当录入0时,循环可以终止;(3分)

(3)条件判断语句书写正确;(3分)

(4)可以正确的对每类土豆重量求和;(2分)

(5)可以正确计算销售额;(3分)

(6)输出提示语正确,保留两位小数格式正确。(2分)

展示地址:点击浏览

37. 小龙同学有个神奇的优势:只要单词中的字母没有任何重复,他就能过目不忘。如果有重复,他则需要专门记忆。请写一段程序,输入一个单词,如果小龙能过目不忘(即:单词中没有重复的字母)则输出"yes",否则(即:单词中有重复的字母)输出"no"。

样例输入1:

boy

样例输出1:

yes

样例输入2:

test

样例输出2: no

友情提示:

由于考试平台暂不支持eval()命令,同学们可以选用其他命令;当然如果您使用了,只要程序是正确的,我们阅卷时依然按照正常处理。

标准答案:

参考程序:

word = input('请输入一个单词:')

list1 = list(word)

flag = 1

for i in list1:

    if word.count(i)>1:

        flag = 0

if flag:

    print('yes')

else:

    print('no')

试题难度:一般

试题解析:

评分标准:

(1)有输入语句;(2分)

(2)对输入的词语有遍历处理;(2分)

(3)有识别是否有重复字符的程序;(4分)

(4)有条件语句;(2分)

(5)有输出语句;(2分)

(6)程序运行正确。(3分)

作者:Sinsa_SI

物联沃分享整理
物联沃-IOTWORD物联网 » 2024年12月中国电子学会青少年软件编程(Python)等级考试试卷(二级)答案 + 解析

发表回复