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

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

一、单选题(共25题,共50分)
1. 运行以下代码,结果输出的是?(C)(2分)

means=['Thank','You']
print(len(means))

A. 8
B. 6
C. 2
D. 1

2. 下列语句中变量i取值范围是1~10的是?(D)(2分)
A. for i in range(11)
B. for i in range(1,10)
C. for i in range(0,10)
D. for i in range(1,11)

3.今天编程课的主要内容是字典的遍历。
已知字典dt={'a':[1,3,5],'b':[3,4,7],'c':[2,5,9]},老师要求用四种不同的方法遍历字典,都要获得如下结果
[1, 3, 5]
[3, 4, 7]
[2, 5, 9]
小程同学尝试写了四段程序,请你帮他检查一下哪个程序的打印结果不符合要求?(D)(2分)

A. 
dt={'a':[1,3,5],'b':[3,4,7],'c':[2,5,9]}
ls=[]
for i in dt.values():
    ls.append(i)
    print(i)

B. 
dt={'a':[1,3,5],'b':[3,4,7],'c':[2,5,9]}
ls=[]
for i in dt:
    ls.append(dt[i])
for j in ls:
    print(j)

C. 
dt={'a':[1,3,5],'b':[3,4,7],'c':[2,5,9]}
ls=[]
for k in dt.keys():
    ls.append(dt[k])
for j in ls:
    print(j)

D. 
dt={'a':[1,3,5],'b':[3,4,7],'c':[2,5,9]}
ls=[]
for k in dt.items():
    print(k)

4. 执行以下代码后输出的结果是?(B)(2分)
d={1:'monkey',2:'panda',3:'bird',4:'fish'}
d[5]='sheep'
del d[3]
d[3]='dog'
print(d)

