【电子学会】2023年05月Python二级试卷

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

分数:100 题数:37

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

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

1、运行以下程序,如果通过键盘先后输入的数是1和3,输出的结果是?( )

a = int(input())
b = int(input())
if a < b:
    a = b
print(a)
  • A. 3 1
  • B. 1 3
  • C. 1
  • D. 3
  • 标准答案:D
  • 试题难度:中
  • 试题解析:根据题意:a=1 b=3;这样a小于b,则需要把b的值赋值给a,所以最后a的值为3.

2、运行以下程序,输出的结果是?( )

n = 10
s = 0
m = 1
while m <= n:
    s = s + m
    m = m + 1
print(s)
  • A. 45
  • B. 50
  • C. 55
  • D. 60
  • 标准答案:C
  • 试题难度:中
  • 试题解析:本题考的是while循环,程序的意识是计算1+2+3+…+10,结果是55,答案选择C。

3、以下代码的输出结果是?( )

vlist = list(range(5))
for e in vlist:
    print(e, end=",")
  • A. 0,1,2,3,4
  • B. [0, 1, 2, 3, 4]
  • C. 0 1 2 3 4
  • D. 0;1;2;3;4;
  • 标准答案:A
  • 试题难度:中
  • 试题解析:list(range(5))的值为[0,1,2,3,4];后面的程序是将列表中的值一个一个的取出来,所以选择A。

4、以下程序的输出结果是?( )

n = 0
while n < 10:
    n = n + 2
    if n == 6:
        continue
print(n)
  • A. 5
  • B. 10
  • C. 6
  • D. 8
  • 标准答案:B
  • 试题难度:中
  • 试题解析:最后一次循环开始的时候,n的值为8,但是经过n=n+2运算后,n变成了10,所以最后的结果是10.

5、运行以下程序,输出的结果是?( )

numbers = [1, 2, 3, 4]
numbers.append([5, 6, 7, 8])
print(len(numbers))
  • A. 4
  • B. 5
  • C. 8
  • D. 12
  • 标准答案:B
  • 试题难度:中
  • 试题解析:根据题意,[5,6,7,8]是作为一个整体元素添加到原来的列表中,所以原来的列表长度会变成5.

6、以下代码的输出结果是?( )

s = [4, 2, 9, 1]
s.insert(3, 3)
print(s)
  • A. [4, 2, 9, 1, 2, 3]
  • B. [4, 3, 2, 9, 1]
  • C. [4, 2, 9, 2, 1]
  • D. [4, 2, 9, 3, 1]
  • 标准答案:D
  • 试题难度:中
  • 试题解析:根据题意,将3插入到列表下标为3的元素位置上(第四个元素),所以选D。

7、关于下列程序,说法正确的是?( )

num = 0
while num < 10:
    print("=")
  • A. 在while代码块中无论加什么都不能改变死循环
  • B. 在while代码块中加一行代码 num -= 1 可以改变死循环
  • C. 这个while循环是一个死循环,会一直打印"="
  • D. 运行结果打印输出10个"="语句
  • 标准答案:C
  • 试题难度:中
  • 试题解析:此题考查while条件循环,在循环中增加 num += 1,便能改变死循环,排除A;加一句 num -= 1,num从0开始自减,num<10 也总是成立,还是死循环,排除B;num值一直没变,num<10 总是成立,会一直打印"=",排除D,故选C。

8、运行以下程序,输出的结果是?( )

list5 = ['1', '2', '4', '6', '9']
print(list5[2])
  • A. 1
  • B. 2
  • C. 3
  • D. 4
  • 标准答案:D
  • 试题难度:容易
  • 试题解析:list5[2]访问了列表里的第3个元素,值为4。

9、下列说法正确的是?( )

  • A. 元组的元素值可以随意修改
  • B. 可以用del语句删除元组中的某个元素
  • C. tup1 = (5) 是一个合法的元组
  • D. tup1 = ('turtle', 'fish', 65536)是一个合法的元组
  • 标准答案:D
  • 试题难度:容易
  • 试题解析:元组的元素值不可以修改;del语句只能删除整个元组,不能删除某个元素;元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用。

