2022年 11月 5日

2022年6月电子学会Python等级考试试卷(三级)答案解析

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

分数:100  题数:38

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

1.

如下所示的2行代码,最后print()函数打印出来的结果是?( )
c = [[‘赵大’,21,’男’,’北京’],[‘钱二’,20,’男’,’西安’],[‘孙三’,18,’女’,’南京’],[‘李四’,20,’女’,’杭州’]]
print(c[1][3])

A. 

B. 

北京

C. 

西安

D. 

试题编号:20220425-ll-005

试题类型:单选题

标准答案:C

试题难度:一般

试题解析:考查学生对二维列表中,每个列表值顺序的理解。

考生答案:C

考生得分:2

是否评分:已评分

评价描述:

2.

要读取下图“书目.csv”文件的全部内容,小明编写了后面4行代码。请问,红色处,应该填写哪种打开模式?( )

     

f = open(“书目.csv” ,  )

a = f.read()

print(a)

f.close

A. 

“w”

B. 

“a”

C. 

“r”

D. 

“a+”

试题编号:20220425-ll-006

试题类型:单选题

标准答案:C

试题难度:一般

试题解析:考查学生对open()函数参数的掌握。本题除了选项C,填写打开模式为只读r之外,参数W会清除文件内容,显然不对,参数a与a+,指针在末尾,读不出内容,也不对。

考生答案:C

考生得分:2

是否评分:已评分

评价描述:

3.

下图所示,有一个名为”书目.csv”的文件。小明针对这个文件编写了5行代码,
请问,代码运行到最后打印在屏幕上的结果是?( )

with open(‘书目.csv’, ‘r’, encoding=’utf-8′) as f:

    for line in f.readlines():
        a = line.split(“,”)
        if a[0] == “水浒传” :
            print(a[1])

A. 

老残游记

B. 

172

C. 

55

D. 

70

试题编号:20220425-ll-007

试题类型:单选题

标准答案:D

试题难度:一般

试题解析:本题考查学生对列表切片中,每个数据位置的理解 。此题中的a[1],应该对应水浒传的价格,所以正确答案是70。

考生答案:D

考生得分:2

是否评分:已评分

评价描述:

4.

小明编写了下列4行代码,请问,代码运行到最后,屏幕上打印出来的结果是?( )
a = [‘a’,’b’,’c’]
b = [1,2,3]
c = [b,a]
print(c[1][0])

A. 

1

B. 

a

C. 

‘1’

D. 

‘a’

试题编号:20220425-ll-008

试题类型:单选题

标准答案:B

试题难度:一般

试题解析:考查学生对嵌套列表中,元素位置的理解。同时考查学生对用已有列表创建新列表的理解。

考生答案:D

考生得分:0

是否评分:已评分

评价描述:

5.

下图左边的“身体素质.csv”文件,要打印成下图右边的效果,每个字段之间相隔一个TAB键的距离。小明编写了如下代码,请选择:代码中横线处的内容?( )

f = open(‘身体素质.csv’, ‘r’)

a = []

for i in f:

    a.append(i.strip(‘\n’).split(‘,’))

f.close

for x in a:

    line=”

    for y in x:

        line += ‘{ }    ‘.format(y)

    print(line)

A. 

\t

B. 

\n

C. 

\a

D. 

\r

试题编号:20220425-ll-009

试题类型:单选题

标准答案:A

试题难度:一般

试题解析:\t插入一个TAB键的距离。

考生答案:A

考生得分:2

是否评分:已评分

评价描述:

6.

在Python异常处理结构中,如果程序执行没有遇到异常(错误),不会执行什么关键字后面的语句体?( )

A. 

try

B. 

except

C. 

else

D. 

finally

试题编号:20220503-ppz-016

试题类型:单选题

标准答案:B

试题难度:容易

试题解析:在异常处理程序中,没有错误(异常),就跳过except语句体的执行。

考生答案:B

考生得分:2

是否评分:已评分

评价描述:

7.

运行下列程序,输出的结果是?( )

try:

    a=int(input())
    b=int(input())
    r=a/b
    print(‘商是:’,r)
except:
    print(‘错误’)
else:
    print(‘正确’)
finally:
    print(‘结束’)

当输入:

16

8

A. 

错误

B. 

商是: 2.0

正确

C. 

商是: 2

正确

结束

D. 

商是: 2.0

正确

结束

试题编号:20220503-ppz-017

试题类型:单选题

标准答案:D

试题难度:一般

试题解析:辨析异常处理的执行程序过程:如果try正确就到else,如果try错误就到except;最后都要执行finally。

考生答案:C

考生得分:0

