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

2022-06 Python二级真题

分数:100

题数:37

测试时长:60min

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

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

tup1=('苏炳添','谷爱凌','北京冬奥会','2022')tup2=(201,8,4,21,155,255,22)

print(tup1[-1::-2],sum(tup2))

A.('2022','谷爱凌')666

B.'2022','谷爱凌'666

C.'2022','北京奥运会'666

D.('2022',)666

答案解析:本题考查元组的截取操作和求和运算,反向截取的元组tup1的全部元素,步长为2返回的值分别是'2022','谷爱凌',求和运算tup2结果为666,所以正确答案为A。考生答案:A

2.下列关于if-else中的代码块说法正确的是?(A)(2分)

A.缩进是Python分支语句的语法部分,缩进不正确会影响分支功能。

B.if语句中条件表达式可以省略不写。

C.代码块是固定的内容,一旦写入不能修改。

D.if-else结构是不可以嵌套的。

答案解析:此题考查对条件语句的理解,代码块一定要缩进,否则会报错。if语句后面跟随条件表达式不可以省略,代码块中的程序,代码块中的程序,可随时根据需求变化更改,也同样是可以嵌套if-else语句的,故选择A。

3.下列哪个是一个合法的列表?(B)(2分)

A.(114,5,1,4)

B.['114','514']

C."11,45,1,4"

D.{11,'4',5,14}

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

list4=['1','3','5']

list4.append('7')

print(len(list4))

A.2

B.3

C.4

D.5

答案解析:append()方法给list4列表添加了一个列表项,所以len(list4)的输出结果为4考生答案:C

5.已知列表list9=[114,5,14,1,91,98,10],下列说法错误的是?(C)(2分)

A.print(max(list9))可以输出列表的最大值,输出结果为114

B.print(min(list9))可以输出列表的最小值,输出结果为1

C.print(list9.index(98))可以输出数值98第一个匹配项的索引位置,输出结果为6

D.list9.pop()可以移除列表中的最后一个元素

6.小明将小组的50米跑步成绩存入列表s,s的值为[11.5,11.4,11.6,11.2,12.0,11.5],则执行s.sort()语句后,s的值是?(B)(2分)

A.[11.5,11.4,11.6,11.2,12.0]

B.[11.2,11.4,11.5,11.5,11.6,12.0]

C.[12.0,11.6,11.5,11.5,11.4,11.2]

D.[11.2,11.4,11.5,11.6,12.0]

7.若s=["中国","Iloveyou",[2022,100]],则len(s)的值是?(A)(2分)

A.3

B.4

C.2022

D."中国"

8.小明用元组a存储自己喜欢吃的水果,a=("apple","banana","orange","banana","pear"),则a.index("banana")的值是?(B)(2分)

A.0

B.1

C.2

D.3

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

d={"王明":178,"张华":158,"于飞":189,"刘英":164}

d["张华"]=162

print(d)

A.{'王明':178,'张华':158,'于飞':189,'刘英':164}

