当前位置: 首页 > article >正文

2024年9月中国电子学会青少年软件编程(Python)等级考试试卷(三级)答案 + 解析

目录

 

一、单选题

二、判断题

三、编程题


 

一、单选题

1、以下表达式的值为True的是?( )

A. all(' ','1','2','3')

B. any([])

C. bool('abc')

D. divmod(6,0)

正确答案:C

答案解析:A和B选项,False;D选项,报错;C选项,True。

2、下列代码的运行结果是?( )

l=list(map(float, (1,2,3,4)))

print(l)

A. [1,2,3,4]

B. ['1','2','3','4']

C. [1.0,2.0,3.0,4.0]

D. ['1.0','2.0','3.0','4.0']

正确答案:C

答案解析:将元组转换成浮点型列表。

3、关于filter()函数的使用,以下哪个选项不正确?( )

A. filter()函数可以用于过滤出一个序列里符合函数功能的元素

B. filter()函数接收两个参数

C. filter()函数只能过滤列表

D. filter()函数可与lambda匿名函数一起使用

正确答案:C

答案解析:filter()可以过滤列表、元组、集合或字符串等。

4、运行以下代码,得到的结果是?( )

a='20'

b='24'

print(a+b)

A. 44

B. 2024

C. 20+24

D. '44'

正确答案:B

答案解析:两个字符串相加。

5、表达式[1, 2, 3]*3的执行结果为?( )

A. [3,6,9]

B. [1,2,3],[1,2,3,],[1,2,3,]

C. [1, 2, 3, 1, 2, 3, 1, 2, 3]

D. [123123123]

正确答案:C

答案解析:将列表连续输出3次。

6、表达式[3] in [1, 2, 3, 4]的结果是?( )

A. 2

B. 3

C. False

D. True

正确答案:C

答案解析:[3]in[1,2,3,4]是后面这个列表是否包含另一个列表,且这个列表里面还有个数字3,显然不包含,所以是False。

7、表达式 sum(range(5)) 的值为?( )

A. 5

B. 55

C. 10

D. 15

正确答案:C

答案解析:0到4相加等于10。

8、表达式list(map(str, [1, 2, 3, 4, 5])) 的值为?( )

A. [1,2,3,4,5]

B. {1,2,3,4,5}

C. ['1','2','3','4','5']

D. {'1','2','3','4','5'}

正确答案:C

答案解析:将序列中的元素从整型转换为字符串类型。

9、表达式divmod(6,2)结果为?( )

A. (3)

B. (0)

C. (3,0)

D. [3,0]

正确答案:C

