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

2023-03 Python二级真题
分数:100  
题数:37
测试时长:60min

一、单选题(共25题,共50分)
1.    下列说法正确的是?( C)(2分)
A.{123:’a’,’a’:123}不是一个合法的字典
B.数字、字符串、列表和元组都可以作为字典的键
C.{(12,34,’a’):’a’,’a’:5678}是一个合法的字典
D.字典中的内容一经创建就不能再修改

2.    下列程序的运行结果是?(D)(2分)

d1=dict(age=18)
print(d1)
 


A.(age=18)
B.[age=18]
C.age=18
D.{‘age’: 18}

3.    

datas={'Name':'XiaoMing','No':'1001','Age':'14','School':'ShiYan XueXiao'}

,表达式len(datas)的值是?(C)(2分)
A.8
B.6
C.4
D.2


4.    下列哪个是一个合法的列表?(C )(2分)
A.(191,98,1,0)
B.”1919,810″
C.[19,19,8,10]
D.{19,’19’,8,10}

5.    运行下列程序,输出的结果是?( C)(2分)

list4=['1',3,'5',7,'2,3']
list4.append('7')
print(len(list4)) 


A.4
B.5
C.6
D.7

6.    已知list7列表list7=[-3,6,3,7,5,-4,10],执行sort()方法对此列表进行排序之后,list7列表的第二个元素是?(B )(2分)
A.-2
B.-3
C.2
D.5

7.    已知列表list9=[11,4,514,191,9,81,0],下列说法错误的是?(D )(2分)
A.print(min(list9))可以输出列表的最小值,输出结果为0
B.print(max(list9))可以输出列表的最大值,输出结果为514
C.print(list9.index(191))可以输出数值191第一个匹配项的索引位置,输出结果为3
D.list9.remove()可以移除列表中的最后一个元素

8.    下列说法正确的是?( D)(2分)
A.’0123456’是一个长度为6的字符串
B.在Python中,可以用乘号’*’把两个字符串连接起来
C.’What’s this?’是一个合法的字符串
D.’*’是一个合法的字符串

9.    下列说法错误的是?( C)(2分)
A.while语句通常用于重复执行某一段程序
B.break语句可以跳出for和while的循环体
C.在Python中可以使用do..while循环
D.if语句通常用于执行条件判断

10.    运行下列程序,共计输出了几个banana?(B )(2分)

for i in range(3,9,3):
    print("banana")
 


A.1
B.2
C.3
D.4

11.    运行下列程序,输出的结果是?(A )(2分)

x=0;y=0;a=2023
for i in range(a):
    if ((i%2)==0):
        x=x-1
    else:
        y=y+1
print(x+y)
 


A.-1
B.1
C.0
D.2023

12.    已知ls=[20,30,50,10,90],以下选项中,不能删除元素90的是?(D )(2分)
A.ls.pop(-1)
B.del ls[-1]
C.ls.remove(ls[-1])
D.ls.remove(-1)

13.    下列代码的输出结果是?(C )(2分)

ls=[2023,'Happy',['Good','Luck']]
print(ls[2][1])


 
A.Happy
B.Good
C.Luck
D.o
答案解析:此题考核二维列表元素值的访问,ls[2]的值是[‘Good’,’Luck’],ls[2][1]表示引用ls[2]列表的下标为1的元素,因此结果应为Luck

14.    下列程序的输出结果是?(注意:0后面是两个单引号”,并非双引号)(D)(2分)

ls=[0,'',{},None,(),[],'empty']
print(len(ls))
 


A.2
B.3
C.6
D.7
答案解析:空列表、空字符串、空元组、空字典都可以作为列表元素,对应的数据类型值为空,并不意味着不存在,因此也是列表的一个元素,所以列表长度为7

15.    ls=[‘富强’,’民主’,’文明’,’和谐’,’自由’,’平等’,’公正’,’法治’],下列切片结果为[‘和谐’, ‘平等’]的选项是?(B )(2分)
A.ls[-5:-2:-2]
B.ls[-5:-2:2]
C.ls[4:-3:1]
D.ls[4:-2:2]
答案解析:此题考核列表切片,ls[起点:终点:步长],步长为正,从起点到终点的切片方向为从左向右;步长为负,从起点到终点的切片方向为从右向左,步长数值为1表示切片时获取元素为逐个获取,步长为2,表示获取元素时,两个相邻元素下标差为2,(即隔一个取一个),步长为3表示对列表切片时获取列表元素隔2个取1个,以此类推。

16.    下列代码的执行结果是?( D)(2分)

