分享

2021年9月电子学会Python等级考试试卷(三级)答案解析...

 昵称45893186 2022-11-01 发布于浙江

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

分数:100.00            题数:38

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

1. 使用map函数可以实现列表数据元素类型的转换,而无需通过循环。则将列表L=['1','3','5','7','9']转换为列表[1,3,5,7,9]的函数写法为?( )

A、map(int,L)

B、list(map(int,L))

C、map(L,int)

D、list(map(L,int))

题型:单选题

答案:B

难度:较难

试题解析:注意两个点,一个是map的参数为类型、序列。另外,map生成的对象不是列表,需要强制转换。

2. 以下关于len()函数的说法中错误的是?( )

A、len()函数可以用于返回字符串中的字符数

B、len()函数可以用于返回列表中的元素个数

C、len("I love China" )的结果为10

D、len("I love China" )的结果为12

题型:单选题

答案:C

难度:一般

试题解析:len("I love China" )的结果为12,所以C项错误。空格也要统计入内。

3. 关于Python异常处理的解释,描述正确的是?( )

A、一般情况下,在Python正常处理程序时也会发生一个异常

B、异常处理增加了程序代码长度,降低了可读性

C、在程序中加入异常处理会使程序出现错误

D、当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行

题型:单选题

答案:D

难度:一般

试题解析:当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。

4. Python文件常用的写入方式有w+和a+,它们的相同点是?( )

A、覆盖写

B、追加写

C、若文件不存在就创建

D、每次写的时候会自动覆盖上一次的内容

题型:单选题

答案:C

难度:容易

试题解析:w+模式可读可写,若文件不存在就创建 a+模式可读可写,若文件不存在就创建

5. Python标准库math中用来计算平方根的函数是?( )

A、sqrt

B、max

C、min

D、print

题型:单选题

答案:A

难度:一般

试题解析:本题主要是一些常用函数的功能考查,要求了解常用函数的功能

6. 某同学上完体育课回教室发现丢失了重要的物品,于是他找到班主任求助。班主任打开视频监控,然后把视频进度拖到这节课中间时间点,发现水杯已经丢了,于是判定是前半节课丢的。接着又把视频进度拖到前面一半的一半……重复以上过程,很快就锁定了物品丢失的真相。以上描述,体现出了哪一种算法思想?( )

A、二分法

B、选择排序法

C、递归法

D、迭代法

题型:单选题

答案:A

难度:一般

试题解析:

7. 去掉列表中的部分数据,例如去掉列表[1,2,3,4,5,6,7,8,9]中3的倍数,可以使用哪一函数来实现?( )

A、map

B、filter

C、zip

D、enumerate

题型:单选题

答案:B

难度:一般

试题解析:过滤函数使用filter,map是按一定规则得到一个新序列,zip是组合序列,enumerate是为序列添加索引。

8. 定义一个列表 num=list(range(3,6)) print(num) 输出的结果是?( )

A、[0,1,2,3]

B、[0,1,2,3,4,5,6]

C、[3,4,5]

D、[3,4,5,6]

题型:单选题

答案:C

难度:一般

试题解析:range(3,6) 对应(3,4,5),转换为列表后,输出结果为[3,4,5]

9. print(divmod(34,8))运行结果是?( )

A、4  2

B、4

C、2

D、2 4

题型:单选题

答案:A

难度:一般

试题解析:学习divmod函数的用法

10. 八进制10的十进制值是?( )

A、8

B、10

C、20

D、24

题型:单选题

答案:A

难度:一般

试题解析:八进制10的十进制值是为8,故选A

11. a=3.1415926

round(a,2)

运行结果是?( )

A、3

B、3.14

C、3.141

D、3.1415926

题型:单选题

答案:B

难度:较难

试题解析:保留2位小数。

12. Python内置函数(    )用来返回序列中的最小元素?( )

A、mini()

B、read()

C、max()

D、min()

题型:单选题

答案:D

难度:容易

试题解析:返回最小值的是min()函数

13. 下面表达式的运行结果与print(divmod(37,9))运行结果相同的是?( )

