image

编辑人: 青衫烟雨

calendar2025-06-17

message3

visits461

2023月09月Python三级理论参考答案

一、单选题

1、有一组数据存在列表中,things=[“桌子”,“椅子”,“茶几”,“沙发”,“西瓜”,“苹果”,“草莓”,“香蕉”],若想要输出其中的水果数据,则下列处理恰当的是?( )

A、print(things) 

B、print(things[:4])

C、print(things[4:])

D、print(things[5:8])


2、学期末学校进行了体育测试,其中跳绳项目每人有三次机会,取最好的成绩为最后得分。小贝、小李和小司三人的成绩数据如下:tscores=[[“小贝”,132,126,130],[“小李”,117,120,123],[“小司”,129,140,137]],那么要得到小贝的第二次成绩,下列操作正确的是?( )

A、tscores[0][2]

B、tscores[1][1]

C、tscores[0[2]]

D、tscores[1[1]]


3、小贝、小李和小司三人三次跳绳的成绩数据如下:tscores=[[“小贝”,132,126,130],[“小李”,117,120,123],[“小司”,129,140,137]],若要输出小李同学的最好成绩,则正确的处理方式是?( )

A、max(tscores[1])

B、max(tscores[1][1:])

C、tscores[1].max()

D、tscores[1][1: ].max()


4、

有如下代码: gs=[‘众鸟高飞尽’,‘孤云独去闲’,‘相看两不厌’,‘只有敬亭山’] f=open(‘jts.txt’,‘w’) f.write(‘,’.join(gs)+‘\n’) f.close() 有关于上述代码,正确的说法是?( )

A、在执行代码前,必须要先新建一个"jts.txt"的文件

B、在文件"jts.txt"中,所有相邻诗句之间将发生换行

C、f.write(','.join(gs)+'\n')也可以用f.write('\n'.join(gs)+',')替换,显示结果是相同的

D、该段代码的主要功能是将列表gs中的四句古诗写入到"jts.txt"文件中,诗句之间以逗号连成一行


5、有关于简单文件的读写,下列说法正确的是?( )

A、可以用Python内置的open()函数打开文件

B、对文件进行读取操作,我们可以用write()函数

C、对文件进行写入操作,我们可以用close()函数

D、关闭文件可以用read()函数


6、运行函数 hex(?) 之后,得到结果是’0xa’,请问括号中?号处应填?( )

A、"9"

B、9

C、"10"

D、10


7、十六进制数100,对应的十进制数是?( )

A、128

B、256

C、28

D、56


8、int()函数可以将非十进制数或数字字符串转换为十进制数,以下关于int()函数的使用,正确的是?( )

A、int("0b1010",10)

B、int("1010",10)

C、int("0o50",10)

D、int("80",8)


9、下列4个表达式中,答案不是整数6的是?( )

A、abs(-6)

B、int(6.88)

C、round(5.55)

D、min(float(6),9,8,7)


10、

键盘输入"杭州亚运会即将于2023年9月23日至10月8日举办。",以下代码的输出结果是?( ) try: n=input(“请输入文字:”) x=n.count(“2”) print(x) except: print(“程序执行错误”)

A、程序执行错误

B、2

C、3

D、15


11、初学者常采用异常处理解决程序中出现的意外情况,下面语句的执行结果是?( )
try:
s1 = ‘我爱中国’
s2 = 2023
s = s1 + s2
print(s)
except:
print(‘错误’)
finally:
print(‘程序结束’)

A、我爱中国2023程序结束

B、错误 程序结束

C、我爱中国2023

D、错误


12、列表中有6个数据,使用冒泡排序算法进行从小到大排序,最多需要处理几遍?( )

A、3

B、4

C、5

D、6


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

A、2, 4, 5, 1, 6, 3, 7, 8

B、6, 5, 8, 4, 7, 3, 2, 1

C、5, 6, 4, 8, 2, 7, 3, 1

D、5, 6, 4, 8, 7, 3, 2, 1


14、想要找出小于100的所有质数,适用的算法是?( )

A、解析算法

B、枚举算法

C、对分查找

D、选择排序


15、运行下面的程序,结果是?( )
h=[-2,-1,0,1,2,3]
n=len(h)
s=0
for i in range(n):
s=s+bool(h[i])
print(s)

A、0

B、1

C、5

D、6


16、关于Python中abs()函数,描述不正确的是?( )

A、abs()函数的功能是取一个整数的绝对值

B、abs(0)的运行结果是0

C、abs(3.0)的运行结果是3.0

D、abs(-3)的运行结果是3


17、