mylist=['Failure','is','the','mother','of','success']
for x in mylist[:]:
    if len(x)<=3:
        mylist.append(x)
print(mylist)
 


A.[‘Failure’,’is’,’the’,’mother’,’of’,’success’]
B.[‘Failure’,’is’,’the’,’mother’,’of’,’success’,’of’,’is’]
C.[‘Failure’, ‘is’, ‘the’, ‘mother’, ‘of’, ‘success’, ‘is’, ‘of’]
D.[‘Failure’, ‘is’, ‘the’, ‘mother’, ‘of’, ‘success’, ‘is’, ‘the’, ‘of’]
答案解析:此题循环获取列表mylist的全切片后判断每个元素的长度,长度小于并等于3时,添加到mylist中,因此结果为[‘Failure’, ‘is’, ‘the’, ‘mother’, ‘of’, ‘success’, ‘is’, ‘the’, ‘of’]

17.    创建元组错误的是?(C )(2分)
A.tp=(‘a’,)
B.tp=(”,[],20) 备注:这里是单引号
C.tp=(25)
D.tp=1,2,3
答案解析:tp=(25)等价于tp=25

18.    列表和元组都是序列对象,列表和元组的区别是?(B )(2分)
A.元组的元素只能是不可变数据类型,例如:整型、浮点型、字符串、元组
B.元组一旦创建不可以修改
C.列表可以切片,元组不能切片
D.元组之间的元素不能用逗号进行分隔

19.    请问下列四个表达式中,哪个表达式的值与其他三个表达式的值不同?(D )(2分)
A.’字符串’+’运算’
B.”.join([‘字符串’,’运算’])
C.‘字符串运算’*1
D.’字符串’-’运算’
答案解析:’字符串’-’运算’表达式错误,其他选项结果均为“字符串运算”

20.    Python解释器中执行如下代码:

'{2},{0},{1}'.format('You','need','Python')


结果是?(B)(2分)
A.‘Python, need, You’
B.’Python,You,need’
C.‘need,You,Python’
D.‘need,Python,You’
答案解析:format函数输出多个值时,可以通过下标指定占位符的顺序,多个元素下标从0开始编号。

21.    下列代码执行的结果是?( B)(2分)

dic={'聊天机器人':'GhatGPT','搜索引擎':'百度','浏览器':'Google'}
for x in dic:
    print(x,end=' ')


A.GhatGPT 百度 Google
B.聊天机器人 搜索引擎 浏览器
C.[‘GhatGPT’,’百度’,’Google’ ]
D.[(‘聊天机器人’,’GhatGPT’),(‘搜索引擎’,’百度’),(‘浏览器’,’Google’ )]

22.    不能输出0~10之间所有奇数的程序是?(D )(2分)
A.

a = 0
while a<10:
    if a%2 == 0:
        a = a + 1
        continue
    print(a,end=' ')
    a = a + 1


B.

for a in range(0,11):
    if a%2 != 1:
        continue
    print(a,end=' ')

C.

for a in range(0,11):
    if a%2 == 0:
        continue
    print(a,end=' ')

D.

a = 0
while a<10:
    if a%2 == 1:
        break
    a = a + 1
    print(a)

23.    

a=int(input())
if a<10:
    res=a+2
elif a<50:
    res=a-2
elif a<80:
    res=a*2
else:
    res=a//2
print(res)


程序运行时,输入60,程序执行的结果是?(C )(2分)
A.62
B.58
C.120
D.30
答案解析:输入‘60’,转换为整数60,满足 60>=50 并且a<80,将60*2的值赋值给res,所以结果是120。

24.    

n,t=10,0
while n!=0:
    n=n-1
    t=t+n


以上代码运行后t的值是?( B)(2分)
A.36
B.45
C.50
D.55

25.    已知元组tup2=(114,5,14,191,9810),下列说法错误的是?(B )(2分)
A.print(tup2[1:-2])可以截取元组的一部分,输出的结果为(5,14)
B.print(tup2[2:])可以截取元组的一部分,输出的结果为(5,14,191,9810)
C.print(tup2[2:3])可以截取元组的一部分,输出的结果为(14,)
D.print(tup2[3])可以访问元组的第四个元素,输出的结果为191
答案解析:print(tup2[2:])可以截取元组的一部分,输出的结果为(14,191,9810)

二、判断题(共10题,共20分)
26.    pop()方法可以清空列表。( 错)
答案解析:clear()方法可以清空列表。pop()方法可以移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

27.    元组要用方括号[]括起来。( 错)