A. {1: 'monkey', 2: 'panda', 4: 'fish', 5: 'sheep', 3: 'cat'}
B. {1: 'monkey', 2: 'panda', 4: 'fish', 5: 'sheep', 3: 'dog'}
C. {1: 'monkey', 2: 'panda', 3: 'dog, 5: 'sheep', 4: 'duck'}
D. {1: 'monkey', 2: 'panda', 3: 'cat', 5: 'sheep', 4: 'duck'}

5. tp=(3,6,9,11),以下操作正确的是?(A)(2分)
A. x=tp[2]
B. x=tp(2)
C. tp[3]=12
D. tp(3)=12

6. 列表a=list(range(2,10)),下列选项中可以获取列表中最后一个元素?(B)(2分)
A. a[8]
B. a[7]
C. a[9]
D. a[10]

7. 表达式tuple(list('Python'))的运算结果是?(B)(2分)
A. ['Python']
B. ('P', 'y', 't', 'h','o', 'n')
C. ['P', 'y', 't', 'h','o', 'n']
D. ('Python')

8. 若list_a = [5, 4, 1, 2, 3],以下选项中能够输出 [5, 4, 3, 2, 1] 的是?(C)(2分)
A. 
list_a = sorted(list_a)
print(list_a)

B. 
list_a.sort()
print(list_a)

C. 
list_a.sort(reverse=True)
print(list_a)

D. 
list_a.sort(reverse=False)
print(list_a)

9. 以下代码的输出结果是?(A)(2分)

s= list(range(10))
print(10 not in s)

A. True
B. False
C. 0
D. -1

10. 以下代码运行结果正确的是?(D)(2分)

list1 = [[[[['a']],['冰墩墩']],6],['雪容融']]
print(len(list1))

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

11. 请为下列程序空白处选出合适的选项,输出结果为['a', 'A', 9, 'a']?(B)(2分)

ls1 = ['a','A','a',9,'a']

______

print(ls1)

A. del ls1('a')
B. ls1.pop(2)
C. ls1.clear()
D. ls1.remove('a')

12. 以下代码的输出结果是?(D)(2分)

ls = [1,2,[3,4],[5,6]]
print(ls[2][1])

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

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

for i in range(1,6):
    if i%3==0:
        break
    else:
        print(i,end=",")

A. 1,2,
B. 1,2,3,
C. 1,2,3,4,5,
D. 1,2,3,4,5,6,

14. 给定字典d,哪个选项对x in d的描述是正确的?(A)(2分)
A. 判断x是否是字典d中的键
B. x是一个二元元组,判断x是否是字典d中的键值对
C. 判断x是否是字典d中的值
D. 判断x是否是在字典d中以键或值方式存在

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

str1='0123456789'
str2=str1[1:9:2]
print(str2)

A. 1357
B. 024
C. 13579
D. 0246

16. 小明用元组a存储小组同学的身高,a=(136.0,135.0,142.0,140.0),则min(a)的值是?( B)(2分)
A. 136.0
B. 135.0
C. 142.0
D. 140.0

17. 下列语句运行后,输出结果为2022的是哪个?(A )(2分)
A. 
print("20"+"22")

B. 
print(20+22)

C. 
print("2022"in"2022")

D. 
s="你好2022"
print(s[3:4])

18. 已知元组tup2=(1,14,51,4,19,198,10),下列说法有错误的是?(A)(2分)
A. print(tup2[1:-1])可以截取元组的一部分,输出的结果为(14,51,4,19,198,10)
B. print(tup2[3:])可以截取元组的一部分,输出的结果为(4,19,198,10)
C. print(tup2[3:6])可以截取元组的一部分,输出的结果为(4,19,198)
D. print(tup2[5])可以访问元组的第六个元素,输出的结果为198

19. 下列说法错误的是?(A)(2分)
A. 列表的大小是固定的,不可以改变
B. len()方法可以返回列表的元素个数
C. 假设list2列表有十个元素,则list2[2]可以读取list2列表中的第三个元素
D. 列表的数据项不需要具有相同的类型

20. 请根据运行结果将代码空白处填上合适的选项?(D)(2分)

代码:
num1=1
while num1  <=  5:
    num2=1
    while num2  <=  5:
        ___________

        num2 += 1
    print()
    num1 += 1

运行结果:
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
5 5 5 5 5

A. print(num2,end="")
B. print(num2,end =" ")
C. print(num1)
D. print(num1,end =" ")

21. 关于下列伪代码(虚拟代码)说法正确的是?(B)(2分)

if x<10:
    代码块A
elif x>=10 and x<20:
    代码块B
else:
    代码块C

A. 如果x=200,代码块ABC都不会被执行
B. 如果x=20,执行代码块C
C. 如果x=20,执行代码块B
D. 程序先执行C,再执行B,最后执行A

22. 执行以下程序,输入"中国梦2022",输出结果是?(A)(2分)

w = input()
for x in w:
    if x=='0'or x =='2':
        continue
    else:
        w.replace(x,'@')
print(w)

A. 中国梦2022
B. 中国@2022
C. @@@2022
D. 2022中国梦

23. 字典dic={'Name': 'Runoob','Age': 7,'Class': 'First'},len(dic)的结果是?(A)(2分)
A. 3
B. 6
C. 9
D. 12

24. 以下不能创建一个字典的语句是?(C)(2分)
A. dic={"name":"python"}
B. dic={"age":13}
C. dic={[1,2]:"user"}
D. dic={}

25. 关于字符串的操作,下列说法错误的是?(C)(2分)
A. len()返回字符串长度
B. count()统计字符或者字符串在整个字符串中的个数
C. sort()可以给字符串排序
D. split()是给字符串进行分割

二、判断题(共10题,共20分)
26. 字典中的键是唯一的,不能重复。而值对应于键,值是可以重复的。(对)

27. print(len('See You'))这句指令的长度是有7个字符,因为两个单词间的空格也算一个字符。(对)

28. 以下程序的执行结果是“假”。(对)

x=2
if 10>20 and x>0:
    print('真')
else:
    print('假')

29. 列表和元组都可以作为字典的键。(错)

30. 
a = [1, 2, 3, 4]
s = 0
for i in a:
    s += 1
print(s)

以上代码的运行结果是4。(对)

31. 元组是不可变的序列,这里的不可变包括不能对元组对象进行增加元素、删除元素,修改元素位置是可以的。(错)

32. 运行下列程序段后,屏幕上绘制的是一个五边形。(错)

import turtle as t
for i in range(1,5):
       t.forward(50)
       t.left(90)

33. 若s="人脸识别可以识别人脸信息",则执行s.replace("人脸","图像")语句后,s的值为"图像识别可以识别图像信息"。(错)

34. (127,3.56,'1&5#!^*2','4.(.$0..6')是一个合法的元组。(对)

35. 在Python中range(),表示的是正整数序列,负数是无效的。(错)

三、编程题(共2题,共30分)
36. 某航空公司对于托运行李有尺寸要求,必须满足以下条件:
每件托运行李的长、宽、高三边之和须大于或等于60厘米,且小于或等于203厘米。(注意只是三边,不考虑立方体的整个周长,相当于只求长+宽+高三个数字的和,如,长宽高为:20、30、40,则之和为90)
编写一个重复执行的程序,要求如下:

1、用户一次性输入三个数字,分别代表行李的长、宽、高(单位:厘米),三个数字直接用英文的逗号隔开;如:23,45,67
2、程序自动将输入的长宽高转化为列表或者元组;
3、程序需要判断用户输入的托运行李尺寸是否满足此航空公司的要求。
4、如果满足要求,就输出"可以托运"。如果不满足要求,就输出"不可以托运"。
5、然后重复以上操作,重复次数不限。

参考程序一:
#使用元组及嵌套if判断
while True:
    a=eval(input('请输入长宽高(厘米):'))
    sum=sum(a)
    if sum>=60:
        if sum<=203:
            print('可以托运')
        else:
            print('不可以托运')
    else:
        print('不可以托运')

参考程序二:
#使用元组及and逻辑运算
while True:
    a=eval(input('请输入长宽高(厘米):'))
    sum=sum(a)
    if (sum>=60) and (sum<=203):
        print('可以托运')
    else:
        print('不可以托运')

参考程序三: 
c = []
while True:
    a=input('请输入长宽高(厘米):')
    b = a.split(",")
    for i in b:
        i = int(i)
        c.append(int(i))
    sum=sum(c)
    if (sum>=60) and (sum<=203):
        print('可以托运')
    else:
        print('不可以托运')

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

37. 统计一段文本中有几句话
编写程序,要求如下:
1.程序开始运行后,需要用户输入一段中文;
2.根据用户的输入,统计其中共有几句话(以句末为“。”“?”或“!”为依据,判断一句话);
3.输出统计结果,如:“这段话中共有3句话”。

参考程序:
text=input("请输入一段中文")
count=0
for t in text:
       if t=="。" or t=="!" or t=="?":
               count=count+1
print("这段话中共有{}句话".format(count))

评分标准:
(1)用input()函数获取输入的一段中文文本;(5分)
(2)有用于记数的变量,进行统计;(5分)
(3) 判断文本中每个字符是否是“。”“?”“!”,如果是就累加记数;(5分)
(4) 最后进行格式化输出。(5分)
 

  • 5
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值