【免费】中国电子学会2024年03月份青少年软件编程Python等级考试试卷二级真题(含答案)

2024-03 Python二级真题

分数:100

题数:37

测试时长:60min

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

  1. 期末考试结束了,全班的语文成绩都储存在列表score中,班主任老师请小明找到全班最高分,小明准备用Python来完成,以下哪个选项,可以获取最高分呢?( B)(2分)

A. min(score)

B. max(score)

C. score.max()

D. score.min()

答案解析:max() 函数可以获取列表中的最大值,比如:score = [88, 78, 92, 85], max(score) 的值就是最大的元素:92

  1. 已知列表a = [1,2,3,4,5,6],想输出[2,3,4],可以使用以下哪个语句?( C)(2分)

A. print(a[2:4])

B. print(a[2:5])

C. print(a[1:4])

D. print(a[0:4])

答案解析:列表切片,包括左端,不包括右端,同时,列表的第1个元素的下标为0,所以正确的开头和结尾的下标分别为1和4,所以选C

  1. 第一小组成员姓名和年龄如下dic1 = {'张明':12,'李红':12,'王长江':13}现新增成员龙小勤,年龄为13,以下代码正确的是?( A)

A. dic1['龙小勤'] = 13

B. ['龙小勤'] = 13

C. dic1.['龙小勤'] = 13

D. dic1('龙小勤') = 13

答案解析:字典新增key和value的方法: dic1['key']=value

  1. 已知列表 ls = list(range(3,33,3)),则 ls 第5个元素是?(A )(2分)

A. 15

B. 18

C. 21

D. 24

答案解析:本题主要考察的实range()的使用,本题中 ls 的元素有从3开始,到33结束(不包含33),步长为3的元素构成,即:[3, 6, 9, 12, 15, 18, 21, 24, 27, 30],所以第5个数为:15

  1. 执行如下代码,tuple不属于元组的选项是?(B )(2分)

A. tuple = ()

B. tuple = ('北京')

C. tuple = ('芜湖',)

D. tuple = ('北京', '芜湖', '合肥', '上海')

答案解析:当赋值运算创建的元组只有一个元素时,需要在该元素后面补齐逗号","以表明这是元组。若不补齐这个逗号,它便不是一个元组。选项A为一个空元组。所以选B。

  1. 已知 festival = {"正月初一":"春节", "正月十五":"元宵节", "五月初五":"端午节", "八月十五":"中秋节"},则输出 "正月初一" 对应节日的代码是?( B)(2分)

A. print(del festival["正月初一"])

B. print(festival["正月初一"])

C. print(festival.clear())

D. print(festival[1])

答案解析:由于字典没有下标,不能通过下标来进行值的访问,只能通过键来进行访问,对于字典d,d[k]的作用是返回d中键k所对应的值(k为键)。

  1. 已知列表name=["德丽莎"],运行以下哪段代码,可打印出结果"德丽莎天下第一可爱!"(不包含双引号)?(C)( 2分)

A. print(name+"天下第一可爱!")

B. print(name[1]+"天下第一可爱!")

C. print(name[0]+"天下第一可爱!")

D. print(name+天下第一可爱!)

答案解析:"德丽莎"是列表的第1个元素,其索引值为0,故为name[0];列表不能直接和字符串相加,但列表元素可以和字符串相加。故正确答案为C。

  1. k为整型,下述while循环执行的次数为?(B )(2分)
python 复制代码
k = 20

while k >1 :

    print(k)

    k=k//2

A. 3

B. 4

C. 5

D. 6

答案解析:k=20,每次执行k=k//2,k循环过程中的值依次变化为:20,10,5,2,1,当k=1时,循环条件k>1不成立,退出循环,故循环共计4次。正确答案为B。

  1. 以下程序的输出结果是?(D )(2分)

ls1=list()

ls2=['吉林','黑龙江','辽宁','东北三省']

ls1+=ls2

ls1.clear()

print(ls1)

A. ['吉林','黑龙江','辽宁']

B. ['吉林','黑龙江','辽宁','东北三省']

C. 终端区会报错

D. []

答案解析:列表中清空clear()函数的使用,其功能为清空列表中的所有元素,需要与del方法区分。

  1. 已知列表ls=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],以下哪个选项无法将列表ls逆序排列?( C)(2分)

A. ls.sort(reverse=True)

B. sorted(ls,reverse=True)

C. sort(ls,reverse=True)

D. ls[::-1]

