2023年03月 Python(三级)真题解析#中国电子学会#全国青少年软件编程等级考试

news/2024/11/30 12:42:19/

在这里插入图片描述

Python等级考试(1~6级)全部真题・点这里

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

第1题

十进制数111转换成二进制数是?( )

A: 111
B: 1111011
C: 101111
D: 1101111

答案:D

十进制转二进制,采用除二倒取余数,直到商为0为止。

第2题

某班有36人,王老师想给每位同学分配一个二进制的学号,那么该学号至少需要多少位?( )

A: 36
B: 5
C: 6
D: 7

答案:C

1个二进制位可以编制2个号码,即0、1,2个二进制位可以编制2×2个号码,即00、01、10、11, 3个二进制位可以编制2×2×2个号码,即000、001、010、011、100、101、110、111,依次类推,5个2相乘可以得到32个号码,不够用,故需要6位。

第3题

数据的存储形式多种多样,如s1=[[“李亮”,“98”],[“王宁宁”,“95”],[“莫晓珍“,“88”]],s2=[“李亮”,“98”,“王宁宁”,“95”,“莫晓珍“,“88”],有关s1与s2下列说法正确的是?( )

A: 都是用列表实现的
B: s1是一维列表
C: s2是二维列表
D: 要取出“王宁宁”同学的成绩,方法是一样的,用s1[4]或s2[4]

答案:A

Python中列表用[ ]表示。s1是二维列表,s2是一维列表。S[1]中用s1[1][1]取出“王宁宁”同学的成绩,s2中可用s2[3]取出“王宁宁”同学的成绩。

第4题

a=["跳绳","跳高","跳远","铅球"] 
fs=open("sports.csv","w")
fs.write(" ".join(a)+'\n')
fs.close()

关于上述代码,下列说法正确的是?( )

A: 若”sports.csv”文件不存在,则程序出错
B: 程序的最后结果是:跳绳 跳高 跳远 铅球
C: 程序中的fs.close()代码可有可无
D: “w”参数表示不能修改原csv文件

答案:B

程序段的功能是表示将a列表中各项元素用空格符进行连接,并写入到sports.csv文件中,“w”表示可写入。若文件不存在,可自动创建。

第5题

现有水果价格数据jg=[[‘草莓’,15],[‘梨子’,9],[‘苹果’,10],[‘桔子’,4]],需要将其打印成二维表格数据形式,程序代码如下:

jg=[[‘草莓’,15][‘梨子’,9],[‘苹果’,10][‘桔子’,4]]
for row in range(len(jg)):for col in range(len(jg[row])):print(____________,”\t”)

上述划线处代码是?( )

A: jg[row]
B: jg[col]
C: jg[col][row]
D: jg[row][col]

答案:D

外循环遍历每个子列表的索引,内循环遍历子列表中每项元素的索引。

第6题

运行下列程序段:

try:a=int(input("请输入被除数:"))b=int(input("请输入除数:"))x=a/bprint("商是:",x)
except:print("输入有错!请检查。")
else:print("正确!")
finally:print("程序结束。")

若输入a为8,b为4,则输出结果是?( )

A:

商是:2
正确!

B:

商是:2
正确!
程序结束。

C:

商是:2.0
程序结束。

D:

商是:2.0
正确!
程序结束。

答案:D

当try语句块正确时,执行try代码块结束,将执行else语句块,最后执行finally语句块。当输入有误,则执行except语句块和finally语句块。

第7题

已知A的ASCII码值为65,

s=”China”
k=abs(-4.8)

则表达式ord(min(s))+k的值是?( )

A: 71.8
B: 63
C: 61
D: 62

答案:A

min()取最小值,ord()求得对应字符的ASCII码值,abs()则为绝对值函数。C的ASCII码值为67,67+4.8=71.8。

第8题

divmod(8,5)的结果是?( )

A: 1
B: 3
C: (1,3)
D: [1,3]

答案:C

divmod()函数返回的是商和余数组成的元组,而不是列表,也不是单个的商或余数。