10、在Python语言中,表达式[1, 2] * 2的值是?( )

  • A. [2, 4]
  • B. 6
  • C. [1, 2, 1, 2]
  • D. [1, 2, 2]
  • 标准答案:C
  • 试题难度:中
  • 试题解析:列表的乘法运算是将列表中的元素重复N次(N为乘数);所以选C。

11、在Pyhton语言中,表达式[2] in [1, 2, 3, 4, 5]的值是?( )

  • A. 0
  • B. 1
  • C. True
  • D. False
  • 标准答案:D
  • 试题难度:容易
  • 试题解析:[2]是一个列表,虽然[1,2,3,4,5]中有2,但是这个2并不是列表,而是整型数据,所以返回值是False。

12、d = {"王明": 178, "张华": 158, "于飞": 189, "刘英": 164},则d["于飞"]的值是?( )

  • A. -2
  • B. 2
  • C. ‘于飞’
  • D. 189
  • 标准答案:D
  • 试题难度:容易
  • 试题解析:d[“于飞”]代表的是字典中键为"于飞"的值,所以选D。

13、下列说法正确的是?( )

  • A. 字典只能存储字符串,不能存储其他类型的对象
  • B. dict11 = {:}可以创建一个空字典
  • C. {123: 456}是一个合法的字典
  • D. 字典的值必须是唯一的,键不必是唯一的
  • 标准答案:C
  • 试题难度:容易
  • 试题解析:字典可存储任意类型对象;字典中的键和值之间必须用冒号隔开,但是空字典不需要用冒号隔开,{}可以创建一个空字典;字典的键必须是唯一的,值不必是唯一的。

14、运行以下程序,共计输出了几个hello?( )

for i in range(3):
    print("hello")
  • A. 1
  • B. 2
  • C. 3
  • D. 4
  • 标准答案:C
  • 试题难度:容易
  • 试题解析:循环执行了3次,所以输出了3个hello

15、下列程序的运行结果是?( )

lis1 = ["cat", "tomato", "dog", "apple", "dog", "dog"]
print(lis1.index("dog"))
  • A. 0
  • B. 1
  • C. 2
  • D. 3
  • 标准答案:C
  • 试题难度:容易
  • 试题解析:考察获取列表中某个元素出现第一次的下标。dog第一次出现的下标为2。

16、运行以下程序,当从键盘输入1,程序运行结果是?( )

str1 = '一二三四五六日'
strid = int(input('请输入1-7的数字:'))
print('星期' + str1[strid - 1])
  • A. 星期一
  • B. 星期+一
  • C. 星期二
  • D. 星期+二
  • 标准答案:A
  • 试题难度:容易
  • 试题解析:考察字符串的连接。题目中的下标进行了减一的运算,所以输入1,返回是星期一。

17、下列程序的运行结果是?( )