答案解析:选项sort(ls,reverse=True)语法错误,sort()函数使用错误,正确的用法为:升序:ls.sort()降序:ls.sort(reverse=True)

  1. 已知字典jd={'哈尔滨':['冰雪大世界','侵华日军第七三一部队罪证陈列馆','太阳岛','中央大街'],'沈阳':['沈阳故宫','辽宁省博物馆','张学良旧居','清昭陵'],'长春':['伪满皇宫博物院','净月潭','长影世纪城','长春一汽']},字典jd的长度是?(A )(2分)

A. 3

B. 4

C. 12

D. 15

答案解析:字典的元素是由键值对组成,键和值之间用冒号分隔,一个键和其值构成一个键值对,字典的长度等于其键值对的个数。因此该字典的长度为3

  1. 以下哪段程序的运行结果无法打印1-100之间所有整数的和?(A )(2分)

A. print(sum(range(1,100)))

B.

i=1

he=0

while i<=100:

he+=i

i+=1

print(he)

C.

he=0

for i in range(1,101):

he+=i

print(he)

D. print(sum(range(1,101)))

答案解析:print(sum(range(1,100))) range()函数的边界值100没有取到,程序将打印1-99之间的和。

  1. 小明的篮球教练告诉小明,如果他能连续投中 3 次中投,并且换手运球 100 次,就可以让他加入球队,请问教练的要求,可以用哪个逻辑运算符来表示?( B)(2分)

A. or

B. and

C. not

D. !=

答案解析:教练对于小明的两个要求需要都成立才可以加入球队,因此可以用 and 来表示。

  1. 某小学1-6年级都各有8个班,将年级和班级数存入如下列表: lst=[['一年级', '二年级', '三年级', '四年级', '五年级', '六年级'], ['1班', '2班', '3班', '4班', '5班', '6班', '7班', '8班']] 请问下列选项中能正确打印出 '四年级6班'(不含引号)(2分) 的字样的是哪一个?(D )

A. lst[0][4]+lst[1][5]

B. lst[0][4]+lst[1][6]

C. print(lst[0][4]+lst[1][6])

D. print(lst[0][3]+lst[1][5])

答案解析:题中列表lst为嵌套列表,'四年级'为lst[0][3],'6班'为lst[1][5],打印完整的'四年级6班'需将两个字符串连接起来并打印,即答案为 print(lst[0][3]+lst[1][5])

  1. 如果有一个变量name = "小明",现在需要另一个变量str中使用name变量的值,并且想要在这个值后面加上"同学"两个字,应该怎么做?(B )(2分)

A. str = "同学".add(name).add("同学")

B. str = name + "同学"

C. str = "同学" . name . "同学"

D. str = name.append("同学")

答案解析:在Python中,可以使用加号+来连接字符串。因此,将name变量的值以及另一个 "同学" 用 "+" 连接起来,就能满足本题要求。

  1. 小明在做数学题,题目要求找出来从1数到100中不能被7整除的数字(即跳过7的倍数不显示)(2分)。以下哪个Python循环可以帮他完成这个任务?( A)

A.

python 复制代码
i = 1 

while i <= 100: 

    if i % 7 != 0: 

        print(i) 

    i += 1

B.

python 复制代码
i = 1 

while i >= 100: 

    if i % 7 != 0: 

        print(i) 

    i += 1

C.

python 复制代码
i = 1 

while i <= 100: 

    if i % 7 == 0: 

        break 

    print(i) 

    i += 1

D.

python 复制代码
for i in range(1, 101): 

    if i % 7 == 0: 

        print(i) 

    else: 

        continue

答案解析:正确答案为A。选项A使用for循环数到100,并在遇到7的倍数时使用continue语句来跳过这些数。选项B使用while循环的时候判断范围出错。选项C使用了break语句,将在遇到第一个7的倍数时终止整个循环。选项D中的else: continue是多余的,并且判断语句为i % 7 == 0打印7的倍数,因此错误。

  1. 已知字符串str="Happy new year",则执行命令print(list(str))的输出结果是?( C)(2分)

A. ['H', 'a', 'p', 'p', 'y', 'n', 'e', 'w', 'y', 'e', 'a', 'r']

B. [H,a,p,p,y,n,e,w,y,e,a,r]

C. ['H', 'a', 'p', 'p', 'y', ' ', 'n', 'e', 'w', ' ', 'y', 'e', 'a', 'r']

D. [H,a,p,p,y, ,n,e,w, ,y,e,a,r]

答案解析:list()函数将字符串str转换为了列表类型,列表内的元素应该是各个字母字符,故选项B和D错误;字符串中的空格也应被转换成一个列表元素,不应被忽略,故选项A错误,故本题答案为选项C。

  1. 已知元组tuple = (1,2,3,4,5),以下语句正确的是?(A )(2分)

A. t = tuple[2]

B. tuple[2] = '6'

C. tuple.append(6)

D. tuple.pop()