第9题

若有代码:

name=[“李明”,“王宁”,“朱倩”]
for a,i in enumerate(name):print(a,i)

则显示的结果是?( )

A:

0 李明
1 王宁
2 朱倩

B:

李明
王宁
朱倩

C:

李明,王宁,朱倩

D:

1 李明
2 王宁
3 朱倩

答案:A

enumerate()函数用于将序列对象组合为索引与数据元素的元组。程序中的a和i分别遍历元组中的索引和数据元素。索引从0开始。

第10题

有关于print()语句的运用,下列输出结果有误的是?( )

A: print(“Happy!”)
B: print(李明)
C: print('Happy!’)
D: print(2023)

答案:B

print()是输出语句。Python中字符串带单引号、双引号或三引号,变量名不带引号,“李明”这个变量并没有进行赋值,故直接输出将发生错误。2023是数值类型,可直接输出。

第11题

若s=”y\nea\tr”,则len(s)的值为?( )

A: 8
B: 4
C: 6
D: 5

答案:C

len()表示求字符串长度,\n和\t是转义字符,分别占一个字符长度。其它各为一个长度。

第12题

b=[1,2,3,4,5],则sum(b)的值是?( )

A: 10
B: 14
C: 15
D: 12

答案:C

给定列表b=[1,2,3,4,5],sum(b)函数用于计算列表中所有元素的总和。对于列表b中的元素,1+2+3+4+5=15,因此sum(b)的值是15。

第13题

某算法的流程图如图所示,则该流程图的结构属于?( )

在这里插入图片描述

A: 顺序结构
B: 分支结构
C: 树形结构
D: 循环结构

答案:D

算法的基本结构有顺序结构、分支结构(也叫选择结构)、循环结构。循环结构的特点是在满足某一条件的情况下,重复进行某些操作,直到条件不满足。

第14题

有如下代码:

a=[25,37,49,64,73,75,85,91]
t=i=0
j=len(a)-1
key=int(input())
while i<=j:m=(i+j)//2if  a[m]==key:breakelif a[m]>key:j=m-1else:i=m+1t+=1
print(t)

若输入的key值是73,则程序输出的结果是?( )

A: 5
B: 1
C: 2
D: 3

答案:C

这是一道对分查找算法题。主要功能是在列表a中查找数字73,输出查找次数。根据i,j的初始值,m=(0+7)//2=3,第一次对分访问的数据是64,由于64<73,第二次查找范围是i=4,j=7不变,此时t=1;第二次对分访问的是5号索引位上的75,由于75>73,第三次查找的范围是i=4不变,j=4,此时t=2;第三次对分访问的是4号索引位的73,由于73==73,执行break中断整个循环,故t+=1不执行,最后t的值为2。

第15题

hex函数可以将十进制数转换成十六进制数。在Python交互式编程环境下,执行语句hex(2023)后,显示的运行结果是?( )

A: “0x7e3”
B: “0x7e6”
C: “0x7e7”
D: “0x7e8”

答案:C

在Python中,hex()函数用于将十进制数转换为十六进制数的字符串表示。执行hex(2023)后,将把十进制数2023转换为十六进制数,并以字符串形式返回。

对于十进制数2023,它的十六进制表示为"7e7"。Python中的hex()函数会在结果前面添加前缀"0x",以表示这是一个十六进制数。

因此,执行hex(2023)后,显示的运行结果是C: “0x7e7”。

第16题

int() 函数用于将一个字符串或数字转换为整型。在Python交互式编程环境下执行以下语句,会出现错误的一项是?( )

A: int()
B: int(1.0)
C: int(0x20,16)
D: int(‘2023’,8)

答案:C

int()函数的第一个参数应该是一个字符串或数字,而不是两个参数。0x20 是一个十六进制的整数,但是在转换为整数时,不需要指定基数,因此正确的写法是 int(0x20)。

第17题

一维数据可以存储在CSV格式文件中,下列描述正确的是?( )

A: 必须采用逗号分隔数据元素
B: 必须采用空格来分隔数据元素
C: 必须采用分号分隔数据元素
D: 允许采用特殊字符来分隔数据元素

答案:D

CSV格式文件允许采用特殊字符来分隔数据元素。

第18题

如果需要使用open函数以可读可写的方式打开一个存储二维数据的CSV文件,则open函数的文件打开模式不能设置成?( )

A: rw
B: r+
C: w+
D: a+

答案:A

open函数没有rw打开文件的模式。

第19题

在try…except…else…finally异常处理机制中,如果发生异常则完全不会被执行的代码块是?( )

A: try代码块
B: except代码块
C: else代码块
D: finally代码块

答案:C

Python异常处理机制中,如果发生异常则完全不会被执行的代码块是else代码块。

第20题

下列数据对象中,不能使用len()函数获取数据对象长度的是?( )

A: 2023
B: [2, 0, 2, 3]
C: [“Go”, “China!”]
D: (“Go”, “China!”)

答案:A

在Python中,len()函数用于获取字符串、列表、元组和其他可迭代对象的长度。然而,当应用于像2023这样的整数时,它会引发TypeError,因为整数不是可迭代的,也没有长度属性。

第21题

在Python交互式编程环境下,输入print(list(range(0,5,2)))语句,执行的结果是?( )

A: 存在语法错误,不能执行
B: [0,1]
C: [0, 1,2, 3,4,5]
D: [0, 2, 4]

答案:D

在Python中,range()函数用于生成一个整数序列,其参数可以指定起始值、终止值和步长。在此例中,range(0, 5, 2)会生成一个从0开始,步长为2,不包含5的整数序列。

使用list()函数将range对象转换为列表,然后通过print语句打印输出。因此,执行print(list(range(0, 5, 2)))语句后,会输出[0, 2, 4]。

第22题

在交互式编程环境下,执行all([0,1,2,3])语句后,返回的值是?( )

A: True
B: False
C: 1
D: 4

答案:B

all() 函数用于判断可迭代对象中的所有元素是否都为真。如果可迭代对象中的所有元素都为真,则返回 True;否则,返回 False。

在给定的列表 [0, 1, 2, 3] 中,0 被视为假值,而其他的数字都被视为真值。由于列表中存在一个假值,即 0,所以 all([0, 1, 2, 3]) 返回 False。

第23题

在交互式编程环境下,输入float(“1”)语句,执行的结果是?( )

A: 1
B: 1.0
C: ‘1’
D: 传入参数错误,不能执行

答案:B

float() 函数用于将一个字符串或数字转换为浮点数。在这个例子中,字符串 “1” 会被转换为浮点数 1.0。

因此,执行 float(“1”) 会返回浮点数 1.0。

第24题

在交互式编程环境下,输入max([(1,2),(2,3),(3,4),(2,6)])语句,执行的结果是?( )

A: 6
B: (3, 4)
C: (2,6)
D: (3,6)

答案:B

max() 函数用于返回给定可迭代对象中的最大值。在这个例子中,给定的可迭代对象是一个包含元组的列表。

元组 (1, 2), (2, 3), (3, 4), (2, 6) 中的每个元组都由两个整数组成。max() 函数会比较元组中的第一个元素,如果相等,则比较第二个元素。

在给定的列表中,(3, 4) 是最大的元组,因为它的第一个元素 3 最大。所以,max([(1,2),(2,3),(3,4),(2,6)]) 的结果是 (3, 4)。

第25题

“鸡兔同笼”是一个古老的数学问题,可以应用枚举法求解,也可以利用二元一次方程进行求解。以下是使用计算机解决“鸡兔同笼”问题的几个步骤:
①编写Python程序,用计算机进行处理。
②设计“鸡兔同笼”求解算法。
③验证算法的功能和性能。
④分析问题,确定解题任务。
使用计算机解决“鸡兔同笼”问题,正确的步骤是?( )

A: ②④①③
B: ④①②③
C: ④②③①
D: ④②①③

答案:D

使用计算机解决问题的一般过程是分析问题、设计算法、编写程序、验证算法等。

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

第26题

若name为若干元素的列表对象,file为CSV文件,则file.write(‘,’.join(name)+’\n’)语句可确保列表中每个写入CSV文件的数据,在表格软件打开时作为一个单元格存在。( )

答案:正确

列表中的数据元素以‘,’合并成字符串,最后在末位加换行符。

第27题

当程序发生异常时,我们可以用try…except…语句进行异常处理。但每个try模块只能有一个except语句块。( )

答案:错误

一个try语句模块可以设定多个except语句模块。

第28题

float()函数可将整数转换为浮点类型数据,但不能将字符串中的数字转换为浮点类型数据。( )

答案:错误

内建函数float()用于将整数和字符串数字转换为浮点数。

第29题

在执行语句x=input()的过程中,若键盘输入23并按下回车键,则x的值就被赋值为整数23。( )

答案:错误

input()用于接收键盘输入数据,默认为字符串类型,即键盘输入数字23,最终得到的是字符串“23”,若要得到整数23,需用int()进行转换。

第30题

input()用于接收键盘输入数据,默认为字符串类型,即键盘输入数字23,最终得到的是字符串“23”,若要得到整数23,需用int()进行转换。

答案:错误

bin() 返回一个整数或者长整数的二进制表示。

第31题

任何二维数据都可以用二维列表来表示。( )

答案:正确

二维列表是一种嵌套的列表结构,其中每个元素都是一个列表,形成了一个类似于网格的结构。通过使用行和列的索引,可以访问和操作二维列表中的元素。这使得二维列表成为表示二维数据的一种常见方式。无论是矩阵、图像、地图还是其他类型的二维数据,都可以使用二维列表来表示。

第32题

执行语句wq=[[0]*19]*19可以创建一个19行及19列的二维表。( )

答案:正确

这种方法使用了列表复制的特性,通过将一个包含19个0的列表复制19次来创建一个包含19行的二维列表。每一行都是对同一个列表对象的引用,因此任何对其中一个元素的修改都会在整个列表中反映出来。

第33题

bool()函数用于将给定参数或表达式转换为布尔类型。语句bool(-1)返回的是False值。( )

答案:错误

在Python中,bool()函数用于将给定参数或表达式转换为布尔类型。根据Python的布尔类型规则,以下值被视为False:

  • False(布尔值)

  • None(空值)

  • 0(整数中的零)

  • 0.0(浮点数中的零)

  • 空的序列(例如,空字符串、空列表、空元组)

  • 空的映射(例如,空字典)

除了上述值之外的所有其他值都被视为True。

当我们使用bool()函数将一个值转换为布尔类型时,非零的整数值(包括负数)会被视为True,而不是False。所以,语句bool(-1)返回的是True,而不是False。

第34题

enumerate()函数用于将列表、元组或字符串等可遍历的数据对象组合为一个索引序列。( )

答案:正确

enumerate()函数是Python中的一个内置函数,用于将可遍历的数据对象(如列表、元组、字符串等)组合为一个索引序列,返回一个枚举对象。每个元素都是一个包含索引和对应值的元组。

具体用法是在enumerate()函数中传入一个可遍历的对象作为参数,然后可以使用for循环或其他迭代方式遍历枚举对象,获取每个元素的索引和值。

第35题

十六进制9E的二进制数是8位。( )

答案:正确

十六进制转二进制,每1位十六进制数转换为4位二进制数,高位最左边的0可省略。E->1110,9->1001.共8位。

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

第36题

百钱买百鸡是我国古代数学家张丘建在《算经》一书中提出的数学问题,问题的原文是:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?这个问题用现代文描述起来就是:公鸡5文钱1只,母鸡3文钱1只,小鸡3只1文钱。如果用100文钱买100只鸡,那么公鸡、母鸡和小鸡各应该买多少只呢?请完成下面程序中空白处的语句,实现对问题的求解,找出所有符合题目要求的买鸡方案,并输出。
#设cock、hen、chicken分别为公鸡、母鸡和小鸡的数量,num为符合题目要求的方案数目。

num=0
for cock in range(1,21):for hen in range(1,34):for chicken in:  if== 100 and cock*5 + hen*3 + chicken/3 ==:num =print(f'第 {num} 种方案是:公鸡{cock}只,母鸡{hen}只,小鸡{chicken}只')

答案:

num = 0
for cock in range(1, 21):for hen in range(1, 34):for chicken in range(1, 101):if cock + hen + chicken == 100 and cock * 5 + hen * 3 + chicken / 3 == 100:num = num + 1print(f'第 {num} 种方案是:公鸡{cock}只,母鸡{hen}只,小鸡{chicken}只')

这段代码使用三重循环来遍历所有可能的公鸡、母鸡和小鸡的数量。在每次迭代中,我们计算小鸡的数量,然后检查是否满足总数量为100、总价值为100文钱的条件。如果符合条件,我们增加方案数目,并输出当前方案的详细信息。

第37题

妙妙学校举行了知识竞赛,有一、二、三3个班分别派出最优秀的5名代表参加此次竞赛。这15名代表的成绩存放于”jscj.csv”文件中,现在妙妙读取了其中的数据,数据内容如图所示:

在这里插入图片描述

下列代码实现了读取竞赛分数信息,并输出各班平均分的情况,请你补全代码。

import csv
with open("/data/jscj.csv",encoding="utf-8")as f:rows=list((f))sum=[0,0,0]for row in rows[1:]:if int(row[0])==1:sum[0]+=int(row[2])elif int()==2:sum[1]+=int(row[2])else:sum[2]+=int(row[2])for i in range(1,4):print(str(i)+"班的平均分为:",round(/5,2))

答案:

import csv
with open("/data/jscj.csv", encoding="utf-8") as f:rows = list(csv.reader(f))sum = [0, 0, 0]for row in rows[1:]:if int(row[0]) == 1:sum[0] += int(row[2])elif int(row[0]) == 2:sum[1] += int(row[2])else:sum[2] += int(row[2])for i in range(1, 4):print(str(i) + "班的平均分为:", round(sum[i-1] / 5, 2))

代码中的修改如下:

csv.reader(f):使用csv.reader函数读取CSV文件的内容,并将其转换为列表形式。

row[1]:将班级信息从row[0]改为row[1],因为在数据文件中,班级信息位于第二列。

sum[i-1]:计算平均分时,使用sum[i-1]表示第i班的总分,然后除以5得到平均分。

这样,代码将能够正确读取竞赛分数信息,计算各班的平均分并输出。注意,为了正确运行代码,请确保jscj.csv文件位于正确的路径下,并且文件编码为UTF-8。

第38题

若要生成一个由若干小写字母组成的互不重复的随机数组,已知小写字母的ASCII码值为97~122整数范围,并将其进行从小到大输出,如图所示,请将相关程序补充完整。

在这里插入图片描述

import random  #random是随机数模块
n=int(input("请输入元素个数(不超过26):"))
a=[]
#产生不重复的随机数组
for i in range(n):x=random.randint(97,122)  #产生97-122之间的随机整数while chr(x) in a:x=random.randint(97,122)a.append()
print(a)
#将各个元素进行排序输出
for i in range(n-1):k=ifor j in range(,n):if a[k]>a[j]:k=if i!=k:a[i],a[k]=print("该随机数组从小到大排列为:",a)

答案:

import random
n = int(input("请输入元素个数(不超过26):"))
a = []
# 产生不重复的随机数组
for i in range(n):x = random.randint(97, 122)  # 产生97-122之间的随机整数while chr(x) in a:x = random.randint(97, 122)a.append(chr(x))
print(a)
# 将各个元素进行排序输出
for i in range(n-1):k = ifor j in range(i+1, n):if a[k] > a[j]:k = jif i != k:a[i], a[k] = a[k], a[i]
print("该随机数组从小到大排列为:", a)

代码中的修改如下:

a.append(chr(x)):将生成的随机整数转换为对应的小写字母,并添加到数组a中。

range(i+1, n):在第二个循环中,j的范围应该是i+1n,以确保比较的是当前元素后面的元素。

k = j:在内层循环中,如果发现有更小的元素,则更新k的值为更小元素的索引。

a[i], a[k] = a[k], a[i]:利用Python的特性进行元素交换,将最小的元素放到正确的位置上。

这样,代码将能够生成由若干小写字母组成的互不重复的随机数组,并将其按从小到大的顺序进行输出。请注意,输入的元素个数n不能超过26,因为小写字母的个数有限。


http://www.ppmy.cn/news/1198286.html

相关文章

Oracle(13)Maintaining Data Integrity

目录 一、基础知识 1、Data Integrity 数据库的完整性 2、Types of Constraints 约束类型 3、Constraint States 约束状态 4、Guidelines for Constraints 约束准则 二、基础操作 1、Enabling Constraints 启用约束 2、命令方式创建约束 3、修改表创建的约束 4、删除约…

React——简便获取经纬度信息

引言 在现代的Web应用程序中&#xff0c;获取用户的地理位置信息是一项常见的需求。通过获取经纬度信息&#xff0c;我们可以为用户提供个性化的服务和定位功能。在本文中&#xff0c;我们将介绍如何在React应用程序中简便地获取用户的经纬度信息&#xff0c;并提供相应的代码…

AWS:EC2实例创建步骤

创立步骤修改 播报 假如你现已准备好运用Amazon Web服务(AWS)&#xff0c;那么&#xff0c;至少有两种做法能够用来创立以及运用AWS。一种做法是运用AWS API(应用程序编程接口)调用。主张你在大多数情况下运用第二种做法, 即AWS办理操控台&#xff0c;亚马逊的基于web的界面。 …

一个简单的opengl 程序

在freeglut 在mfc 下的编译_leon_zeng0的博客-CSDN博客 后想做一个简单的opengl 程序测试一下&#xff0c;发现也不容易。完成后贴在这里&#xff1a; 这个在visual studio 2019 下编译运行。路径设置好才能成功编译&#xff0c;可以参照上文设置环境。 #include <GL/free…

Vue3.0 路由

简介 Vue Router 是 Vue.js 的官方路由。它与 Vue.js 核心深度集成&#xff0c;让用 Vue.js 构建单页应用变得轻而易举。功能包括&#xff1a; 嵌套路由映射动态路由选择模块化、基于组件的路由配置路由参数、查询、通配符展示由 Vue.js 的过渡系统提供的过渡效果细致的导航控…

【漏洞复现】​金蝶云星空管理中心

目录 0x01 漏洞介绍 0x02 影响产品 0x03 语法特征 0x04 漏洞复现 0x01 漏洞介绍 金蝶云星空是一款基于领先的可组装低代码PaaS平台&#xff0c;全面服务客户研发、生产、营销、供应链、财务等领域转型的企业管理服务平台。它已支持IPD、精益、阿米巴等先进管理理念在3.1万余…

【深度学习】pytorch——Autograd

笔记为自我总结整理的学习笔记&#xff0c;若有错误欢迎指出哟~ 深度学习专栏链接&#xff1a; http://t.csdnimg.cn/dscW7 pytorch——Autograd Autograd简介requires_grad计算图没有梯度追踪的张量ensor.data 、tensor.detach()非叶子节点的梯度计算图特点总结 利用Autograd实…

[cpp primer随笔] 16. 【不完整类型】的概念

我相信很多人都曾在学习C的过程中&#xff0c;像下面这样干过&#xff1a; class Example{Example obj; // error: 不允许使用不完整的类型 };即在类A中&#xff0c;定义A类型的成员变量。此时编译是无法通过的&#xff0c;我们会得到不允许使用不完整的类型这样冷冰冰的报错。…