A、print(37%9,37//9)

B、print((37%9,37//9))

C、print(37//9,37%9)

D、print((37//9,37%9))

题型:单选题

答案:D

难度:一般

试题解析:首先要打印一个元组,print内部应该还有一个括号,另求商使用//,所以为print((37//9,37%9))

14. 已知输入变量x = 'hello world', 调用函数x.replace('l', 'h')的结果为?( )

A、'hello world'

B、'lello world'

C、'hello worhd'

D、'hehho worhd'

题型:单选题

答案:D

难度:一般

试题解析:学习函数x.replace(),用 l 来替换 h 的用法

15. 下列十六进制数中,转换为二进制数后含有偶数个“1”的是?( )

A、0xF8

B、0xE0

C、0xA9

D、0x15

题型:单选题

答案:C

难度:较难

试题解析:将十六进制转换二进制,对1的个数进行统计。

16. 以下表达式是十六进制整数的选项是?( )

A、16

B、0b16

C、0x16

D、'0x16'

题型:单选题

答案:C

难度:一般

试题解析:python中用0x表示16进制,D为字符。故选C

17. 给已有文件“实验中学学生花名册.txt”增加两名学生,而且不能覆盖原有的内容。 下面代码正确的是?( )

A、filename="实验中学学生花名册.txt" 

with open(filename,"w") as f:

    f.write("黎明\n")

    f.write("方芳\n")

B、filename="实验中学学生花名册.txt" 

with open(filename,"r") as f:

    f.write("黎明\n")

    f.write("方芳\n")

C、filename="实验中学学生花名册.txt" 

with open(filename,"r+") as f:

    f.write("黎明\n")

    f.write("方芳\n")

D、filename="实验中学学生花名册.txt"

with open(filename,"a") as f:

    f.write("黎明\n")

    f.write("方芳\n")

题型:单选题

答案:D

难度:一般

试题解析:

18. 以下关于二进制整数的定义,正确的是?( )

A、0B1014

B、0b1010

C、0b1019

D、0bC3F

题型:单选题

答案:B

难度:一般

试题解析:二进制整数以Ob或OB开头,后面跟二进制数0和1。A、C、D三项中有4、9、C、3、F,这些都不是二进制数。

19. 设s="happy time",那么print(s[-2:])的结果是?( )

A、me

B、happy

C、time

D、ha

题型:单选题

答案:A

难度:容易

试题解析:本试题主要考查print函数的用法

20. filename = "中国诗人.txt" 

with open(filename,"w") as file: 

    file.write("唐 李白\n")

    file.write("唐 白居易\n") 

以上程序执行程序后,"中国诗人.txt"文件内容为?( )

A、唐 李白 唐 白居易

B、唐 李白 

唐 白居易

C、唐 李白\n 唐 白居易

D、唐 李白\n 唐 白居易\n

题型:单选题

答案:B

难度:一般

试题解析:

21.

ord()函数可以将一个字符转化成ascii码值,而chr函数则是相反的过程。 已知'a'的ascii码值为97,'A'的ascii码值为65, 则Python完成小写转大写的核心代码为?( )

a=input("请输入一个小写字母:\n") b=________________ print("转化结果为:"+b)

A、chr(ord(a)-31)

B、ord(chr(a)-32)

C、chr(ord(a)+32)

D、chr(ord(a)-32)

题型:单选题

答案:D

难度:一般

试题解析:这个题目从函数角度其实考查的是chr函数的使用,既然最终是个字符,显示到字符串中,肯定是使用chr。 至于加减,题中给出的码值差,已经很明显。故选D。

22. 关于文件的读写,下列解释表述错误的是?( )

A、读取模式('r')

B、写入模式('w')

C、读写模式('w')

D、附加模式('a')

题型:单选题

答案:C

难度:一般

试题解析:

23.

小明编写了一个插入排序的算法,为列表arr = [5, 33, 21, 67, 39, 73, 7, 43 ]中的数值进行排序,他在调试时,如下图所示有意修改了循环的次数,请问,现在代码运行后print(arr)打印出的结果是?( )

 

A、[5, 33, 21, 67, 39, 73, 7, 43]

B、[5, 21, 33, 67, 39, 43, 7, 73]

C、[5, 21, 33, 39, 67, 7, 73, 43]

D、[5, 21, 33, 67, 39, 73, 7, 43]

题型:单选题

答案:D

难度:一般

试题解析:本题考查学生对“插入排序”算法的理解,只循环了3次,所以正确答案是选项D

24. 异常处理的作用是不想让程序终止,如果出错了需要特殊处理。下列实现异常处理的语句是?( )

A、if /else

B、try/except

C、Warning

D、Error

题型:单选题

答案:B

难度:容易

试题解析:python中,try/except语句可以实现异常处理

25.

小明想对列表arr = [5, 33, 21, 67, 39, 73, 7, 43 ]中的数值进行排序,于是编写了“冒泡排序”代码,如下图。

请问,下图红线处,应该填入哪段代码?( )

 

A、

B、

C、

D、

题型:单选题

答案:D

难度:一般

试题解析:本题考查学生对冒泡排序算法的理解,正确答案为选项D

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

26. readline()执行结果为字符串,readlines()执行结果为列表。

题型:判断题

答案:正确

难度:一般

试题解析:

27. 猜一个20以内的随机数二分法比顺序查找的效率更高。

题型:判断题

答案:正确

难度:一般

试题解析:本题主要考查二分法的用法

28. Python中避免使用反斜线'\'指定文件路径时出错,如\t;常常使用斜线'/'或者双反斜线'\\'。

题型:判断题

答案:正确

难度:一般

试题解析:

29. bool函数判断整数参数的布尔值时,只要是非0参数,结果就为True。

题型:判断题

答案:正确

难度:容易

试题解析:

30. 二进制数转换为十六进制的方法是:从右到左将4位分成一段,左边不满4位的可以用0补满,分别转换为十六进制。

题型:判断题

答案:正确

难度:一般

试题解析:四位二进制表示一位十六进制

31. Python中的dir函数是一个文件夹操作函数,其主要作用是创建一个文件夹。

题型:判断题

答案:错误

难度:较难

试题解析:dir是查看对象的方法。

32. 二进制数与十六进制数的末位是“1”,各转换为十进制数后都是奇数。

题型:判断题

答案:正确

难度:一般

试题解析:二进制、八进制、十六进制末位数决定该数奇偶

33. 在try-finally异常处理结构中,无论是否发生异常,都会处理最后的代码。

题型:判断题

答案:正确

难度:一般

试题解析:try-finally 语句无论是否发生异常都将执行最后的代码。

34. song.csv文件中第一列是歌曲名,使用以下Python程序可以把歌曲名单一一读取出来。

import csv

with open('song.csv', 'r') as f:

     reader = csv.reader(f)

     for i in reader:

         print(i[0])

题型:判断题

答案:正确

难度:较难

试题解析:通过文件的方式读取数据,再依次将读取的数据输出,注意输出只需要歌曲名单,即第一列i[0]

35. 执行代码 x, y, z = sorted([1, 3, 2]) 之后,变量y的值为 1 。

题型:判断题

答案:错误

难度:一般

试题解析:本题的主要考核sorted函数的用法

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

36.

输入10个数据进行升序排序,并在这有序数据上插入一个数据,使之仍然有序。

程序代码如下,请补全。 

lis=[]

for i in range(10):

    x=int(input('输入待排序数据%d:'%(i)))

    lis.append(x) 

for i in range(    ①    ):

    for j in range(i,len(lis)):

        if     ②    :

            lis[i],lis[j]=lis[j],lis[i]

print(lis)

n=int(input('输入一个需要插入的数据:'))

lis.append(n)

for i in range(    ③    ):

    if     ④    :

        for j in range(i,len(lis)):

            lis[j],lis[-1]=    ⑤    

        break

print(lis)

题型:编程题

答案:

参考答案:

①   len(lis)-1 (或 len(lis))    (3分)

②   lis[i]>lis[j]       (4分)

③   len(lis)-1         (3分)

④   lis[i]>=n         (2分)

⑤   lis[-1],lis[j]      (4分)

难度:一般

试题解析:lis=[]

for i in range(10):

    x=int(input('输入待排序数据%d:'%(i)))

    lis.append(x) 

for i in range(len(lis)-1):

    for j in range(i,len(lis)):

        if lis[i]>lis[j]:

            lis[i],lis[j]=lis[j],lis[i]

print(lis)

n=int(input('输入一个需要插入的数据:'))

lis.append(n)

for i in range(len(lis)-1):

    if lis[i]>=n:

        for j in range(i,len(lis)):

            lis[j],lis[-1]=lis[-1],lis[j]

        break

print(lis)

37.

小文的运动时间数据存储在文件“sport.csv”中,数据内容如下图显示:

 

 

下列代码实现了读取数据,求和并统计个数,输出平均时长,并保留2位小数,请你补全代码。

import csv

with open("/data/①") as f:

    rows = list(csv.reader(f))

    s=0

    c=0

    for row in rows[1:]:

        s+=int(②)

        c=c+1

print(round(③,2))

题型:编程题

答案:

参考答案:

① sport.csv(1分) 

② row[0](2分) 

③ s/c(1分)

难度:一般

试题解析:import csv

with open("sport.csv") as f:

    rows = list(csv.reader(f))

    s=0

    c=0

    for row in rows[1:]:

        s+=int(row[0])

        c=c+1

print(round(s/c,2))

38. 给定一个整数 num,从 1 到 num 按照下面的规则返回每个数:

如果这个数被 3 整除,返回 'Apple'。

如果这个数被 5 整除,返回 'Pie'。

如果这个数能同时被 3 和 5 整除,返回 'ApplePie'。

如果这个数既不能被 3 也不能被 5 整除,返回这个数字的字符串格式。

n=int(input("请输入一个数字:"))

results=[]

for i in range(1,①):

    if ②:

        results.append("ApplePie")

    elif i%3==0:

        results.append("Apple")

    elif i%5==0:

        results.append("Pie")

    else:

        results.append(③)

print(results)

题型:编程题

答案:

参考答案:

① n+1(3分) 

② i%3==0 and i%5==0(4分) 

③ str(i)(3分)

难度:一般

试题解析:n=int(input("请输入一个数字:"))

results=[]

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

    if i%3==0 and i%5==0:

        results.append("ApplePie")

    elif i%3==0:

        results.append("Apple")

    elif i%5==0:

        results.append("Pie")

    else:

        results.append(str(i))

print(results)

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多