28.    (152,4.06,’20&#!^*3′,’4.(..$57!’)是一个合法的元组。( 对)

29.    执行print(“\’he” in “\’hello world\\”)的输出结果为True。( 对)
答案解析:in是成员运算符,如果字符串中包含给定的字符,则返回True

30.    if语句的条件后面要使用花括号{}表示接下来是满足条件后要执行的语句块。( 错)
答案解析:if语句的条件后面要使用冒号:表示接下来是满足条件后要执行的语句块

31.    break语句不能在循环体之外使用。( 对)
答案解析:在Python中,break语句只能在循环体里使用,不能在循环体之外使用

32.    字符串和元组是不可变对象,列表和字典是可变对象。( 对)

33.    下列程序段中循环一共执行了6次。(对 )

for i in range(10,-1,-2):
    print(i)

34.    if语句的表达式为空字符串、空列表、空元组、空字典和数字0都等价于False.(对 )

35.    字典值可以是任何的 Python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。(对)

三、编程题(共2题,共30分)
36.    某快递公司对于邮寄的包裹有尺寸要求,必须满足以下条件:
每件包裹的长、宽、高之和须小于或等于200厘米,且任意一边长度必须小于或等于80厘米。(假设所有包裹都是长方体)
编写一个重复执行的程序,可以实现自动判断包裹是否符合要求。
具体要求如下:
(1)用户以厘米为单位按顺序分别输入包裹的长、宽、高(用户只输入大于零的数字,不输入长度单位,可以输入小数;分多次输入还是一次输入不做要求);
(2)程序自动判断用户输入的包裹尺寸是否满足此快递公司的要求;
(3)如果满足要求,就输出”可以邮寄”;
(4)如果不满足要求,就输出”不可以邮寄”;
(5)重复以上操作。

#参考程序1:#使用嵌套if判断
while True:
    a=float(input('请输入长(厘米):'))
    b=float(input('请输入宽(厘米):'))
    c=float(input('请输入高(厘米):'))
    sum=a+b+c
    if sum<=200:
        if a<=80:
            if b<=80:
                if c<=80:
                    print('可以邮寄')
                else:
                    print('不可以邮寄')
            else:
                print('不可以邮寄')
        else:
            print('不可以邮寄')
    else:
        print('不可以邮寄')
#参考程序2:

#使用and逻辑运算
while True:
    a=float(input('请输入长(厘米):'))
    b=float(input('请输入宽(厘米):'))
    c=float(input('请输入高(厘米):'))
    sum=a+b+c
    if sum<=200 and a<=80 and b<=80 and c<=80:
        print('可以邮寄')
    else:
        print('不可以邮寄')

评分标准:
(1)能正确地要求用户分别输入长、宽、高;(2分)
(2)能正确地将用户输入的字符串转换为float或double类型;(1分)
(3)使用至少一个if判断;(2分)
(4)能正确判断包裹尺寸是否符合要求并输出正确的结果;(3分)
(5)程序可循环运行。(2分)

37.    编写程序帮老师对英语试卷中的英文字母、数字和其他字符(注意:包括空格)进行分类并统计每种字符的数量。

输入样例:
**Welcome to 2023~!

输出样例:
字母:Welcometo,共9个

数字:2023,共4个

其它字符:**  ~!,共6个

#参考程序1:

s=input()
letter=''
number=''
other=''
for i in s:
    if i>='a' and i<='z' or i>='A' and i<='Z':
        letter+=i
    elif i>='0' and i<='9':
        number+=i
    else:
        other+=i
print('字母:{},共{}个'.format(letter,len(letter)))
print('数字:{},共{}个'.format(number,len(number)))
print('其它字符:{},共{}个'.format(other,len(other)))
#参考程序2:

s=input()
letter=''
number=''
other=''
for i in s:
    if i.isalpha():
        letter+=i
    elif i.isdigit():
        number+=i
    else:
        other+=i
print('字母:{},共{}个'.format(letter,len(letter)))
print('数字:{},共{}个'.format(number,len(number)))
print('其它字符:{},共{}个'.format(other,len(other)))

评分标准:
(1)能正确输入字符串;(2分)
(2)能正确遍历字符串中的每个字符;(3分)
(3)能正确判断字符是否为英文字母;(2分)
(4)能正确判断字符是数字字符;(2分)
(5)能正确判断字符是除字母和数字字符以外的其他字符;(2分)
(6)能正确输出字符串分类的结果,其中每项1分;(3分)
(7)能正确统计字母、数字和其他字符个数,其中每项1分;(3分)
(8)输出格式正确。(3分)

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2023年6月25日
下一篇 2023年6月25日

相关推荐