是否评分:已评分

评价描述:

8.

Python中将十进制20转化成八进制,我们可以使用下列哪个表达式?( )

A. 

bin(20)

B. 

int(20)

C. 

oct(20)

D. 

hex(20)

试题编号:20220509-xb-01

试题类型:单选题

标准答案:C

试题难度:容易

试题解析:用python中的数制转换函数进行十进制与八进制的转换

考生答案:A

考生得分:0

是否评分:已评分

评价描述:

9.

下列进制转换,正确的是?( )

A. 

0x14转化为十进制,结果是20。

B. 

20转化成八进制,结果是0o20。

C. 

0x14转化为十进制,结果是22。

D. 

20转化成八进制,结果是0o30。

试题编号:20220509-xb-02

试题类型:单选题

标准答案:A

试题难度:一般

试题解析:二进制、十进制、十六进制的概念及互相转换,并且会使用Python中的数制转换函数。

考生答案:A

考生得分:2

是否评分:已评分

评价描述:

10.

关于二进制、八进制、十六进制与十进制相互转换,下列说法正确的是?( )

A. 

十六进制转化为十进制,可以使用除16求余数,再顺序输出。

B. 

二进制转化为十进制,可以使用除2求余数,再逆序输出。

C. 

十六进制转化为十进制,可以使用除16求余数,再逆序输出。

D. 

n位二进制能表示的最大十进制数是2的n次方减一。

试题编号:20220509-xb-04

试题类型:单选题

标准答案:D

试题难度:一般

试题解析:理解n位二进制能表示的最大十进制数是2的n次方减一。

考生答案:C

考生得分:0

是否评分:已评分

评价描述:

11.

将十进制2022转化成十六进制,可以使用下列哪个表达式?( )

A. 

bin(2022)

B. 

int(2022)

C. 

oct(2022)

D. 

hex(2022)

试题编号:20220510-xb-25

试题类型:单选题

标准答案:D

试题难度:容易

试题解析:hex(2022)运行结果是’0x7e6’,为十六进制。

考生答案:D

考生得分:2

是否评分:已评分

评价描述:

12.

abs(-4.8)运行的结果是?( )

A. 

4.8

B. 

-4

C. 

-5

D. 

5

试题编号:20220510-ylx-012

试题类型:单选题

标准答案:A

试题难度:容易

试题解析:abs()是求绝对值函数。

考生答案:A

考生得分:2

是否评分:已评分

评价描述:

13.

关于ord( )函数与chr( )函数,下列说法正确的是?( )

A. 

ord( )函数的参数是整数。

B. 

ord( )函数的参数是字符串类型。

C. 

chr( )函数的参数是字符串类型。

D. 

chr( )函数返回的数据类型是int。

试题编号:20220510-ylx-013

试题类型:单选题

标准答案:B

试题难度:一般

试题解析:ord( )函数是返回字符所对应的ASCII值。因此其参数为字符串类型。chr()函数是将对应的ASCII值转换为相应字符。其参数为数值。

考生答案:B

考生得分:2

是否评分:已评分

评价描述:

14.

运行下列程序,输出的结果是?( )

a=[34,7,8,23]

max(a)+abs(-5)

A. 

12

B. 

13

C. 

18

D. 

39

试题编号:20220510-ylx-014

试题类型:单选题

标准答案:D

试题难度:一般

试题解析:max()是求最大值,abs()是求绝对值。故程序的功能是将34与5相加。

考生答案:D

考生得分:2

是否评分:已评分

评价描述:

15.

set(‘小明你好’)运行的结果是?( )

A. 

[‘好’, ‘你’, ‘明’, ‘小’] # 列表中,文字顺序不固定

B. 

(‘好’, ‘你’, ‘明’, ‘小’) #元组中,文字顺序不固定

C. 

{‘好’, ‘你’, ‘明’, ‘小’} #集合中,文字顺序不固定

D. 

{‘你’, ‘好’, ‘小’, ‘明’} #文字顺序固定

试题编号:20220510-ylx-015

试题类型:单选题

标准答案:C

试题难度:较难

试题解析:set()函数可将文本转为集合,集合的特点是元素顺序不固定,所以正确答案是C。

考生答案:D

考生得分:0

是否评分:已评分

评价描述:

16.

如下程序:
a=[5,10,32,7]
  for i in a:
      print(i,”:”,bin(i))
该程序段的功能是?( )

A. 

分别输出5,10,32,7的二进制数。

B. 

分别输出5,10,32,7的八进制数。

C. 

分别输出5,10,32,7的在列表中的索引位置。

D. 

分别输出5,10,32,7的十六进制数。