print(divmod(29,7))的运行结果是?( )

A、4, 1

B、(4, 1)

C、1, 4

D、(1, 4)


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

A、print(all(['1','2','3']))

B、print(all(()))

C、print(all(('1','2','3','4','5')))

D、print(all(['1','2','3','']))


19、下列程序运行的结果是?( )
h=[2,-3,-5,-6,0,-1,4,9]
y=list(filter(None,h))
print(y)

A、[2, -3, -5, -6, -1, 4, 9]

B、(2, -3, -5, -6, -1, 4, 9)

C、[2, 4, 9]

D、(2, 4, 9)


20、关于open()函数的参数,下列描述不正确的是?( )

A、'r'以只读方式打开文件,如果文件不存在,则会提示错误

B、'w'以写入的方式打开文件,如果文件不存在,则会提示错误

C、'a'打开文件,并将新内容写入到已有内容之后

D、'r+'以读、写方式打开文件


21、Python语句print(ascii(‘A’)+ascii(‘Z’)) 运行的结果是?( )

A、'A'+'Z'

B、'AZ'

C、'A''Z'

D、"AZ"


22、

执行 print(‘{:.1f}’.format(23.792)) 返回的结果是?( )

A、23

B、23.0

C、23.8

D、23.792


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

A、bool([])

B、bool("0")

C、bool(None)

D、bool(range(0))


24、下面程序运行的结果是?( )

a=‘hello python’

print(a,end=‘_’)

print(a,end="")

print(a)

A、hello python_hello pythonhello python

B、hello python_hello pythonhello python

C、hello python_hello python hello python

D、hello python_hellopythonhellopython


25、小明运行下面的程序,运行结果正确的是?( )

h=[6,15,1,0,7,9,5]

p=sorted(h)

print(p)

A、(0, 1, 5, 6, 7, 9, 15)

B、(15, 9, 7, 6, 5, 1, 0)

C、[0, 1, 5, 6, 7, 9, 15]

D、[15, 9, 7, 6, 5, 1, 0]


二、判断题

26、在计算机中,每个二进制位都可以表示为 0 或 1 两个值。( )

A 正确

B 错误


27、有这样一个表达式: ord('a') - ord('A') 这个表达式运行的结果是整数 32 ,请判断结果对吗?( )

A 正确

B 错误


28、对文件操作需要先打开文件,打开文件的模式只有'r'和'w',即只读和只写。( )

A 正确

B 错误


29、有如下函数:with open("english.txt",'r')as f:    list1=f.readlines()print(list1)这段函数的功能是自动将"english.txt"文件中的内容获取成一个行的列表并输出。( )

A 正确

B 错误


30、关于语句f=open('d:/a.txt', 'r'),如果文件a.txt不存在,不会报错。( )

A 正确

B 错误


31、键盘输入整数8,以下代码的运行结果是4.0。( )try:    n = input('请输入一个整数:')    n = n / 2    print(n)except:    print('程序执行错误')

A 正确

B 错误


32、已知字符"0"的ASCII码为48,字符"A"的ASCII码为65,下面程序的运行结果是:65 。( )c='A'n=48print(ord(c)+chr(n))

A 正确

B 错误


33、命令 any(('1','','2','3')) 返回的结果是 False。( )

A 正确

B 错误


34、 help()函数用于查看函数或模块用途的详细说明,返回对象为帮助信息。( )

A 正确

B 错误


35、下列程序的运行结果是 11。( )a=max(2,4,1,8,9)b=min("3","8","9","2","10")print(a+int(b))

A 正确

B 错误


三、编程题

36、下面代码,在字典a中查找身高为137的人,请将代码中缺失部分补充完整。
a = {‘小赵’:136,‘小钱’:141,‘小孙’:146,‘小李’:138,‘小周’:142,‘小吴’:134,‘小郑’:137,‘小王’:143}
keys = a.keys()
b = 0 # 用于判断查找是否成功
for key in keys:
value = a[++++]
if++++ == 137:
print(’找到身高为137的人是: ’, key)
b = b+1 # 有找到的人
++③++# 退出循环

if b == 0 :

print(’本次查找,未找到有身高为137的同学。 ’)

参考答案:

参考程序:

本题完整代码与注释如下:

a = {‘小赵’:136,‘小钱’:141,‘小孙’:146,‘小李’:138,‘小周’:142,‘小吴’:134,‘小郑’:137,‘小王’:143} keys = a.keys() # 取得键名做为列表 b = 0 # 用于判断查找是否成功 for key in keys: # 利用键名进行循环,为顺序查找作准备 value = a[key ] # 利用键名获取键值,便于下面比较 if value == 137: # 进行值比较 print(’找到身高为137的人是: ’, key) # 找到身高为137的学生,则打印出其键名 b = b+1 # 查找成功 break # 退出循环

