一、单选题
- 答案:C
- 解析:
things[5::8]
表示从索引5开始,每隔8个元素取一个,即["西瓜"]
,符合输出水果的要求。A选项print(things)
会输出整个列表;B选项print(things[::4])
会输出["桌子", "西瓜"]
;D选项print(things[4::])
会输出["沙发", "西瓜", "苹果", "草莓", "香蕉"]
。
- 答案:A
- 解析:
tscores
是二维列表,tscores[0][1]
表示取第一行(小贝的成绩)的第二个元素(第二次成绩),即126。B选项tscores[0][2]
是小贝的第三次成绩;C选项tscores[1][2]
是小李的第三次成绩;D选项tscores[1][1]
是小李的第二次成绩。
- 答案:B
- 解析:
tscores[1][1:]
表示取小李的成绩列表(第二行)中索引1及以后的元素,即[120, 123]
,然后使用max
函数求最大值,得到123。A选项max(tscores[1])
会返回错误,因为tscores[1]
是包含姓名和成绩的列表,不能直接用max
求最大值;C选项tscores[1].max()
语法错误,列表没有max
方法;D选项tscores[1][1:].max()
语法错误,切片后的结果是列表,同样不能直接用max
求最大值。
- 答案:D
- 解析:代码中
f.write(','.join(gs)+'\n')
的功能是将列表gs
中的元素用逗号连接成字符串后写入文件,并在末尾添加换行符,实现了将列表gs
中的四句古诗写入到"jts.txt"文件中,诗句之间以逗号连成一行的功能。A选项在执行代码时,若文件不存在,以w
模式打开会自动创建文件;B选项代码中是用逗号连接诗句,不会换行;C选项f.write('\n'.join(gs)+',')
会在每句诗后换行,最后加一个逗号,与题目要求不符。
- 答案:A
- 解析:在Python中,可以用内置的
open
函数打开文件,open
函数用于创建或打开文件,并返回文件对象,通过该对象可以进行文件的读写操作。B选项对文件进行读取操作,常用read
、readline
、readlines
等函数;C选项对文件进行写入操作,常用write
函数,close
函数用于关闭文件;D选项关闭文件用close
函数,read
函数用于读取文件内容。
- 答案:B
- 解析:
hex
函数用于将十进制整数转换为十六进制字符串,hex(10)
会将十进制数10转换为十六进制数'0xa'
。A选项传入字符串"9"会报错;C选项传入字符串"10"会报错;D选项传入10正确,得到'0xa'
。
- 答案:B
- 解析:十六进制数100转换为十进制,按位权展开计算可得$1\times16^2 = 256$。A选项128计算错误;C选项28计算错误;D选项56计算错误。
- 答案:B
- 解析:
int
函数将数字字符串或非十进制数转换为十进制,"1010"
默认按十进制转换为1010。A选项int("0b1010", 10)
语法错误,0b
开头表示二进制数,不能用十进制转换;C选项int("0o50", 10)
语法错误,0o
开头表示八进制数,不能用十进制转换;D选项int("80", 8)
会将"80"按八进制转换为十进制,结果不是1010。
- 答案:D
- 解析:
min(float(6),9,8,7)
先将6转换为浮点数6.0,然后返回这几个数中的最小值,即6.0,不是整数6。A选项abs(-6)
返回6;B选项int(6.88)
返回6(向下取整);C选项round(5.55)
返回6(四舍五入)。
- 答案:C
- 解析:输入字符串中"2"出现了3次,
n.count("2")
计算"2"的个数并输出。A选项不会执行print(x)
,因为前面发生了异常;B选项2是错误的;D选项15是错误的。
- 答案:B
- 解析:
s1
是字符串,s2
是整数,两者不能直接相加,会引发TypeError
异常,执行except
中的代码输出"错误",finally
中的代码输出"程序结束"。A选项我爱中国2023 程序结束
错误,因为会先抛出异常;C选项我爱中国2023
错误,不会执行到这一步;D选项错误
不完整,没有输出finally
中的内容。
- 答案:C
- 解析:冒泡排序对6个数据最多需要处理5遍,第n遍确定第n大(或小)的数。A选项3遍无法完成排序;B选项4遍也不一定能完成排序;D选项6遍不是最多需要的遍数。
- 答案:B
- 解析:冒泡排序从大到小,每一轮将最大的数移到末尾。第一轮将8移到末尾,第二轮将7移到倒数第二个位置,得到
[6, 5, 8, 4, 7, 3, 2, 1]
。A选项[2, 4, 5, 1, 6, 3, 7, 8]
是第一轮排序后的结果;C选项[5, 6, 4, 8, 2, 7, 3, 1]
排序错误;D选项[5, 6, 4, 8, 7, 3, 2, 1]
是第一轮排序后将6和5交换后的错误结果。
- 答案:B
- 解析:找出小于100的所有质数,适用枚举算法,逐个判断每个数是否为质数。A选项解析算法不适合该问题;C选项对分查找用于有序数列查找特定值,不适用;D选项选择排序是排序算法,与找质数无关。
- 答案:C
- 解析:循环遍历列表
h
,bool
函数对每个元素进行判断,非零元素为True
,计算True
的个数,列表中有5个非零元素,所以s
为5。A选项0错误;B选项1错误;D选项6错误。
- 答案:A
- 解析:
abs
函数不仅可以取整数绝对值,也可以取浮点数绝对值。B选项abs(0)
的运行结果是0正确;C选项abs(3.0)
的运行结果是3.0正确;D选项abs(-3)
的运行结果是3正确。
- 答案:B
- 解析:
divmod
函数返回商和余数,29除以7商为4,余数为1,结果为(4, 1)
。A选项4, 1
不是元组形式,错误;C选项1, 4
顺序错误;D选项(1, 4)
商和余数错误。
- 答案:D
- 解析:
all
函数用于判断可迭代对象中所有元素是否为True
,当可迭代对象中有0或空字符串等时,返回False
,(1, 2, 3, 4, 5)
中所有元素为True
,返回True
;()
为空元组,返回True
;('1', '2', '3')
中所有元素为非空字符串,返回True
;而('1', '2', '3', '4', '5')
中包含空字符串,返回False
。A选项print(all([['1', '2', '3']]))
会返回True
;B选项print(all(()))
会返回True
;C选项print(all(('1', '2', '3', '4', '5')))
会返回False
。
- 答案:A
- 解析:
filter
函数过滤掉列表h
中的0元素,返回一个迭代器,list
函数将其转换为列表,得到[2, -3, -5, -6, -1, 4, 9]
。B选项(2, -3, -5, -6, -1, 4, 9)
是元组形式,错误;C选项[2, 4, 9]
过滤错误;D选项(2, 4, 9)
是元组形式且过滤错误。
- 答案:B
- 解析:
'w'
模式以写入方式打开文件,如果文件不存在会创建新文件,不会提示错误。A选项'r'
以只读方式打开文件,如果文件不存在,会提示错误;C选项'a'
打开文件,并将新内容写入到已有内容之后,若文件不存在会创建新文件;D选项'r+'
以读、写方式打开文件,若文件不存在会提示错误。
- 答案:C
- 解析:
ascii
函数返回字符的ASCII码值,ascii('A')
返回'A'
的ASCII码值65,ascii('Z')
返回'Z'
的ASCII码值90,运行结果为'A''Z'
。A选项'A'+'Z'
是字符串连接,结果为'AZ'
;B选项'AZ'
错误;D选项"AZ"
错误。
- 答案:C
- 解析:
"{:.1f}".format(23.792)
将浮点数格式化为保留一位小数的字符串,结果为23.8。A选项23错误;B选项23.0错误;D选项23.792错误。
- 答案:B
- 解析:
bool
函数对空列表[]
返回False
,对字符串"0"
返回True
,对None
返回False
,对range(0)
返回False
。A选项bool([[]])
返回False
;C选项bool(None)
返回False
;D选项bool(range(0))
返回False
。
- 答案:B
- 解析:
print
函数默认换行,end
参数指定结束字符,第一次输出hello python_
,第二次输出hello python
,第三次输出hello python
。A选项输出格式错误;C选项输出格式错误;D选项输出格式错误。
- 答案:C
- 解析:
sorted
函数对列表进行排序,默认升序,返回一个新的排好序的列表,结果为[0, 1, 5, 6, 7, 9, 15]
。A选项(0, 1, 5, 6, 7, 9, 15)
是元组形式,错误;B选项(15, 9, 7, 6, 5, 1, 0)
是降序排序,错误;D选项[15, 9, 7, 6, 5, 1, 0]
是降序排序,错误。
二、判断题
- 答案:正确
- 解析:在计算机中,二进制是基本的计数系统,每个二进制位只能表示0或1两个值,这是计算机存储和处理信息的基础。
- 答案:正确
- 解析:二进制数由0和1两个数码组成,其运算规则是“逢二进一”,借位规则是“借一当二”,这是二进制数的基本定义和运算规则。
- 答案:错误
- 解析:对文件操作时,打开文件的模式不止
'r'
(只读)和'w'
(只写),还有'a'
(追加)、'r+'
(读写)、'w+'
(读写,先清空文件)、'a+'
(读写,追加模式)等多种模式,以满足不同的文件操作需求。
- 答案:正确
- 解析:
with
语句用于自动管理文件上下文,确保文件在使用后正确关闭。open
函数以'r'
模式打开文件,readlines
函数读取文件的所有行并返回一个包含每行内容的列表,从而实现将文件内容获取成一个行的列表并输出的功能。
- 答案:错误
- 解析:语句
f = open('d:/a.txt', 'r')
中,如果文件a.txt
不存在,会抛出FileNotFoundError
异常,提示文件不存在的错误信息。
- 答案:错误
- 解析:
input
函数返回的是字符串类型,当输入整数8时,n = input('请输入一个整数:')
得到的n
是字符串"8"
,执行n = n // 2
会引发TypeError
异常,因为字符串不能进行整除运算。
- 答案:错误
- 解析:
ord
函数返回字符的ASCII码值,chr
函数根据ASCII码值返回对应的字符。代码中n = 48
,ord('0')
的结果是48,但chr(n)
返回的是字符'0'
,代码中cc
未定义,执行ord(cc)
会引发NameError
异常,所以整个代码会报错,不会得到65的结果。
- 答案:错误
- 解析:
any
函数用于判断可迭代对象中是否至少有一个元素为True
。在any(('1', '', '2', '3'))
中,字符串'1'
、'2'
、'3'
都被视为True
,因为它们是非空字符串,所以any
函数返回True
。
- 答案:正确
- 解析:
help
函数用于查看函数或模块用途的详细说明,当在Python解释器中调用help
函数并传入函数名或模块名时,会返回相应的帮助信息,帮助开发者了解函数或模块的功能、参数、返回值等详细内容。
- 答案:错误
- 解析:
max(2, 4, 1, 8, 9)
返回最大值9,min("3", "8", "9", "2", "10")
在字符串比较中,按字符的ASCII码值顺序比较,'2'
最小,int('2')
为2,所以a + int(b)
的结果是9 + 2 = 11
,而不是11。
三、编程题
- 思路:通过遍历字典
a
的键,获取对应的值,然后与目标身高137进行比较。如果找到匹配的身高,就输出对应的键(即姓名),并将计数器b
加1。如果遍历完所有键后b
仍然为0,表示没有找到身高为137的人,输出相应提示信息。
- 思路:首先以只读模式打开成绩单文件
cj.txt
,读取文件内容并按换行符分割成列表,去除标题行。然后遍历数据行,将每行按制表符分割成列表,形成二维列表lis
。接着计算每列(即每个科目的成绩总和),并求平均值,将平均值转换为字符串后添加到列表lis1
中。最后将lis1
中的元素用制表符连接成字符串,与原始文件内容拼接后,以写入模式打开新文件cj1.txt
,将结果写入新文件。
- 思路:采用冒泡排序算法对二维列表
qj
进行排序。外循环控制排序趟数,从0到len(qj) - 2
。内循环控制每趟比较次数,从0到len(qj) - 1 - i
,比较相邻两个元素(即两个器件的信息)。比较条件是先比较送达时间(qj[j][0]
和qj[j + 1][0]
),如果送达时间小的在前;如果送达时间相同,再比较检测时长(qj[j][1]
和qj[j + 1][1]
),检测时长小的在前。如果满足交换条件,就交换两个元素的位置。最后输出排序后的列表qj
。