试题编号:20220510-ylx-016

试题类型:单选题

标准答案:A

试题难度:一般

试题解析:bin() 转换为二进制,oct() 转换为八进制,hex() 转换为十六进制。故程序功能是将列表中数字一一转换为对应的二进制数。

考生答案:B

考生得分:0

是否评分:已评分

评价描述:

17.

下列表达式的值最大的选项是?( )

A. 

len([1,2,3,4,5,789])

B. 

max([78,6,5,67] )

C. 

abs(-90)

D. 

round(38.4)

试题编号:20220510-ylx-017

试题类型:单选题

标准答案:C

试题难度:一般

试题解析:len()表示求长度,为6;max()表示求最大值,为78;abs()求绝对值,为90;round()表示四舍五入,小数位数参数省略表示保留到整数位,为38。

考生答案:B

考生得分:0

是否评分:已评分

评价描述:

18.

divmod(6,2)的运行结果是?( )

A. 

8

B. 

4

C. 

(3,0)

D. 

(0,3)

试题编号:20220510-ylx-018

试题类型:单选题

标准答案:C

试题难度:较难

试题解析:divmod(6,2)返回包含商和余数的元组,即(3,0)。

考生答案:C

考生得分:2

是否评分:已评分

评价描述:

19.

如果不知道对象的数据类型,我们可以使用什么函数查看?( )

A. 

type()

B. 

dir()

C. 

set()

D. 

help()

试题编号:20220510-ylx-019

试题类型:单选题

标准答案:A

试题难度:一般

试题解析:type()函数返回对象的类型。

考生答案:A

考生得分:2

是否评分:已评分

评价描述:

20.

运行下列程序,输出的结果是?( )

x=7

print(eval(“x+4”))

A. 

输出”x+4”

B. 

输出数字11

C. 

输出“7+4”

D. 

程序出错

试题编号:20220510-ylx-020

试题类型:单选题

标准答案:B

试题难度:较难

试题解析:eval() 函数用来执行一个字符串表达式,并返回表达式的值,因此输出7+4的计算结果。

考生答案:A

考生得分:0

是否评分:已评分

评价描述:

21.

关于enumerate()函数的说法不正确的是?( )

A. 

该函数是Python内置函数。

B. 

该函数可用于判断数据类型是否是数值类型。

C. 

该函数可将一个可遍历对象按照设置的序号组合成一个索引序列。

D. 

该函数通常用在for循环中,可返回一个内部由一个个元组组成的列表。

试题编号:20220510-ylx-021

试题类型:单选题

标准答案:B

试题难度:较难

试题解析:enumerate()函数是Python的内置函数,可以将一个可遍历/可迭代对象按照设置的序号组成一个索引序列,通常结合for循环使用,返回一个列表,内部由序号和原有元素组成的元组组成。

考生答案:B

考生得分:2

是否评分:已评分

评价描述:

22.

enumerate()函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列。下列程序
example = ‘7890’
for i,j in enumerate(example):
    print(i,j)
运行后的输出结果是?( )

A. 

0,7
1,8
2,9
3,0

B. 

(0 7)
(1 8)
(2 9)
(3 0)

C. 

0 7
1 8
2 9
3 0

D. 

(0,7)
(1,8)
(2,9)
(3,0)

试题编号:20220510-ylx-022

试题类型:单选题

标准答案:C

试题难度:一般

试题解析:本题考查学生对enumerate()函数的理解与掌握,正确答案是选项C。

考生答案:A

考生得分:0

是否评分:已评分

评价描述:

23.

关于算法描述的三种基本结构,下列哪项正确?( )

A. 

顺序结构、选择结构、循环结构。

B. 

if选择结构、for循环、while循环。

C. 

处理框、判断框、流程线。

D. 

自然语言、流程图、程序设计语言。

试题编号:20220515-xm-33

试题类型:单选题

标准答案:A

试题难度:一般

试题解析:

考生答案:A

考生得分:2

是否评分:已评分

评价描述:

24.

“韩信点兵”是一个古老的数学问题,可以应用中国剩余定理进行求解。以下是使用计算机解决“韩信点兵”问题的几个步骤:
①编写Python程序,用计算机进行处理。
②设计“韩信点兵”求解算法。
③验证算法的功能和性能。
④分析问题,确定解题任务。
使用计算机解决“韩信点兵”问题,正确的步骤是下列哪一项?( )

A. 

②④①③

B. 

④①②③

C. 

④②③①

D. 

④②①③

试题编号:20220515-xm-34

试题类型:单选题

标准答案:D

试题难度:一般

试题解析:

考生答案:D

考生得分:2

是否评分:已评分

评价描述:

25.

小明使用Python编程模拟绘制了物体在自由落体运动过程中产生的抛物线轨迹。小明设计的这一算法属于下列哪一种?( )

A. 

枚举算法

B. 

解析算法

C. 

排序算法

D. 

对分查找算法

试题编号:20220515-xm-35

试题类型:单选题

标准答案:B

试题难度:一般

试题解析:

考生答案:B

考生得分:2

是否评分:已评分

评价描述:

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

26.

小明编写了代码一,小红看到后说:“我写的代码二,打印出来的结果与小明的代码一相同”。请判断,小红所说对吗?( )

代码一:

f = open(‘成绩.csv’, ‘r’)

for i in f:

    a = i.strip(‘\n’).split(‘,’)

    print(a)

f.close

代码二:

f = open(‘成绩.csv’, ‘r’)

a = []

for i in f:

    a.append(i.strip(‘\n’).split(‘,’))

f.close

print(a)

正确 

错误 

试题编号:20220425-ll-030

试题类型:判断题

标准答案:错误

试题难度:一般

试题解析:小明的代码一,每次循环都会读取文档的下一行,并将该行用英文逗号切分成列表,再打印出来;小红的代码二,是读取每一行,以英文逗号切分为列表,并追加到列表变量a的尾巴后面,最后再打印变量a。两者打印出的结果不同。

考生答案:错误

考生得分:2

是否评分:已评分

评价描述:

27.

有一个名为“身体素质.csv”的文件,内容为学生的姓名、身高和体重,文件内容如下:

李四,127,32

王五,131,34

赵六,129,33

小明想编写代码,在整个文件的首行,插入数据“张三,133,36”,他编写了如下代码,请判断,代码能正确运行吗?( )

f = open(‘身体素质.csv’, ‘a’)

f.seek(0,0)  #用seek()方法,将文件指针移动到整个文件的最前面。

f.write(‘张三,133,36\n’)

f.close()

正确 

错误 

试题编号:20220425-ll-031

试题类型:判断题

标准答案:错误

试题难度:一般

试题解析:open()函数的参数’a’,是追加数据到文件末尾,seek()函数虽然能移动读取文件时的指针位置,但并不能移动写入文件时的位置,所以答案为错误。

考生答案:错误

考生得分:2

是否评分:已评分

评价描述:

28.

使用异常处理的方式执行程序时,当try里面的程序出现数据类型输入错误时,执行except ZeroDivisionError下面的语句;当try里面的程序出现除数为零的错误时,执行except ValueError下面的语句。( )

正确 

错误 

试题编号:20220503-ppz-018

试题类型:判断题

标准答案:错误

试题难度:容易

试题解析:当try里面的程序出现数据类型输入错误时,执行except ValueError下面的语句;当try里面的程序出现除数为零的错误时,执行except ZeroDivisionError下面的语句。

考生答案:错误

考生得分:2

是否评分:已评分

评价描述:

29.

八进制数0o10转化成十六进制数为0x8。( )

正确 

错误 

试题编号:20220509-xb-03

试题类型:判断题

标准答案:正确

试题难度:一般

试题解析:二进制、十进制、十六进制的概念及互相转换,并且会Python中的数制转换函数。

考生答案:正确

考生得分:2

是否评分:已评分

评价描述:

30.

执行代码print(type(0x20)),运行结果是<class ‘int’>。( )

正确 

错误 

试题编号:20220509-xb-05

试题类型:判断题

标准答案:正确

试题难度:一般

试题解析:了解八进制数也是一个整型

考生答案:正确

考生得分:2

是否评分:已评分

评价描述:

31.

divmod()函数执行结果是返回一个包含商和余数的元组。( )

正确 

错误 

试题编号:20220510-ylx-032

试题类型:判断题

标准答案:正确

试题难度:一般

试题解析:divmod()函数执行结果是返回一个包含商和余数的元组。

考生答案:正确

考生得分:2

是否评分:已评分

评价描述:

32.

all()函数用于判断给定的可迭代参数中的所有元素是否都为False,若是返回True,否则返回False。( )

正确 

错误 

试题编号:20220510-ylx-033

试题类型:判断题

标准答案:错误

试题难度:较难

试题解析:all()函数用于判断给定的可迭代参数中的所有元素是否都为True,若是返回True,否则返回False。

考生答案:正确

考生得分:0

是否评分:已评分

评价描述:

33.

any()函数用于判断给定的可迭代参数中的所有元素是否都为True,若是返回True,否则返回False。( )

正确 

错误 

试题编号:20220510-ylx-034