if b == 0 : print(’本次查找,未找到有身高为137的同学。 ’) # 没找到符合查找条件的人,则也给出提示


37、张老师手上有一份学生成绩单(cj.txt),成绩单上只有每位学生的各科成绩,而张老师希望能看到各科成绩的所有学生的平均分,以下代码可以实现平均分的计算,并按示例格式排版,请补充代码。


示例:undefined

undefined

with open(‘/data/cj.txt’, ① ) as f:


string = f.read()


data = string.split(‘\n’)


data.pop(0)


lis = []


for i in data:


new = i.split(‘\t’)


lis.append(new)# 将分割得到的列表追加到空列表中,lis 为二维


lis1 = [‘平均分’]


for i in range(1,4):# 循环3次,因为需要计算3个科目的平均分


sum_ = ②


average = round(sum_ / 3)


lis1.append(str(average))


s = “\t”.join(lis1)


res = string + s


with open(‘cj1.txt’, ‘w’) as f:


f.write(res)

参考答案:

with open(‘/data/cj.txt’,‘r’) as f: # 以只读的方式打开文件

string = f.read() # 读取整个文件内容,返回字符串

data = string.split(‘\n’) # 按换行符分割为列表

data.pop(0) # 去标题部分

lis = [] # 空列表

for i in data: # 遍历被分割的列表

new = i.split(‘\t’) # 将列表的一个元素按制表符分割

lis.append(new) # 将分割得到的列表追加到空列表中,lis 变为二维

lis1 = [‘平均分’] # 定义一个列表用于存储平均分

for i in range(1, 4): # 循环3次,因为需要计算3个科目的平均分

sum_ = int(lis[0][i]) + int(lis[1][i]) + int(lis[2][i])

average = round(sum_ / 3) # 平均分,结果保整数

lis1.append(str(average)) # 转换为字符串并追加到lis1中

s = “\t”.join(lis1) # 将列表连接成字符串

res = string + s

with open(‘cj1.txt’, ‘w’) as f: # 以写入的方式打开文件

f.write(res)


38、工厂有一台检测设备用于检测器件,各个器件在不完全相同时刻送达,且检测时长各有不同。现在要按器件的送达时间(若送达时间相同则按检测时长)进行排序后再送检,送达时间和检测时间都是按升序排序。已知各个器件原始信息存在列表qj中:qj=[[2,1],[1,3],[0,2],[4,3],[12,4],[10,1],[4,1]],其中器件信息[2,1]表示器件送达时间是2,检测时长是1,其他器件信息类推。现在编写Python程序对各个器件进行排序,并重新输出。排序后的器件列表如下,请你在划线处完善程序:




qj=[[2,1],[1,3],[0,2],[4,3],[12,4],[10,1],[4,1]]


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


for j in range(0, ① ):


if ② or (qj[j][0]==qj[j+1][0]and ③ ):


qj[j],qj[j+1]=qj[j+1],qj[j]


print( ④ )

参考答案:

参考程序:

qj=[[2,1],[1,3],[0,2],[4,3],[12,4],[10,1],[4,1]]

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

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

if **qj[j][0]>qj[j+1][0]**or qj[j][0]==qj[j+1][0]and qj[j][1]>qj[j+1][1]:

qj[j],qj[j+1]=qj[j+1],qj[j]

print(qj)

①本题考查的是对二维列表进行冒泡排序。外循环控制排序趟数,内循环控制排序比较的次数以及比较的起止位。外循环变量i从0开始,内循环变量j从0开始,显然终值是len(qj)-1-i,比较过程从前往后两两相比。因此①处填写的步长应为len(qj)-1-i; ②根据题目意思,比较依据先是送达时间(从小到大),若相同则比较检测时长,因此②处表达的应该是相邻两个器件的送达时间相比,从交换语句来看第j项被交换至j+1项,从而判定②处答案为qj[j][0]>qj[j+1][0]; ③qj[j][0]表示送达时间,qj[j][1]则表示的是检测时长,从qj[j][0]==qj[j+1][0]可知此处表示送达时间相同的情况下满足何种条件第j项会和第j-1项交换,显然要比的是检测时间,故而③处填写qj[j][1]>qj[j+1][1]。 ④根据题意,最后需要输出排序后的器件列表,因此④处填写的器件列表名称qj。


喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:2023月09月Python三级理论参考答案

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share