zd1 = {'name': 'Tom', 'color': 'blue'}
zd1['name'] = 'Mike'
print(zd1)
  • A. {'name': 'Mike', 'color': 'blue'}
  • B. {'name': 'Mike', 'color': 'blue', name': 'Tom'}
  • C. {'name': 'Tom', 'color': 'blue'}
  • D. {'name': Tom','name': 'Mike', 'color': 'blue', }
  • 标准答案:A
  • 试题难度:容易
  • 试题解析:考察通过键修改字典值。

18、若a = (1, 2, 3),执行下列哪个命令是会报错?( )

  • A. a[1]
  • B. list(a)
  • C. a[1] = 4
  • D. a * 5
  • 标准答案:C
  • 试题难度:容易
  • 试题解析:元组中的元素是不可以修改的,所以C选项错误。

19、以下代码的运行结果是?( )

s = 'happy birthday'
print(s[13:-15:-2])
  • A. 运行会报错
  • B. ydti pa
  • C. ydtipa
  • D. yadhtrib yppa
  • 标准答案:B
  • 试题难度:较难
  • 试题解析:本题考查字符串的切片。当步长为负数时,代表从后往前。

20、下列程序执行的结果是?( )

yz = (1, 5, 7, 3, 9)
list1 = sorted(yz)
print(list1)
  • A. 报错
  • B. 1, 3, 5, 7, 9
  • C. (1, 3, 5, 7, 9)
  • D. [1, 3, 5, 7, 9]
  • 标准答案:D
  • 试题难度:较难
  • 试题解析:元组可以用sorted()进行排序,但是输出的结果是列表。

21、以下哪个函数可以对字符串中的内容进行替换(注意:不是格式化输出)?( )

  • A. replace( )
  • B. format( )
  • C. split( )
  • D. join( )
  • 标准答案:A
  • 试题难度:容易
  • 试题解析:replace( )函数用于字符串替换;split( )用于字符串分割;join( )用于串联;format( )用于格式化输出。

22、运行以下程序,输出的结果是?( )

list3 = ['11', '4', 5, 1, 4]
print(len(list3))
  • A. 1
  • B. 4
  • C. 5
  • D. 8
  • 标准答案:C
  • 试题难度:容易
  • 试题解析:list3列表有五个元素,所以len()方法的返回值为5

23、下列说法错误的是?( )

  • A. 字典一旦创建就不能被修改
  • B. a = {}是一个空字典
  • C. {123: '123'}是一个合法的字典
  • D. 在同一个字典中,字典的键具有唯一性
  • 标准答案:A
  • 试题难度:容易
  • 试题解析:字典可以被修改;{}可以创建一个空字典;字典的键必须是唯一的。

24、列表ls = ['H', 'a', 'p', 'p', 'y', '!'],下列说法错误的是?( )

  • A. ls[:6]的值是[‘H’, ‘a’, ‘p’, ‘p’, ‘y’, ‘!’]
  • B. ls[:-6]的值是[]
  • C. ls[6]的值是’!’
  • D. ls[2:-2]的值是[‘p’, ‘p’]
  • 标准答案:C
  • 试题难度:中
  • 试题解析:ls列表下标最大值是5,ls[6]将引用ls列表下标为6的元素,将会抛异常(列表索引超出范围)

25、使用tuple函数创建元组错误的是?( )

  • A. tuple(20, 30)
  • B. tuple('你好')
  • C. tuple([2, 0, 1, 3])
  • D. tuple('12345')
  • 标准答案:A
  • 试题难度:中
  • 试题解析:tuple( )可以将列表、字符串、字典等可迭代对象转换为元组,整数不是可迭代对象。

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

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

26、append()方法可以在列表末尾添加一个元素。( )

  • 正确();
  • 错误();
  • 标准答案:√
  • 试题难度:中
  • 试题解析:本题表述正确。

27、下列程序写法是正确的。( )

    score = 50
if score >= 60:
        print("合格")
else:
print("不合格")
  • 正确();
  • 错误();
  • 标准答案:×
  • 试题难度:容易
  • 试题解析:第一行和最后一行的缩进错误。

28、判断下列语句是否正确。( )

>>> book = {'格林童话': 1001, '安徒生童话': 1002}
  • 正确();
  • 错误();
  • 标准答案:√
  • 试题难度:中
  • 试题解析:正确创建字典。

29、判断下列语句是否正确。( )

if 5 > 3
    print("5大于3")
  • 正确();
  • 错误();
  • 标准答案:×
  • 试题难度:中
  • 试题解析:正确的为:
if 5 > 3:
    print("5大于3")

30、在while循环中,如果想返回到循环的开头处,可以使用break语句。( )

  • 正确();
  • 错误();
  • 标准答案:×
  • 试题难度:中
  • 试题解析:使用continue语句返回循环的开头

31、执行以下程序,运行结果是:

3
3
3
for i in range(1, 5, 2):
    print(3)
  • 正确();
  • 错误();
  • 标准答案:×
  • 试题难度:较难
  • 试题解析:
for i in range(1, 5, 2):
    print(3)

中i的值依次是1,3;是不包括5的,所以只输出两个3。

32、执行print("e" in "hello")的输出结果为True。( )。

  • 正确();
  • 错误();
  • 标准答案:√
  • 试题难度:容易
  • 试题解析:in是成员运算符,如果字符串中包含给定的字符,则返回True

33、(3) in (1, 2, 3) 的结果是 True。( )

  • 正确();
  • 错误();
  • 标准答案:√
  • 试题难度:较难
  • 试题解析:(3)中没有逗号,不表示元组,表示整数类型的3。

34、代码print('{}-{}*{}={}'.format(20, 3, 4, 8))打印的结果是20-3*4=8。( )

  • 正确();
  • 错误();
  • 标准答案:√
  • 试题难度:中
  • 试题解析:根据format运算的规则:print('{}-{}*{}={}'.format(20,3,4,8))是将后面的(20,3,4,8)里的数字依次填入前面的大括号中。

35、元组是不可变序列,列表是可变序列。( )

  • 正确();
  • 错误();
  • 标准答案:√
  • 试题难度:较难
  • 试题解析:表述正确。

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

36、体重比较器

要求:请编程实现如下功能:

(1)程序开始运行时,提醒用户输入三个人的名字和体重(可以分开输入,每次输入名字或者体重);

(2)程序自动比较,找出最重的一个人的名字和体重;

(3)输出的格式不限,但是要有最重人的姓名和体重信息。

参考程序:

方法一:

w1 = int(input("请输入第一个人的体重:"))
n1 = input("请输入第一个人的名字:")

w2 = int(input("请输入第二个人的体重:"))
n2 = input("请输入第二个人的名字:")

w3 = int(input("请输入第三个人的体重:"))
n3 = input("请输入第三个人的名字:")
maximum = w1
m_name = n1

if w2 > maximum:
    maximum = w2
    m_name = n2

if w3 > maximum:
    maximum = w3
    m_name = n3

print("体重最重的人是:", m_name)
print("他的体重是:", maximum)

方法二:

name = []
weight = []
for i in range(3):
    a = input('请输入姓名:')
    b = int(input('请输入体重:'))
    name.append(a)
    weight.append(b)
c = max(weight)
d = weight.index(c)

print("体重最重的人是:", name[d])
print("他的体重是:", c)

方法三:

lst = []
for i in range(3):
    a, b = input('请输入第' + str(i + 1) + '个人的名字和体重,用逗号隔开').split(",")
    lst.append((a, int(b)))

max_weight = lst[0][1]
max_index = 0
for i in range(1, 3):
    if lst[i][1] > max_weight:
        max_weight = lst[i][1]
        max_index = i
print("体重最重的人是:", lst[max_index][0])
print("他的体重是:", lst[max_index][1])

试题难度:

评分标准:

(1)按照题意,要分别输入三个人的名字和体重;(每项0.5分,共3分)

(2)有条件语句或者使用了排序或者最值计算;(4分)

(3)用到变量存储体重和姓名;(4分)

(4)有数据类型转换;(每转换一次1分,共3分)

(5)结果正确输出。(1分)

37、统计语句中指定字符的个数

要求:

(1)统计的语句为:Were you born on August 21, 1994

(2)要求使用条件语句,统计该句中所有英文字母、数字的个数的和(不包括空格、逗号等标点符号);

(3)输出一个整数,表示所有英文字母和数字的个数的和。

参考程序:

s = 'Were you born on August 21, 1994'
count = 0
for i in s:
    if ('0' <= i <= '9') or ('a' <= i <= 'z') or ('A' <= i <= 'Z'):
        count += 1
print(count)

试题难度:

评分标准:

(1)能正确存储字符串;(2分)

(2)创建计数变量;(2分)

(3)有循环遍历字符串(或迭代对象);(2分)

(4)判断字符的值;(2分)

(5)在循环中正确进行计数;(2分)

(6)输出格式正确;(2分)

(7)代码执行完全正确无误。(3分)

本题需要用到字符串的基本操作,条件判断,循环等知识。

你可能感兴趣的:(python,开发语言,算法,数据结构,等级考试)