答案解析:元组与字符串一样,是不可修改的,只能对其进行访问操作,不能对元组中的元素进行修改、添加、删除操作,故选项B、C、D错误,本题的正确答案为选项A。

  1. 以下关于字典的说法不正确的是?(D )(2分)

A. 字典中的值不支持索引查询

B. 字典以关键字为键,关键字可以是任意不可变数据类型

C. 字典里面的值(不是键)可以包含列表和其他数据类型

D. 字典是一种有序的对象集合,可以用下标进行访问

答案解析:字典是以键值对保存的数据,不支持索引,只能通过键的形式查找,是一种无序的对象集合,无法用下标进行访问,故选项D错误,所以本题答案为选项D。

  1. 创建列表时,使用下列哪个符号?(B )(2分)

A. ()

B. []

C. <>

D. ''

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

  1. 运行下列程序,要想输出的结果是小明的身高是1.55。横线处需要填入的代码为?( D)(2分)

height = 1.55

print('小明的身高是____。' % height)

A. %d

B. %f

C. %.f

D. %.2f

答案解析:字符串的格式化输出使用%f为浮点数占位,要输出1.55,需要保留两位小数,在%后面加上 .2 表示保留两位小数。所以本题正确答案为D。

  1. 关于分支结构的说法错误的是?(C )(2分)

A. 在Python中,分支结构一般由if、elif、else组成

B. 在Python中,分支结构一般有单分支结构、双分支结构和多分支结构

C. 在Python中,分支结构必须包含else语句

D. 在Python中,if语句后面跟条件表达式

答案解析:在Python中,分支结构的else语句可以省略。所以本题正确答案为C。

  1. 春节(Spring Festival)(2分),是中国民间最隆重最富有特色的传统节日之一。春节民俗众多,以下列表保存了春节的常见民俗,list_sf = ['喝腊八粥', '祭灶神', '扫尘', '贴春联', '除夕守岁', '吃饺子', '拜年', '逛庙会'],上面民俗中少了非常重要的一项:压岁钱。下列哪一项能将"压岁钱",存入 list_sf 列表中 "吃饺子" 元素的后面?(C )

A. list_sf.insert(0, '压岁钱')

B. list_sf.insert(5, '压岁钱')

C. list_sf.insert(6, '压岁钱')

D. list_sf.insert(7, '压岁钱')

答案解析:list_sf.insert(6, '压岁钱')中的两个参数分别代表插入位置的下标和插入的元素。本题目中应该插入到下标为6的位置。

  1. 定义元组 tup1 = ('快乐', '你好', '生日', '中国', '祖国', '祝福'),执行语句:print( tup1[-5] + tup1[3] ),得到的结果是?( D)(2分)

A. 你好祖国

B. 生日快乐

C. 祝福祖国

D. 你好中国

答案解析:考察元组的访问方法,能正确理解正索引和负索引的区别。

  1. 下列说法中,错误的是?( D)(2分)

B. 如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行

C. continue 语句被用来告诉 Python 跳过当前循环中的本次循环,然后继续进行下一次循环

D. Python中的for循环可以使用else语句来在迭代完成后执行特定操作。当for循环正常结束时(没有被break或者return等提前退出),不会执行else语句下面的代码。

A. break 语句可以跳出 for 和 while 的循环体

答案解析:考察for循环中的else子句,当for循环正常结束时(没有被break或者return等提前退出),会执行else语句下面的代码。故选择D。

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

  1. 元组中的元素可以是不同的数据类型。( 对)

  2. for循环能实现的功能,while循环也可以实现。(对 )

  3. 死循环无法退出,没有任何作用。( 错)

答案解析:考察对死循环的理解,死循环有办法退出,也有相应的作用。

  1. 通过以下代码,可以访问列表age中的每一个元素。(错 )
python 复制代码
age=[15,18,16,19,19]

for it in age:

    print(age[it])

答案解析:第二行:for it in age: 本身就已经把列表中的所有元素已取回并赋值给it,可通过print(it)遍历列表age中的每一个元素。

  1. 'ya'*3的返回值为'yayaya'。类比数学的逆运算,'yayaya'/3的结果是'ya'。( 错)

答案解析:字符串不能进行除法操作,代码会报错。

  1. 在Python中,可使用d1={}的方式,创建一个空字典。( 对)

答案解析:在python中,可使用一对大括号完成一个空字典的创建。

  1. 表达式(1,2,3)(2分)==(3,2,1)的结果是True。( 错)

答案解析:元组是有序的,(1,2,3)和(3,2,1)不同,表达式(1,2,3)==(3,2,1)的结果是False。

  1. '星期'+4的结果是'星期4'。( 错)

