【电子学会】2023年03月Python二级试题

青少年软件编程(Python)等级考试试卷(二级)

分数:100 题数:37

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

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15
C D C C C B D D C B A D C D B
16 17 18 19 20 21 22 23 24 25
D C B D B B D C B B

1、下列说法正确的是?( )【易】

  • A. {123: 'a', 'a': 123}不是一个合法的字典
  • B. 数字、字符串、列表和元组都可以作为字典的键
  • C. {(12, 34, 'a'): 'a', 'a': 5678}是一个合法的字典
  • 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)的值是?( )【中】

  • A. 8
  • B. 6
  • C. 4
  • D. 2

4、下列哪个是一个合法的列表?( )【中】

  • A. (191, 98, 1, 0)
  • B. "1919,810"
  • C. [19, 19, 8,1 0]
  • D. {19, '19', 8, 10}

5、运行下列程序,输出的结果是?( )【易】

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列表的第二个元素是?( )【难】

  • A. -2
  • B. -3
  • C. 2
  • D. 5

7、已知列表list9 = [11, 4, 514, 191, 9, 81, 0],下列说法错误的是?( )【难】

  • A. print(min(list9))可以输出列表的最小值,输出结果为0
  • B. print(max(list9))可以输出列表的最大值,输出结果为514
  • C. print(list9.index(191))可以输出数值191第一个匹配项的索引位置,输出结果为3
  • D. list9.remove()可以移除列表中的最后一个元素

8、下列说法正确的是?( )【易】

  • A. '0123456'是一个长度为6的字符串
  • B. 在Python中,可以用乘号'*'把两个字符串连接起来
  • C. 'What's this?'是一个合法的字符串
  • D. '*'是一个合法的字符串

9、下列说法错误的是?( )【易】

  • A. while语句通常用于重复执行某一段程序
  • B. break语句可以跳出for和while的循环体
  • C. 在Python中可以使用do…while循环
  • D. if语句通常用于执行条件判断

10、运行下列程序,共计输出了几个banana?( )【难】

for i in range(3, 9, 3):
    print("banana")
  • A. 1
  • B. 2
  • C. 3
  • D. 4

11、运行下列程序,输出的结果是?( )【难】

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的是?( )【易】

  • A. ls.pop(-1)
  • B. del ls[-1]
  • C. ls.remove(ls[-1])
  • D. ls.remove(-1)

13、下列代码的输出结果是?( )【中】

ls = [2023, 'Happy', ['Good', 'Luck']]
print(ls[2][1])
  • A. Happy
  • B. Good
  • C. Luck
  • D. o

14、下列程序的输出结果是?(注意:0后面是两个单引号’',并非双引号)( )【难】

ls = [0, '', {}, None, (), [], 'empty']
print(len(ls))
  • A. 2
  • B. 3
  • C. 6
  • D. 7

15、ls = ['富强', '民主', '文明', '和谐', '自由', '平等', '公正', '法治'],下列切片结果为['和谐', '平等']的选项是?( )【中】

  • A. ls[-5:-2:-2]
  • B. ls[-5:-2:2]
  • C. ls[4:-3:1]
  • D. ls[4:-2:2]

16、下列代码的执行结果是?( )【中】

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']

17、创建元组错误的是?( )【易】

  • A. tp = ('a',)
  • B. tp = ('', [], 20) 备注:这里是单引号
  • C. tp = (25)
  • D. tp = 1, 2, 3

18、列表和元组都是序列对象,列表和元组的区别是?( )【中】

  • A. 元组的元素只能是不可变数据类型,例如:整型、浮点型、字符串、元组
  • B. 元组一旦创建不可以修改
  • C. 列表可以切片,元组不能切片
  • D. 元组之间的元素不能用逗号进行分隔

19、请问下列四个表达式中,哪个表达式的值与其他三个表达式的值不同?( )【易】

  • A. '字符串' + '运算'
  • B. ''.join(['字符串', '运算'])
  • C. '字符串运算' * 1
  • D. '字符串' - '运算'

20、Python解释器中执行如下代码的结果是?( )【中】

'{2},{0},{1}'.format('You', 'need', 'Python')
  • A. 'Python, need, You'
  • B. 'Python,You,need'
  • C. 'need,You,Python'
  • D. 'need,Python,You'

21、下列代码执行的结果是?( )【易】

dic = {'聊天机器人': 'GhatGPT', '搜索引擎': '百度', '浏览器': 'Google'}
for x in dic:
    print(x, end=' ')
  • A. GhatGPT 百度 Google
  • B. 聊天机器人 搜索引擎 浏览器
  • C. ['GhatGPT', '百度', 'Google']
  • D. [('聊天机器人', 'GhatGPT'), ('搜索引擎', '百度'), ('浏览器', 'Google')]

22、不能输出0~10之间所有奇数的程序是?( )【中】

  • 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、程序运行时,输入60,程序执行的结果是?( )【易】

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)
  • A. 62
  • B. 58
  • C. 120
  • D. 30

24、以下代码运行后t的值是?( )【中】

n, t = 10, 0
while n != 0:
    n = n - 1
    t = t + n
  • A. 36
  • B. 45
  • C. 50
  • D. 55

25、已知元组tup2 = (114, 5, 14, 191, 9810),下列说法错误的是?( )【难】

  • 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

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

26 27 28 29 30 31 32 33 34 35
× × ×

26、pop()方法可以清空列表。( )【易】

  • 正确();
  • 错误();

27、元组要用方括号[]括起来。( )【易】

  • 正确();
  • 错误();

28、(152, 4.06, '20&#!^*3', '4.(..$57!')是一个合法的元组。( )【易】

  • 正确();
  • 错误();

29、执行print("\'he" in "\'hello world\\")的输出结果为True。( )【易】

  • 正确();
  • 错误();

30、if语句的条件后面要使用花括号{}表示接下来是满足条件后要执行的语句块。( )【易】

  • 正确();
  • 错误();

31、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)重复以上操作。

参考程序:

注意:仅供参考,考生可以自行设计,结果符合题意即可。

while True:
    a = float(input("输入包裹的长度:"))
    b = float(input("输入包裹的宽度:"))
    c = float(input("输入包裹的高度:"))
    if a + b + c <= 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:

dic = {'字母': ['', 0], '数字': ['', 0], '其它字符': ['', 0]}

s = input()
for i in s:
    if i.lower() in 'abcdefghijklmnopqrstuvwxyz':
        dic['字母'][0] += i
        dic['字母'][1] += 1
    elif i in '0123456789':
        dic['数字'][0] += i
        dic['数字'][1] += 1
    else:
        dic['其它字符'][0] += i
        dic['其它字符'][1] += 1
print('字母:{},共{}个'.format(dic['字母'][0],dic['字母'][1]))
print('数字:{},共{}个'.format(dic['数字'][0],dic['数字'][1]))
print('其它字符:{},共{}个'.format(dic['其它字符'][0],dic['其它字符'][1]))

程序2:

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)))

程序3:

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分)

你可能感兴趣的:(python,数学建模,开发语言,算法,青少年编程,数据结构)