答案解析:divmod(6,2)返回一个元组(6//2,6%3),余数为0不能省略。

10、运行以下代码,输出的结果是?( )

s='abcdefg'

print(min(s)+max(s))

A. ag

B. a

C. g

D. ga

正确答案:A

答案解析:s='abcdefg',min(s)='a',max(s)='g',所以结果为两个字符串相连,正确答案为:ag。

11、s='abcdefg',min(s)='a',max(s)='g',所以结果为两个字符串相连,正确答案为:ag。

A. 如果存在jieqi.csv文件,将覆盖jieqi.csv文件内容

B. 如果不存在jieqi.csv文件,将产生一个jieqi.csv文件

C. 程序运行后jieqi.csv文件内容不变

D. 程序运行错误

正确答案:B

答案解析:将列表对象输出为csv格式文件,如果不存在jieqi.csv文件,将产生一个jieqi.csv文件。参数“a”,为非覆盖,在原有内容之后,继续增加内容。

12、使用with语句可以读取csv格式文件中的数据,下图所示,有一个名为“jieqi.csv”的文件,小明针对这个文件编写如下代码,请问代码运行后打印在屏幕上的结果是?( )

with open("jieqi.csv","r") as f:

   c=f.read().strip().split(",")

print(c)

A. 立春,雨水,惊蛰,春分

B. [立春,雨水,惊蛰,春分]

C. ['立春,雨水,惊蛰,春分']

D. ['立春','雨水','惊蛰','春分']

正确答案:D

答案解析:从csv格式文件中读出数据,表示为列表对象。

13、使用 readline()和readlines()函数可以读取txt文件中的数据。D盘“jieqi.txt”文件内容如下图,小明编写了下面代码,运行后打印在屏幕上的结果是?( )

20240204205717_8434.png

f=open(r"D:\jieqi.txt", "r")

s = f.readline()

s1=f.readlines()

f.close()

print(s1)

A. 立春

B. 雨水

C. [雨水,惊蛰,春分]

D. ['雨水\n','惊蛰\n','春分\n']

正确答案:D

答案解析:readline() 每次读出一行内容,返回一个字符串对象,文件指针下移。readlines()读取下面整个文件所有行,保存在一个列表变量中,每行作为一个元素。

14、使用open函数打开一个csv格式文件后,如果要将整个文件里的内容读取存放到一个字符串变量中,需要使用以下文件操作的哪个函数?( )

A. read()

B. readline()

C. readlines()

D. write()

正确答案:A

答案解析:read() 方法用于从文件读取指定的字节数,默认读取整个文件。readline() 每次读出一行内容,返回一个字符串对象。readlines() 方法用于读取所有行并返回列表。write() 用于向文件中写入指定字符串。

15、将水果价格一维数据['苹果','8元']写入"jiage.csv"文件操作,横线上填写正确的是?( )

f = open("jiage.csv", "w")

ls = ['苹果','8元']

f._____(",".join(ls)+ "\n")

f.close()

A. insert

B. append

C. write

D. read

正确答案:C

答案解析:write() 用于向文件中写入指定字符串。

16、write() 用于向文件中写入指定字符串。

A. 它以 '0b' 开头,表示这是一个二进制数

B. 它只包含字符 '0' 和 '1'

C. 它的长度总是固定的

D. 它表示的是输入整数的二进制表示

正确答案:C

答案解析:bin() 函数返回的字符串长度不是固定的,它取决于输入整数的二进制表示所需的位数。例如,bin(2) 返回 '0b10',而 bin(10) 返回 '0b1010'。因此,选项 C(它的长度总是固定的)不是 bin() 函数返回值的特点。

其他选项 A、B 和 D 都是正确的。

17、对分查找,也称作二分查找,对一个列表中的元素进行对分查找的前提条件是?( )

A. 列表元素无序

B. 列表元素有序

C. 列表元素唯一

D. 列表元素数量必须是偶数

正确答案:B

答案解析:对分查找是一种基于比较的查找算法,它要求列表元素有序,以便在每次比较时能够缩小搜索范围。

18、对一组数据[7, 2, 9, 4, 8, 1, 4, 5]进行排序,使用选择排序按从大到小的顺序进行排列,则第1轮排序过后的结果是?( )

A. 2, 7, 4, 8, 1, 4, 5, 9

B. 9, 8, 7, 4, 2, 1, 4, 5

C. 9, 2, 7, 4, 8, 1, 4, 5

D. 7, 2, 4, 8, 1, 4, 5, 9

正确答案:C

答案解析:选择排序算法的主要思想是每次从未排序部分选择最小(或最大)元素,然后将它放到已排序部分的末尾。

所以选项C正确,第1轮排序找到最大值9,将9和7交换位置;

选项A用的是冒泡排序;

选项B是第2轮排序后的结果;

选项D将9放到了数据的末端,排序后的结果是从小到大排序的。

19、对于列表[3, 1, 5, 8, 2, 10]按从左往右进行升序的冒泡排序,则第几轮排序后的结果就是有序的?( )

A. 3

B. 4

C. 5

D. 6

正确答案:A

答案解析:第1轮:1 3 5 2 8 10;第2轮:1 3 2 5 8 10;第3轮:1 2 3 5 8 10。

20、十六进制数2024转换为二进制数是?( )

A. 2024

B. 10000000100100

C. 11000011100

D. 10000010100

正确答案:B

答案解析:十六进制数转二进制数,从低位起,每1位十六进制数可转换为4位二进制数,最左边的0可以省略,但中间的0不可省略。A为十进制数,C中十六进制2应为0010,D选项将中间的部分0省略了,故选B。

21、十进制数15转换为二进制数,其结果是?( )

A. F

B. 10101

C. 1101

D. 1111

正确答案:D

答案解析:十进制转二进制,采用除2倒取余数的方法,故选D。A为十六进制数,B和C混淆了十六进制和二进制的转换方法。

22、下列有关数制的说法,错误的是?( )

A. 二进制的基本数码是0、1、2

B. 数据在计算机内部是以二进制方式存储和处理的

C. 十六进制采用逢十六进一的进位规则

D. 十进制的8大小等同于十六进制的8,但十进制的18不等同于十六进制的18

正确答案:A

答案解析:二进制的基本数码是0、1,进位规则是逢二进一,故不存在2数码。

23、表达式oct(11)的值是?( )

A. '0b11'

B. '0x11'

C. '0o13'

D. 13

正确答案:C

答案解析:oct()函数的功能是将十进制整数转换为八进制的数字字符串,结果为字符串。'0b'代表二进制,'0x'代表十六进制,'0o'代表八进制。

24、请选择,下面代码运行之后的结果是?( )

a = '2'

b = '4'

try:

   c = a * b

   print(c)

except:

   print('程序出错!')

else:

   print('程序正确!')

A. 8

B. 24

C. 程序正确!

D. 程序出错!

正确答案:D

答案解析:变量a与b都是字符串,不能进行乘法运算,所以经过异常处理之后,会打印”程序出错!“。

25、小明编写了如下代码,请问,代码运行后屏幕上打印出的结果是?( )

x = 8

y = [3,2,1,0]

z = y.pop(1)

try:

   a = int(x / z)

except:

   print('程序出错!')

else:

   pass

finally:

   print(a)

A. 8

B. 4

C. 程序出错

D. 屏幕上无输出

正确答案:B

答案解析:本题考查学生对try-except-else-finally语句结构的理解。代码中的z = y.pop(1),z的值是整数2,所以x/z不会有异常,结果是4。

二、判断题

26、表达式bool(max(6,7,8))和max(bool(6,7,8))的运行结果都是

正确答案:错

答案解析:bool(max(6,7,8))的运行结果为True;max(bool(6,7,8))会报错,因为bool()最多有一个参数,此题有3个参数。

27、map()函数不改变原列表,而是返回一个新列表。( )

正确答案:对

答案解析:map()函数返回的是一个新列表。

28、abs(-1.0)的运行结果为1。( )

正确答案:错

答案解析:abs(-1.0)的运行结果为1.0。

29、列表c=[[' 张三','88'],['李四','92'],['王五','85']]可以表示二维数据。( )

正确答案:对

答案解析:二维列表本身是一个列表,其中的每一个元素又是一个列表。c是二维列表数据。

30、在Python中使用with语句打开文件,程序运行处理结束后会自动关闭被打开的文件。( )

正确答案:对

答案解析:在Python中使用with语句,结束文件时,Python会自动调用close()关闭这个文件。

31、在Python中open('city.csv','r')命令的作用是以可写入的方式打开文件名为city的csv格式文件。( )

正确答案:错

答案解析:open()函数中参数"r"是以只读方式打开文件。

32、十六进制转换成十进制数,其位数一定会变多。( )

正确答案:错

答案解析:该说法太绝对。比如,十六进制0~9转换成十进制数,其结果是一样的。

33、假设五进制数2用(2)5表示,若表达式(6)n+(1)n=(10)n成立,那么该n进制一定为七进制。( )

正确答案:对

答案解析:由于数字6的存在,该进制一定是7进制及以上,6+1发生了进位,说明是逢七进一,所以一定是7进制,8进制及以上构不成进位。

34、请仔细阅读以下代码,判断这段代码能否正常运行?( )

while True :

   a = input('请输入一个整数,若不是整数将会强制让你重新输入:  ' )

   try:

       b = int(a)

   except:

       print('你输入的不是整数!将返回重输。')

   else:

       print('你输入的是整数,程序结束。')

       break

正确答案:对

答案解析:本题需要学生正确理解 try—except—else三个语句的作用,代码利用了错误处理机制,所以能正确运行。

35、acsii(‘0’),运行的结果是48。( )

正确答案:错

答案解析:acsii(‘0’),运行的结果是“‘0’”。

三、编程题

36、某实验小学举行了跳绳比赛,其中四年级1班和2班的比赛数据存储在“ts.csv”中,如图所示,现要求Python读取该比赛数据文件,并统计各班成绩在110(含110)以上的人数。

实现代码如下,请你补全划线处代码:

import csv

with open ("/data/ts.csv") as fs:

   hs=list(csv.reader(        ①        ))

   c1=0

   c2=0

   for i in hs[1:]:

       if i[0]=="1"and       ②        >=110:

           c1+=1

       elif i[0]=="2"and       ③        >=110:

           c2+=1

   print("四(1)班110以上的有:"+str(c1)+"个")    print("四(2)班110以上的有:"+str(c2)+"个")

答案解析:

import csv

with open ("/data/ts.csv") as fs:

   hs=list(csv.reader(fs))

   c1=0

   c2=0

   for i in hs[1:]:

       if i[0]=="1"and int(i[1])>=110:

           c1+=1

       elif i[0]=="2"and int(i[1])>=110:

           c2+=1

   print("四(1)班110以上的有:"+str(c1)+"个")    print("四(2)班110以上的有:"+str(c2)+"个")

评分标准:

(1)fs 或等效答案;(2分)

(2)int(i[1]) 或等效答案;(1分)

(3)int(i[1]) 或等效答案。(1分)

37、有一个数字构成的列表 a = [6,2,3,5,4,5,2,6,5,5,4,3,7],小明用冒泡排序算法编写了一段程序,将列表中的数字从小到大排列,运行结果为: [2, 2, 3, 3, 4, 4, 5, 5, 5, 5, 6, 6, 7]  ,请将下面程序中红色 ①②③ 处欠缺的代码补充完整。

a = [6,2,3,5,4,5,2,6,5,5,4,3,7]

for i in range(0,        ①        ) :

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

       if       ③        :

           a[i] , a[j] = a[j] , a[i]

print(a)

参考程序:

a = [6,2,3,5,4,5,2,6,5,5,4,3,7]

for i in range(0,len(a)-1) :

    for j in range(i+1 , len(a)) :

        if a[i] > a[j] :

           a[i] , a[j] = a[j] , a[i]

print(a)

评分标准:

(1)len(a)-1 或等效答案;(4分)

(2)len(a) 或等效答案;(2分)

(3)a[i]  > a[j] 或等效答案。(4分)

说明:本题考生如果利用双重循环另写一个冒泡排序程序,且运行完全正确,给8分,运行不正确不给分。

38、鸡兔同笼

小明在解决经典的“鸡兔同笼”问题时,使用“穷举法”编写了以下代码。请将代码中红色①②③④处补充完整:

tou = int(input("请输入笼中鸡与兔脑袋的总数:  "))

jiao = int(input("请输入笼中鸡与兔脚的总个数:  "))

a = 0

for ji in range(       ①        ):

   tu =       ②        - ji

   if 2 * ji  +  4 * tu  ==       ③        :

       print("鸡的个数为:", ji, "兔的个数为:", tu)

       a = a + 1

if a ==       ④        :

   print("头数与脚数不合理,没有合适的结果。")

参考程序:

tou = int(input("请输入笼中鸡与兔脑袋的总数:  "))

jiao = int(input("请输入笼中鸡与兔脚的总个数:  "))

a = 0

for ji in range(tou+1):

   tu = tou - ji

   if 2*ji + 4*tu == jiao:

       print("鸡的个数为:",ji,"兔的个数为:",tu)

       a = a + 1

if a == 0 :

   print("头数与脚数不合理,没有合适的结果。")

评分标准:

(1)tou+1 或等效答案;(4分)

(2)tou 或等效答案;(4分)

(3)jiao 或等效答案;(4分)

(4)0 或等效答案。(4分)


http://www.kler.cn/news/364040.html

相关文章:

  • jQuery快速填充非form数据
  • MoeCTF 2024 ---Misc方向WP
  • Flutter 12 实现双击屏幕显示点赞爱心多种动画(AnimationIcon)效果
  • 骨传导耳机哪个品牌好?2024年五大热门精选骨传导耳机推荐
  • Python CGI编程-get、post-复选框、单选框、文本框、下拉列表
  • 机器学习-树结构2-随机森林
  • PHP企业门店订货通进销存系统小程序源码
  • 定位中的信号干扰与噪声处理
  • 手机群控软件苹果iOS批量控制进化历程 解析及最新动态
  • 普通数组矩阵
  • 西南大学软件专硕考研难度分析!
  • 配置观察端口
  • 【主机漏洞扫描常见修复方案】:Tomcat安全(机房对外Web服务扫描)
  • 图集短视频去水印云函数开发实践——小红书
  • 小白投资理财 - 解读市销率,市现率
  • 新电脑Win11家庭中文版跳过联网激活方法(教程)
  • Go 语言教程:8.数组
  • 毕业设计 基于STM32单片机健康检测/老人防跌倒系统 心率角度检测GSM远程报警 (程序+原理图+元件清单全套资料)
  • 基于springboot企业微信SCRM管理系统源码带本地搭建教程
  • python学习之路 - python进阶【闭包、装饰器、设计模式、多线程、socket、正则表达式】
  • centos-LAMP搭建与配置(论坛网站)
  • 20241024拿掉飞凌OK3588-C的开发板linux R4启动时的LOGO
  • NSSCTF
  • 大话红黑树之(2)源码讲解TreeMap-Java
  • 探索人工智能在自然语言处理中的应用
  • JVM学习之路(3)类加载器