答案解析:字符串和数字类型拼接,程序会报错。

  1. 条件判断语句if 's' in 'string':与if s in 'string':是等效的,结果也一定是一样的。( 错)

答案解析:'s'是字符常量,s是变量,所以这两个if语句的效果是不同的,如果是将字符串's'赋值给变量s,这两个结果才可能一样。故本题描述错误。

  1. 每条if语句的核心都是一个值为True或False的表达式,这种表达式为条件语句。( 对)

答案解析:if 语句后面必须要有一个条件语句

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

  1. 请编写程序求一个长方形周长和面积的计算器。

要求:

(1)用户从控制台输入长和宽(有可能是小数,单位是厘米);

(2)如果用户输入的数不大于0(不考虑浮点数之外的数据类型),显示信息:"输入有误,请重新输入!";

(3)输出长方形的周长和面积,结果保留两位小数,并注明哪个是周长,哪个是面积。

提示:

周长公式:周长=(长+宽)*2

面积公式:面积=长*宽

参考程序:

python 复制代码
chang = float(input('请输入长方形的长:'))

kuan = float(input('请输入长方形的宽:'))

if chang <=0 or kuan <= 0:

    print("输入有误,请重新输入!")

else:

    zhouchang = (chang+kuan) * 2

    mianji = chang * kuan

    print("周长是:{:.2f}厘米".format(zhouchang))

    print("面积是:{:.2f}平方厘米".format(mianji))

评分标准:

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

(2)有类型转换语句;(2分)

(3)有条件判断语句;(2分)

(4)有周长和面积计算语句;(4分,每个2分)

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

(6)面积和周长计算正确;(2分,每个1分)

(7)最后输出的格式符合要求。(1分)

  1. 某小学女篮校队招募新成员,要求加入女篮校队的成员身高在135厘米以上(不含135厘米)(2分)。本次报名的人员有10人,她们的身高分别是125、127、136、134、137、138、126、135、140、145。请问本次女篮校队能够招募多少新成员,并将新成员的身高按照从矮到高的身高排序输出?

要求:

(1)必须使用列表或者元组;

(2)输出格式:"女篮校队新增成员数目:*,她们的身高从矮到高分别是:**"(注:*代表女篮校队招募的新成员数目;**代表从矮到高新成员的身高。)

标准答案:

参考程序:

python 复制代码
ht1=[125,127,136,134,137,138,126,135,140,145]

ht2=[]

ct=0

for i in ht1:

    if(i>135):

        ct+=1

        ht2.append(i)

ht2.sort()

print("女篮校队新增成员数目:{},她们的身高从矮到高分别是:{}".format(ct,ht2))

答案解析:

评分标准:

(1)创建非空列表/元组,存储原始数据;(2分)

(2)创建空列表;(1分)

(3)计数思想,并且将计数器进行了初始化;(2分)

(4)有循环语句;(2分,即正确使用for或者while)

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

(6)能够使用列表的追加元素函数或者方法向列表中增加元素;(2分)

(7)能够使用列表的排序函数或者方法对列表元素排序;(2分)

(8)能够按照正确的格式打印输出。(2分)

相关推荐
打小就很皮...18 小时前
ShowCountCard 功能迭代:新增周月对比属性,完善数据可视化场景
前端·react.js·信息可视化
IT_陈寒19 小时前
Redis性能翻倍的7个冷门技巧:从P5到P8都在偷偷用的优化策略!
前端·人工智能·后端
B站计算机毕业设计之家19 小时前
深度学习实战:python动物识别分类检测系统 计算机视觉 Django框架 CNN算法 深度学习 卷积神经网络 TensorFlow 毕业设计(建议收藏)✅
python·深度学习·算法·计算机视觉·分类·毕业设计·动物识别
程序猿小D19 小时前
【完整源码+数据集+部署教程】 【运输&加载码头】仓库新卸物料检测系统源码&数据集全套:改进yolo11-DRBNCSPELAN
python·yolo·计算机视觉·目标跟踪·数据集·yolo11·仓库新卸物料检测系统
Moonbit19 小时前
MoonBit Meetup 丨 手把手带你走进 AI 编程新世代
前端·后端·程序员
携欢19 小时前
PortSwigger靶场之 CSRF where token is not tied to user session通关秘籍
前端·csrf
SiYuanFeng19 小时前
《Synthetic Visual Genome》论文数据集的预处理
python·场景图
MUTA️19 小时前
python中进程和线程
python
执剑、天涯19 小时前
通过一个typescript的小游戏,使用单元测试实战(二)
javascript·typescript·单元测试
jie*19 小时前
小杰深度学习(seventeen)——视觉-经典神经网络——MObileNetV3
人工智能·python·深度学习·神经网络·numpy·matplotlib