Python编程(1~6级)全部真题・点这里
一、单选题(共25题,每题2分,共50分)
第1题
下列代码的输出结果是?( )
x = 0x10
print(x)
A:2
B:8
C:10
D:16
答案:D
在代码中,x = 0x10 表示将十六进制数 0x10 赋值给变量 x。在十六进制表示法中,0x10 表示十进制数 16。然后,print(x) 打印变量 x 的值,即 16。
第2题
关于语句f=open(‘d:/a.txt’, ‘r’),下列描述不正确的是?
A:f是变量
B:'r’以只读方式打开文件
C:如果文件a.txt不存在,不会报错
D:‘d:/a.txt’是文件路径,代表d盘中一个名为‘a.txt’的文件
答案:C
如果文件a.txt不存在,执行该语句将会引发一个文件不存在的错误。在只读模式下打开文件时,如果指定的文件不存在,Python 将引发 FileNotFoundError 异常。因此,选项 C 是不正确的描述。
第3题
表达式 all([1,True,True])的结果是?
A:1
B:False
C:出错
D:True
答案:D
all() 函数用于判断给定的可迭代对象中的所有元素是否都为真。在这个表达式中,传入的可迭代对象是 [1, True, True]。由于所有的元素都是真值(非零整数和布尔值 True 都被视为真值),因此 all() 函数返回 True。
第4题
Python中表示合法的二进制整数是?
A:0bC3F
B:0B1010
C:0B1019
D:0b1708
答案:B
在Python中,合法的二进制整数表示应该以前缀 “0b” 或 “0B” 开头,后面跟随二进制数字。根据这个规则,从提供的选项中,只有选项 B:0B1010 是一个合法的二进制整数表示。
第5题
执行语句x,y,z=tuple([2,1,3])之后,变量y的值为?
A:1
B:2
C:[1]
D:[2,1,3]
答案:A
该语句使用元组解包的方式将列表 [2, 1, 3] 的元素分配给变量 x、y 和 z。由于列表中的第二个元素是 1,所以它被分配给变量 y。
第6题
下列代码的执行结果是?( )
ls=[[1,2,3],[[4,5],6],[7,8]]
print(len(ls))
A:1
B:3
C:4
D:8
答案:B
在代码中,ls 是一个包含三个元素的列表,其中每个元素都是一个子列表。len(ls) 返回列表 ls 的长度,即其中包含的元素个数。因此,print(len(ls)) 的输出结果为 3。因此,选项 B:3 是正确的结果。
第7题
下列能产生列表[1, 3, 5, 7, 9]的表达式是?
A:list(range(0,9))
B:list(range(1,10))
C:list(range(0,9,2))
D:list(range(1,10,2))
答案:D
range(1, 10, 2) 表示从 1 开始,以步长 2 生成一个范围内的数字序列。这个表达式将生成数字序列 [1, 3, 5, 7, 9]。然后,使用 list() 函数将这个数字序列转换为列表。
第8题
二维列表data中,元素"3"的表示是?( )
data = [ [1,2],[3,4] ]
A:data[0][0]
B:data[0][1]
C:data[1][0]
D:data[1][1]
答案:C
列表 data 是一个包含两个子列表的二维列表。要访问元素 “3”,我们需要使用索引操作符 [] 来指定所需的行和列的索引。在这个例子中,“3” 位于第二个子列表(索引为 1)的第一个位置(索引为 0)。因此,data[1][0] 表达式表示列表 data 中的元素 “3”。
第9题
下列代码的输出结果是?( )
n = 2
b=bool(n-2)
print(n, b)
A:2 0
B:0 True
C:2 False
D:0 False
答案:C
在代码中,n 被赋值为 2。然后,bool(n-2) 表示对表达式 n-2 的结果进行布尔运算,即对 0 进行布尔运算。在Python中,bool(0) 的结果为 False。然后,print(n, b) 打印变量 n 和 b 的值,分别为 2 和 False。
第10题
键盘输入数字10,以下代码的输出结果是?( )
try:
n = input("请输入—个整数: ")
n= n*n
except:
print("程序执行错误")
A:100
B:10
C:程序执行错误
D:程序没有任何输出
答案:C
在代码中,使用 input() 函数从键盘读取输入,并将其赋值给变量 n。然后,n = n * n 尝试计算 n 的平方。但是,由于用户输入的是字符串类型,而不是数字类型,所以无法执行乘法操作,会引发一个类型错误。在 try-except 语句中,当发生异常时(这里是类型错误),程序会跳转到 except 代码块。因此,会输出 “程序执行错误”。
第11题
下列程序运行后的输出结果是?( )
for i in reversed(range(10, 0, -2)):
print(i,end=" ")
A:2 4 6 8 10
B:0 2 4 6 8 10
C:12345678910
D:9 8 7 6 5 4 3 2 1 0
答案:A
在代码中,使用 reversed() 函数以逆序生成一个范围内的数字序列。range(10, 0, -2) 表示从 10 开始,以步长 -2(递减2)生成数字序列,直到大于 0 为止(不包括 0)。然后,使用 for 循环遍历这个逆序的数字序列,并将每个数字打印出来。通过 end=" " 设置打印结束时使用空格作为分隔符。因此,程序的输出结果是 2 4 6 8 10。
第12题
有如下列表1=[10,1,9,6,3,4],采用冒泡排序进行升序排序,请问第一趟排序之后的结果是?
A:[1,3,9,6,10,4]
B:[1,9,6,3,4,10]
C:[1,6,3,4,9,10]
D:[1,3,4,6,9,10]
答案:B
冒泡排序是一种交换排序算法,它通过多次遍历列表,并在每次遍历中比较相邻的元素并进行交换,将较大的元素逐步向列表的末尾冒泡。在第一趟排序中,比较的是相邻的元素对,如果前面的元素大于后面的元素,则进行交换。根据给定的列表 [10, 1, 9, 6, 3, 4],在第一趟排序中,比较的元素对是 (10, 1),(1, 9),(9, 6),(6, 3),(3, 4)。根据比较结果,需要进行以下交换:(10, 1),(9, 6),(6, 3),(3, 4)。因此,第一趟排序后的结果是 [1, 9, 6, 3, 4, 10]。
第13题
表达式max(3,min(5,1,7))的结果是?
A:1
B:3
C:5
D:7
答案:B
在这个表达式中,min(5, 1, 7) 返回给定数字序列中的最小值,即返回 1。然后,max(3, 1) 返回给定数字序列中的最大值,即返回 3。
第14题
set() 函数通过交集、差集、并集等关系删除重复数据,创建一个无序不重复元素集。
下列程序执行结果正确的是?( )
x=set("中国")
y=set("美国")
print(x & y )
A:{‘中国’}
B:{‘美国’}
C:{‘中美国’}
D:{‘国’}
答案:D
在程序中,set() 函数用于创建一个无序且不重复的元素集合。set(“中国”) 表示将字符串 “中国” 转换为集合,即 {‘中’, ‘国’}。同样地,set(“美国”) 表示将字符串 “美国” 转换为集合,即 {‘美’, ‘国’}。通过使用交集操作符 &,可以获取两个集合的交集,即共有的元素。在这个例子中,集合 x 和集合 y 的交集是 {‘国’}。
第15题
下列不能用于异常处理结构中捕获特定类型的异常的语句是?
A:try-else语句
B:try-except语句
C:try-except-else语句
D:try-except-finally语句
答案:A
try-else语句并不是用于捕获异常的方式,所以它是不能用于捕获特定类型的异常的语句。
第16题
下列表达式的结果不为10的是?
A:sum([1,2,3,4])
B:sum((1,2,3),4)
C:sum([1,2,3],4)
D:sum([1,2],[3,4])
答案:D
sum() 函数用于计算可迭代对象中元素的总和。在选项A中,sum([1, 2, 3, 4]) 的结果是 10,因为 1 + 2 + 3 + 4 = 10。在选项B中,sum((1, 2, 3), 4) 的结果也是 10,因为 1 + 2 + 3 + 4 = 10。在选项C中,sum([1, 2, 3], 4) 的结果是 10,因为 1 + 2 + 3 + 4 = 10。然而,在选项D中,sum([1, 2], [3, 4]) 的结果不是 10。由于 sum() 函数的参数应该是可迭代对象,而此处的参数包含两个列表,无法直接求和。
第17题
表达式divmod(40,3)的结果是?
A:13,1
B:(13,1)
C:13
D:1
答案:B
divmod() 函数用于同时计算除法和取模操作。它返回一个包含两个值的元组,第一个值是整数除法的结果,第二个值是取模操作的结果。在这个例子中,40 除以 3 的整数部分是 13,余数是 1。因此,表达式 divmod(40, 3) 的结果是元组 (13, 1)。
第18题
小明想对列表arr = [5, 33, 21, 67, 39, 73, 7, 43 ]中的数值进行升序排序,于是他编写了“选择排序”程序,
在调试程序的过程,他故意将循环的次数改成了固定值,如下图所示。
请问,现在这个程序执行之后print(arr)打印出的结果应该是?( )
A:[5, 7, 21, 33, 39, 43, 67, 73]
B:[5, 7, 21, 33, 39, 73, 43,67]
C:[5, 7, 21, 67, 39, 73, 33, 43]
D:[5, 7, 21, 33, 39, 73, 67, 43]
答案:D
第19题
要表示10种不同的信息,需要的二进制位数至少为?
A:2
B:3
C、4
D、5
答案:C
二进制位数表示的是不同的组合数量,其中每个位可以是0或1。对于10种不同的信息,需要至少4个二进制位才能表示,因为 2 4 = 16 2^4 = 16 24=16,可以表示16种不同的组合。而3个二进制位只能表示8种不同的组合,不足以表示10种不同的信息。因此,选项 C:4 是正确的答案。
第20题
下列代码的输出结果是?( )
for i in range(1,6):
if i%4== 0:
continue
else:
print(i,end =",")
A:1,2,3,
B:1,2,3,4,
C:1,2,3,5,
D:1,2,3,5,6,
答案:C
在这段代码中,for循环从1到5迭代变量i。在每次迭代中,首先进行条件判断。如果i除以4的余数为0,则执行continue语句,跳过本次循环的剩余部分,继续下一次循环。否则,执行else块中的代码。在else块中,使用print语句打印i的值,以逗号结尾,并且不换行。
因此,循环迭代的结果是1、2、3、4、5。但是当i等于4时,满足条件i%4==0,执行continue语句,跳过了打印的步骤。所以最终的输出结果是1、2、3、5,以逗号分隔。
第21题
以下关于算法以及算法的描述,错误的是?
A:算法必须要在有限的步骤内完成
B:算法每个步骤的含义必须是确切的
C:算法必须有输入,但可以没有输出
D:算法可以没有输入,但必须要有输出
答案:C
算法必须有输入是正确的描述,因为算法是用于解决问题的一系列步骤或操作,它需要接受输入来进行处理和计算。然而,算法可以没有输出是错误的描述。算法的输出是算法的结果或解决方案,它可以是一个值、一个数据结构或者某种形式的信息。
第22题
八进制10与十六进制10相加,其对应的十进制数是?
A:20
B:26
C:24
D:18
答案:C
八进制数10对应的十进制数是8,十六进制数10对应的十进制数是16。将它们相加,8 + 16 = 24。
第23题
下列代码的输出结果是?( )
d ={"大海":"蓝色","天空":"灰色","大地":"黑色"}
print(d["大地"])
A:“大地”
B:大地
C:“黑色”
D:黑色
答案:D
给定的代码创建了一个字典 d,其中包含了三个键值对。在 print(d[“大地”]) 这行代码中,它将打印出字典 d 中键为 “大地” 对应的值。根据给定的字典,键 “大地” 对应的值是 “黑色”。因此,输出结果为 “黑色”。
第24题
假设city.csv文件内容如下,那么下列代码的输出结果是?
f=open("city.csv","r")
ls=f.read().split(",")
f.close()
print(ls)
A:[‘巴哈马’,‘巴林’,‘孟加拉国’,‘巴巴多斯\n白俄罗斯’,‘比利时’,‘伯利兹’]
B:[‘巴哈马’,‘巴林’,‘孟加拉国’,‘巴巴多斯’,‘白俄罗斯’,‘比利时’,‘伯利兹’]
C:[‘巴哈马,巴林,孟加拉国,巴巴多斯,白俄罗斯,比利时,伯利兹’]
D:[‘巴哈马’,‘巴林’,‘孟加拉国’,‘巴巴多斯’,‘\n’,‘白俄罗斯’,‘比利时’,‘伯利兹’]
答案:A
第25题
下列代码的输出结果是?( )
lis=list(range(4))
print(lis)
A:[0,1,2,3,4]
B:[0,1,2,3]
C:0,1,2,3,
D:0,1,2,3,4
答案:B
给定的代码创建了一个列表 lis,其中包含了范围从0到3的整数。list(range(4)) 创建了一个包含0、1、2、3的列表。然后,通过 print(lis) 打印了列表 lis 的内容。因此,输出结果为 [0, 1, 2, 3]。
二、判断题(共10题,每题2分,共20分)
第26题
int(‘0x25’,16)语句和int(‘25’,16)语句都能实现将十六进制数0x25转换成十进制数的功能。
答案:正确
int(‘0x25’, 16) 和 int(‘25’, 16) 这两个语句都可以将十六进制数 0x25 转换成十进制数。在这里,第一个参数是要转换的字符串,而第二个参数 16 表示使用十六进制进行转换。因此,这两个语句都能实现将十六进制数 0x25 转换成十进制数的功能。
第27题
使用open()函数打开’food.csv’文件后,返回的是列表。
答案:错误
使用open()函数打开文件后,返回的是文件对象,并不是列表。open()函数用于打开文件,并返回一个文件对象,通过该对象可以进行文件的读取或写入操作。要将文件内容转换为列表形式,可以使用相关的读取方法(如readlines())来读取文件中的内容,并将其存储为列表。
第28题
数据可分为一维数据、二维数据和多维数据。
答案:正确
数据可以根据其维度进行分类。一维数据是指只有一个维度或轴的数据,例如一维数组或列表。二维数据是指具有两个维度或轴的数据,例如二维数组或表格数据。多维数据是指具有多个维度或轴的数据,例如多维数组或多维表格数据。因此,数据可以根据其维度分为一维数据、二维数据和多维数据。
第29题
语句try-except-finally中finally语句无论异常是否发生都必须执行的语句。
答案:正确
finally语句是在try-except语句块中的代码执行完毕后,无论是否发生异常都会执行的部分。它通常被用于执行一些清理操作,如关闭文件或释放资源。无论try块中的代码是否引发异常,finally块中的代码都会被执行。因此,finally语句无论异常是否发生,都必须执行。
第30题
CSV文件的每—行是一维数据,可以使用Python中的列表类型表示。
答案:正确
CSV文件中的每一行通常表示一条记录或一组相关数据,可以将其视为一维数据。在Python中,列表类型可以用来表示一维数据,其中每个元素对应CSV文件中的一列数据或一个字段。通过将每一行解析为列表,可以方便地处理CSV文件中的数据。因此,CSV文件的每一行可以使用Python中的列表类型表示。
第31题
二进制数 1010111转换为十六进制数是 A7。
答案:错误
二进制数 1010111 对应的十六进制数是 2F。要将二进制数转换为十六进制数,可以将二进制数按照4位一组进行划分,然后将每组转换为对应的十六进制表示。在这个例子中,1010111 按照4位一组划分为 10 1011 1,对应的十六进制数为 2B1,而不是 A7。因此,二进制数 1010111 转换为十六进制数是 2B1,而非 A7。
第32题
abs()函数的功能是将对小数进行取整,abs(-2.3)的运行结果是2。
答案:错误
abs()函数是用于取绝对值的函数,而不是用于取整数部分的函数。abs()函数返回一个数的绝对值,即该数与零的距离。对于小数,abs()函数会返回其绝对值而不进行取整操作。因此,abs(-2.3)的结果是2.3的绝对值,即2.3,而不是2。所以,判断题中的说法是错误的。
第33题
chr()函数用于将对象转换成字符串。
答案:错误
chr()函数用于将 Unicode 码点转换为对应的字符。它接受一个整数参数,该整数代表 Unicode 码点,然后返回对应的字符。因此,chr()函数将整数对象转换为对应的字符。然而,chr()函数并不会将所有的对象都转换为字符串,它只是将整数值转换为对应的字符表示。如果想要将其他类型的对象转换为字符串,可以使用str()函数来实现。所以,chr()函数用于将整数对象转换为字符,而不是将对象转换为字符串。
第34题
enumerate() 函数将字符串、列表、元组、字典等组合为索引序列,同时列出数据和数据下标。
答案:正确
enumerate() 函数用于将一个可迭代对象(如字符串、列表、元组、字典等)组合为索引序列,同时返回数据和数据的下标。它返回一个迭代器,每个元素都是一个包含索引和对应数据的元组。通过使用 enumerate() 函数,可以方便地遍历数据同时获取数据的下标。因此,判断题中的说法是正确的。
第35题
senson=["春","夏","秋","冬"]
senson.remove("秋")
print(senson)
执行上面程序,结果为[‘春’, ‘夏’, ‘冬’]
答案:正确
程序中的 senson 是一个列表,包含了四个元素:春、夏、秋、冬。通过 senson.remove(“秋”) 这行代码,我们移除了列表中的 “秋” 元素。然后,通过 print(senson) 打印输出列表 senson 的内容。因此,输出结果为 [‘春’, ‘夏’, ‘冬’],即移除了 “秋” 元素后的列表。
三、编程题(共3题,共30分)
第36题
一个四位数,如果在它的左边加一个数字8,就可以得到一个五位数;如果在它的右边加一个数字6,就可以得到另一个五位数,这两个五位数的和是121410。请问原来这个四位数是多少?
现在请你编写程序,求出这个四位数。
补全下面的代码:
for a in range(①):
for b in range(②):
for c in range(0,10):
for d in range(0,10):
if (③)+(④) == 121410:
print(a,b,c,d)
参考程序:
for a in range(1,10):
for b in range(0,10):
for c in range(0,10):
for d in range(0,10):
if (80000+a*1000+b*100+c*10+d)+(a*10000+b*1000+c*100+d*10+6) == 121410:
print(a,b,c,d)
解析:
这段代码使用嵌套的循环遍历四个数字 a、b、c 和 d,从而找到满足条件的数字组合。通过计算两个五位数的和与给定值 121410 进行比较,找到满足条件的组合后,将 a、b、c 和 d 打印出来。这段代码将遍历所有可能的四位数组合,并输出满足条件的结果。
第37题
请读取文件/data/subways.csv的数据,数据内容如下图显示:
下列代码实现了读取“学号”和“身高”信息,输出“身高”达到120的学号,请你补全代码。
import csv
with open('/data/① ') as f:
rows = list( csv.reader (f))
for row in rows[1:]:
if(int(row[1])>=120):
print(② )
参考程序:
import csv
with open('/data/subways.csv') as f:
rows = list( csv.reader (f))
for row in rows[1:]:
if(int(row[1])>=120):
print(row[0])
解析:
首先,我们使用 with open() 语句打开文件,指定文件路径为 /data/subways.csv。
csv.reader() 函数用于创建一个 CSV 文件的读取器对象。
我们将读取器对象传递给 list() 函数,将其转换为列表形式,并将结果保存在变量 rows 中。
在 for 循环中,我们遍历 rows[1:],跳过首行(标题行)。
使用 int(row[1]) 将身高数据转换为整数,并与 120 进行比较。
如果身高大于等于 120,则打印对应的学号 row[0]。
第38题
有一组数据[0,20,0,4,31]存放在nums中,请将列表中的所有零移动到列表尾。
nums=[0,20,0,4,31]
initLen = ①
i=0
j=0
while i<initLen:
if ②:
③= nums[i]
j+=1
i+=1
④=( len(nums)-j)*[0]
print(⑤)
参考程序:
nums=[0,20,0,4,31]
initLen = len(nums)
i=0
j=0
while i<initLen:
if nums[i]!=0:
nums[j]= nums[i]
j+=1
i+=1
nums[j:]=( len(nums)-j)*[0]
print(nums)
解析:
initLen 变量用于存储初始列表 nums 的长度。
i 和 j 分别表示遍历和写入的索引。
在 while 循环中,我们遍历列表 nums。
如果当前元素 nums[i] 不等于 0,则将其写入到 nums[j] 的位置,并将 j 增加 1。
无论 nums[i] 是否为 0,i 都会增加 1,以继续遍历。
循环结束后,通过将列表的剩余部分(从索引 j 开始)替换为零,实现将所有零移动到列表的尾部。
最后,我们打印输出更新后的列表 nums。