试题类型:判断题

标准答案:错误

试题难度:较难

试题解析:any()函数用于判断给定的可迭代参数中的所有元素是否都为False,若是返回False,否则返回True。

考生答案:正确

考生得分:0

是否评分:已评分

评价描述:

34.

具有查看函数或模块说明功能的函数是help()。( )

正确 

错误 

试题编号:20220510-ylx-035

试题类型:判断题

标准答案:正确

试题难度:容易

试题解析:help()函数主要用于查看函数或模块用途的详细说明,返回对象是帮助信息。

考生答案:正确

考生得分:2

是否评分:已评分

评价描述:

35.

小明编写了如下所示的3行代码 :
list1 = [‘赵’,’钱’,’孙’,’李’,’周’,’吴’,’郑’,’王’] 
print(list1[1:-4]) 
print(list1[1:4]) 
小红看到代码后说:“小明,你这代码第2行与第3行,两次运行的print()函数,结果完全相同呀。” 
请判断,小红所说,是否正确?( )

正确 

错误 

试题编号:20220425-ll-029

试题类型:判断题

标准答案:正确

试题难度:一般

试题解析:考查学生对列表切片时,切片起始位置、终止位置的理解。本题运行结果,2行Print()都会打印出[‘钱’, ‘孙’, ‘李’],所以小红所说是正确的。

考生答案:正确

考生得分:2

是否评分:已评分

评价描述:

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

36.

小明用冒泡排序算法编写了一段代码,请帮他把代码中红色标记的①②③处,补充完整。

a = [8,4,2,11,3,9]

n = len(a)
for i in range(0,          ):
    for j in range(0,     ②     ):
        if a[j]>a[      ]:
            a[j],a[j+1] = a[j+1],a[j]      
print(a)

试题编号:20220425-ll-037

试题类型:编程题

标准答案:

参考程序:

a = [8,4,2,11,3,9]
n = len(a)
for i in range(0, n):
    for j in range(0, n-i-1):
        if a[j]>a[j+1]:
            a[j],a[j+1] = a[j+1],a[j]      
print(a)

试题难度:较难

试题解析:

评分标准:

(1)n;   (2分)

(2)n-i-1;(4分)

(3)j+1 。 (4分)

37.

下面程序,按字典序列统计出单词的个数,执行结果如下:
are:2
first:2
happy:1
is:3
your:2

请补全下列代码中的①②③④四处。

a=[‘is’,’happy’,’is’,’your’,’are’,’first’,’first’,’is’,’are’,’your’]

n=len(a)-1

for i in range(0,n):

    for j in range(i+1,n+1):

        if a[i]>a[j]:

                       

key=a[0]

i=1

ans=1

while i<=n:

    if key==a[i]:

                   

        i+=1

    else:

        print(a[i-1]+’:’+str(ans))

        key=a[i]

                    

        i+=1

             

试题编号:20220504-ppz-023

试题类型:编程题

标准答案:

参考程序:

a=[‘is’,’happy’,’is’,’your’,’are’,’first’,’first’,’is’,’are’,’your’]
n=len(a)-1
for i in range(0,n):
    for j in range(i+1,n+1):
        if a[i]>a[j]:
            a[i],a[j]=a[j],a[i]
key=a[0]
i=1
ans=1
while i<=n:
    if key==a[i]:
        ans=ans+1
        i+=1
    else:
        print(a[i-1]+’:’+str(ans))
        key=a[i]
        ans=1
        i+=1
print(a[i-1]+’:’+str(ans)) 

试题难度:较难

试题解析:

评分标准:

①a[i],a[j]=a[j],a[i];  (4分)

②ans=ans+1;(4分)

③ans=1;   (4分)

④print(a[i-1]+’:’+str(ans))。(4分)

38.

请读取文件”cj.csv”的数据,数据内容如下图所示:

下列代码实现了读取“姓名”和“体质测试”信息,输出“体质测试”考核为A的数量(大于等于85分)并显示相应同学姓名,请你补全代码。

import csv

with open(‘cj.csv’) as f:

     rows = list(    )

     n=0

     for row in rows[1:]:

        if     :

            print(row[0])

            n+=1

print(n) 

试题编号:20220512-xb-42

试题类型:编程题

标准答案:

参考程序:

import csv
with open(‘cj.csv’) as f:
    rows = list(csv.reader(f))
    n=0
    for row in rows[1:]:
        if int(row[1])>=85:
            print(row[0])
            n+=1
print(n)

试题难度:一般

试题解析:

评分标准:

(1)csv.reader(f); (2分)

(2)int(row[1])>=85。(2分)