B.{''张华':162}

C.{'王明':178,'张华':162,'于飞':189,'刘英':164}

D.{'王明':178,'张华':158,'于飞':189,'刘英':164,'张华':162}

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

for i in range(1,5,2):

   print(i)

A.

1

2

3

4

5

B.

1

2

3

4

C.

0

2

4

D.

1

3

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

lis1=["a","e","i","o","u"]

strword='helloworld'

lis2=[]

for i in strword:

if inotinlis1:

   lis2.append(i)

   print(lis2)

A.['h','l','l','','w','r','l','d']

B.['h','l','l','w','r','l','d']

C.['e','o','o']

D.['e','','o','','o']

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

lt=["cat",0,1,2,3,4,"tiger",1024]

lt.remove(3)

print(lt)

A.['cat',0,2,4,'tiger',1024]

B.['cat',0,1,4,'tiger',1024]

C.['cat',0,1,2,4,'tiger',1024]

D.['cat',0,1,2,4,1024]

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

for s in "HelloWorld":

   if s=="W":

      continue

   print(s,end="")

A.World

B.Hello

C.Helloorld

D.HelloWorld

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

s='kdk-kldk-dsd'

s=s.split('-')

print(''.join(s))

A.['kdk','kldk','dsd']

B.kdkkldkdsd

C.kdkkldkdsd

D.kdk-kldk-dsd

答案解析:split命令可以将字符串按指定字符分割,结果是一个列表;第2行代码执行后,s中存储的是['kdk','kldk','dsd']。join命令可以将存储着字符串的列表,使用指定字符串连接起来,所以第3行代码执行后,将列表['kdk','kldk','dsd']中的字符串使用空字符串连接,结果是kdkkldkdsd。

15.a=2 b=0,下列不能打印出2022的是?(B)(2分)

A.print('%d%d%d%d'%(a,b,a,a))

B.print(''.join([a,b,a,a]))

C.print("{0}{1}{0}{0}".format(a,b))

D.print('%s%s%s%s'%(a,b,a,a))

答案解析:使用join命令拼接字符串时,不能拼接整数,所以B选项错误。

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

chengyu={'四字成语':'杨柳依依','三字成语':'风马牛','六字成语':'一动不如一静','四字成语':'百里挑一'}

print(chengyu)

A.{'四字成语':'杨柳依依','三字成语':'风马牛','六字成语':'一动不如一静','四字成语':'百里挑一'}

B.字典的键值对不允许重复,运行会报错

C.{'四字成语':'百里挑一','三字成语':'风马牛','六字成语':'一动不如一静'}

D.{'四字成语':['杨柳依依','百里挑一'],'三字成语':'风马牛','六字成语':'一动不如一静'}

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

i=5

while i:

 print(i)

 i=i-1

A.上述代码是死循环,会一直打印

B.上述代码的打印结果是:

5

4

3

2

1

0

C.上述代码的打印结果是:

5

4

3

2

1

D.上述代码的打印结果是:

4

3

2

1

0

18.想要统计数字1在列表number中出现的次数,正确的代码是?(A)(2分)

A.

n=0

for i in range(len(number)):

   if number[i] == 1:

      n += 1

print(n)

B.

n=0

for i in range(len(number)):

   if i == 1:

      n += 1

print(n)

C.

n=0

for i in range(number):

   if number[i]==1:

      n+=1

print(n)

D.

n=0

for i in range(len(number)):

   n+=1

print(n)

19.执行result=[3,2,5]*2语句后,result的值是?(C)(2分)

A.[6,4,10]

B.[3,2,5],[3,2,5]

C.[3,2,5,3,2,5]

D.[9,4,25]

答案解析:[3,5,2]*2是将列表中的元素复制后,添加到列表中,结果是[3,2,5,3,2,5]

20.a=['Welcome','to','Python','World','!'],以下哪条语句无法删除列表a中的元素Python?(C)(2分)

A.dela[2]

B.a.pop(2)

C.a.pop('Python')

D.a.remove('Python')

答案解析:使用pop()函数,从列表中删除并返回一个对象,pop函数的参数为空或要从列表中删除的对象的下标(索引)

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

d={'语文':96,'数学':100,'英语':100,'科学':99}

for x in d:

   print(x,end='')

A.'语文':96'数学':100'英语':100'科学':99

B.96 100 100 99

C.语文 数学 英语 科学

D.[语文'96'数学'100'英语'100,'科学'99]

22.下列说法,错误的是?(A)(2分)

A.字典的键和值可以是任何类型的Python对象

B.字典的键是可以添加和删除的

C.如果字典非空,那么字典每项值的都是一个键值对,格式是key:value

D.字典可以是为空值,通常用{}表示

答案解析:字典中的键必须是不可变数据类型考生答案:B

23.元组同列表那样可以有多个元素,但只能执行如下的哪个操作?(C)(2分)

A.修改

B.添加

C.读取

D.删除

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

s1='student'

s2='school'

s3=s1+s2

print(s3[5:9])

A.ents

B.ntsc

C.entsc

D.ntsch

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

sum=0

for i in range(1,15,2):

   sum=sum+i

   print(sum,i)

A.51 15

B.47 13

C.49 13

D.49 15

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

26.

a=0

whilea<10:

   a+=0.5

   print(a,end="")

打印结果最后的数是10.0。(对)

27.字符串格式化符号%d可以输出格式化浮点数。(错)

28.{'b':[4.9,2.1],(0,136,97):(1.36,11,8),321:{'a':91,55:0}}是一个合法的字典。(对)

29.continue语句不能在循环体之外使用。(对)

30.在Python中,if语句必须包含else命令。(错)

31.list=[]

print(list)

打印空列表会提示错误。(错)

32.列表是用方括号[]表示,元组是用尖括号<>表示。(错)

33.print('今天的最高气温是'+35+'度')+这个符号是起到连接的作用,所以这个代码的输出结果是:今天的最高气温是35度。(错)

34.下列程序是对0~9之间的偶数相累加。(对)

s=0

for i in range(10):

   ifi%2==0:

   s=s+iprint(s)

35.len(tup)可以返回元组tup的长度。(对)

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

36.学过编程的小程同学想帮助医生对核酸检测人群进行分流和统计,根据健康码的颜色分配不同的核酸检测区域:

红码:A区

橙码:B区

绿码:C区等待核酸检测人数众多,但是具体检测人数未知,请你帮小程编写一个程序来协助医生对核酸人群进行人群分流并统计人数。要求如下:

1、字母R代表红码,字母Y代表黄码,G代表绿码:

2、程序运行后根据提示信息输入一个健康码(R、Y、G中之一),输入其他字母提示“输入错误请重新输入”;根据不同的健康码,自动返回区域信息:(红码:A区、橙码:B区、绿码:C区);

3、程序一直在重复运行,但当输入“end”表示检测结束,输出下面信息(见要求4)后程序结束运行;

4、检测结束后输出总人数和对应红码、黄码和绿码的人数。

运行案例如下:

输入样例1:

R

输出样例1:请到A区检测

输入样例2:

Y

输出样例2:请到B区检测

输入样例3:

G

输出样例3:请到C区检测

输入样例4:

end

输出样例4:

检测结束,一共检测*人

红码:*人

黄码:*人

绿码:*人(说明:*代表实际统计的的数字)

参考程序:

r = 0

y = 0

g = 0

while True:

    a = input("根据健康码的颜色,请输入健康码(R、Y、G中之一):")



    if a == 'end':

        print('检测结束,一共检测{}人'.format(r+y+g))

        print('红码:{}人\n黄码:{}人\n绿码:{}人'.format(r, y, g))

        break

    elif a == 'R':

        r += 1

        print('红码请到A区检测')

    elif a == 'Y':

        y += 1

        print('黄码请到B区检测')

    elif a == 'G':

        g += 1

        print('绿码请到C区检测')

    else:

        print('输入错误请重新输入')

评分标准:

(1)有无限循环语句;(2分)

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

(3)有break语句;(2分)

(4)当输入错误时,可以正确的输出判断结果(提示输入有错);(2分)

(5)当输入字母R、Y或G时,可以正确的提示检测区域;(6分,正确显示A区2分,正确显示B区2分,正确显示C区2分)

(6)当输入“end”时,可以正确地输出提示信息(显示相关统计数据),可以正确的终止循环;(4分。其中正确输出提示2分,正确终止循环2分)

(7)程序结果正确。(2分)

37.设计一个海龟绘图程序,程序效果如下图。要求:

(1)程序开始后,弹出对话信息“请输入边数:”,要求用户输入所要绘制的图形的边数;

(2)海龟从里往外绘制图形,逆时针旋转(向左);

(3)线条初始长度为15,相邻两条边相差5(每一个线条均比前一个线条长5);

(4)线条颜色顺序依次为红色、蓝色、橘色、绿色('red','blue','orange','green')四个颜色组成的列表(必须使用列表方式进行读取);

(5)总共边数符合输入给定的数字。

# 参考程序1:

import turtle

pen_color = ['red', 'blue', 'orange', 'green']

length = 15

jd = 90

i = 1

n = int(input('请输入一共画出多少条边'))

while i < n+1:

    turtle.pencolor(pen_color[i % 4])

    turtle.forward(length)

    turtle.left(jd)

    length = length+5

    i = i+1

turtle.done()

# 参考程序2:

import turtle

pen_color = ['red','blue','orange','green']

length = 15

n = int(input('请输入一共画出多少条边:'))

for i in range(n):

    turtle.pencolor(pen_color[i % 4])

    turtle.forward(length)

    turtle.left(90)

    length = length+5

turtle.done()

评分标准:

(1)能导入海龟模块;(2分)

(2)能将画笔颜色设置在列表中;(1分);绘画中能够正确的使用列表中的画笔颜色(1分);

(3)画出的边数和输入的边数相符;(2分)

(4)实现每次线条长度加5;(2分)

(5)实现程序效果。(2分)

你可能感兴趣的:(电子学会Python真题,python,开发语言,青少年编程)