Python等级考试(1~6级)全部真题・点这里
一、单选题(共25题,每题2分,共50分)
第1题
运行以下代码,结果输出的是?( )
means=['Thank','You']
print(len(means))
A: 8
B: 6
C: 2
D: 1
答案:C
代码中的means是一个包含两个字符串元素的列表。使用len()函数可以计算列表中元素的个数,即列表的长度。在这种情况下,len(means)将返回2,表示列表中有两个元素。
第2题
下列语句中变量i取值范围是1~10的是?( )
A: for i in range(11)
B: for i in range(1,10)
C: for i in range(0,10)
D: for i in range(1,11)
答案:D
这个语句使用range函数生成一个从1到10的整数序列,左闭右开,因此变量i的取值范围是1到10(包括1,不包括11)。
选项 A: for i in range(11) 的取值范围是0到10,因为range(11)生成的序列是从0到10的整数。
选项 B: for i in range(1,10) 的取值范围是1到9,因为range(1,10)生成的序列是从1到9的整数。
选项 C: for i in range(0,10) 的取值范围是0到9,因为range(0,10)生成的序列是从0到9的整数。
第3题
今天编程课的主要内容是字典的遍历。
已知字典dt={‘a’:[1,3,5],‘b’:[3,4,7],‘c’:[2,5,9]},老师要求用四种不同的方法遍历字典,都要获得如下结果
[1, 3, 5]
[3, 4, 7]
[2, 5, 9]
小程同学尝试写了四段程序,请你帮他检查一下哪个程序的打印结果不符合要求?( )
A:
dt={'a':[1,3,5],'b':[3,4,7],'c':[2,5,9]}
ls=[]
for i in dt.values():
ls.append(i)
print(i)
B:
dt={'a':[1,3,5],'b':[3,4,7],'c':[2,5,9]}
ls=[]
for i in dt:
ls.append(dt[i])
for j in ls:
print(j)
C:
dt={'a':[1,3,5],'b':[3,4,7],'c':[2,5,9]}
ls=[]
for k in dt.keys():
ls.append(dt[k])
for j in ls:
print(j)
D:
dt={'a':[1,3,5],'b':[3,4,7],'c':[2,5,9]}
ls=[]
for k in dt.items():
print(k)
答案:D
这段代码使用了字典的items()方法来遍历字典的键值对,然后直接打印了每个键值对。虽然打印了字典的内容,但没有按要求打印每个值的列表。
第4题
执行以下代码后输出的结果是?( )
d={1:'monkey',2:'panda',3:'bird',4:'fish'}
d[5]='sheep'
del d[3]
d[3]='dog'
print(d)
A: {1: ‘monkey’, 2: ‘panda’, 4: ‘fish’, 5: ‘sheep’, 3: ‘cat’}
B: {1: ‘monkey’, 2: ‘panda’, 4: ‘fish’, 5: ‘sheep’, 3: ‘dog’}
C: {1: ‘monkey’, 2: ‘panda’, 3: 'dog, 5: ‘sheep’, 4: ‘duck’}
D: {1: ‘monkey’, 2: ‘panda’, 3: ‘cat’, 5: ‘sheep’, 4: ‘duck’}
答案:B
开始时,字典d的键值对如下:
{1: ‘monkey’, 2: ‘panda’, 3: ‘bird’, 4: ‘fish’}
接着,使用d[5] = ‘sheep’将键为5的值设为’sheep’,得到:
{1: ‘monkey’, 2: ‘panda’, 3: ‘bird’, 4: ‘fish’, 5: ‘sheep’}
然后,使用del d[3]删除键为3的键值对,得到:
{1: ‘monkey’, 2: ‘panda’, 4: ‘fish’, 5: ‘sheep’}
最后,使用d[3] = ‘dog’将键为3的值设为’dog’,得到最终的字典:
{1: ‘monkey’, 2: ‘panda’, 4: ‘fish’, 5: ‘sheep’, 3: ‘dog’}
第5题
tp=(3,6,9,11),以下操作正确的是?( )
A: x=tp[2]
B: x=tp(2)
C: tp[3]=12
D: tp(3)=12
答案:A
选项A是正确的元组索引操作,将元组tp的第2个元素赋值给变量x。
选项B、C和D都是错误的操作:
B: x=tp(2)
这是错误的函数调用语法,应该使用方括号进行索引操作,而不是圆括号。
C: tp[3]=12
元组是不可变对象,无法直接修改元组中的元素。因此,将导致错误。
D: tp(3)=12
这也是错误的函数调用语法,并且还试图将值赋给函数调用的结果,这是不允许的。
第6题
列表a=list(range(2,10)),下列选项中可以获取列表中最后一个元素?( )
A: a[8]
B: a[7]
C: a[9]
D: a[10]
答案:B
列表a使用了range函数生成从2到9的整数序列,所以包含了8个元素。那么它的最大索引是7,所以B是正确选项。
第7题
表达式tuple(list(‘Python’))的运算结果是?( )
A: [‘Python’]
B: (‘P’, ‘y’, ‘t’, ‘h’,‘o’, ‘n’)
C: [‘P’, ‘y’, ‘t’, ‘h’,‘o’, ‘n’]
D: (‘Python’)
答案:B
首先,list(‘Python’)将字符串’Python’转换为一个包含每个字符的列表:[‘P’, ‘y’, ‘t’, ‘h’, ‘o’, ‘n’]。
然后,tuple()函数将这个列表转换为一个元组。
最终的结果是一个包含每个字符作为单独元素的元组:(‘P’, ‘y’, ‘t’, ‘h’, ‘o’, ‘n’)。
第8题
若list_a = [5, 4, 1, 2, 3],以下选项中能够输出 [5, 4, 3, 2, 1] 的是?( )
A:
list_a = sorted(list_a)
print(list_a)
B:
list_a.sort()
print(list_a)
C:
list_a.sort(reverse=True)
print(list_a)
D:
list_a.sort(reverse=False)
print(list_a)
答案:C
这段代码使用了列表的sort()方法,并将参数reverse设置为True,以便按降序对列表进行排序。结果会改变原始列表的顺序,使其变为 [5, 4, 3, 2, 1]。然后,通过print(list_a)打印出排序后的列表。
第9题
以下代码的输出结果是?( )
s= list(range(10))
print(10 not in s)
A: True
B: False
C: 0
D: -1
答案:A
首先,使用list(range(10))创建一个包含从0到9的整数的列表。
然后,使用10 not in s检查10是否不在列表s中。由于10不在列表中,所以表达式的结果为True。
第10题
以下代码运行结果正确的是?( )
list1 = [[[[['a']],['冰墩墩']],6],['雪容融']]
print(len(list1))
A: 5
B: 4
C: 3
D: 2
答案:D
给定的代码创建了一个多层嵌套的列表list1,其中包含了多个嵌套的子列表。
首先,内部的最深层列表[‘a’]和[‘冰墩墩’]是list1的直接子元素,所以计算它们的数量不会影响最终结果。
然后,list1中的两个直接子元素是[[[[‘a’]],[‘冰墩墩’]],6]和[‘雪容融’]。
[[[[‘a’]],[‘冰墩墩’]],6]是一个嵌套了多个子列表的列表,它的直接子元素有2个:[[[‘a’]],[‘冰墩墩’]]和6。
[‘雪容融’]是一个只包含一个子元素的列表,它的直接子元素有1个:‘雪容融’。
所以,list1的直接子元素数量为2。
第11题
请为下列程序空白处选出合适的选项,输出结果为[‘a’, ‘A’, 9, ‘a’] ?( )
ls1 = ['a','A','a',9,'a']
______
print(ls1)
A: del ls1(‘a’)
B: ls1.pop(2)
C: ls1.clear()
D: ls1.remove(‘a’)
答案:B
ls1.pop(2)会从列表ls1中移除索引为2的元素,并返回该元素的值。在这种情况下,索引为2的元素是第三个元素,即第二个字符’a’。
所以,选择B: ls1.pop(2)可以移除列表中的第三个元素,并将其打印出来,从而输出结果为[‘a’, ‘A’, 9, ‘a’]。
第12题
以下代码的输出结果是?( )
ls = [1,2,[3,4],[5,6]]
print(ls[2][1])
A: 6
B: 2
C: 3
D: 4
答案:D
给定的代码创建了一个列表ls,其中包含了多个元素。
ls[2]表示访问ls列表中索引为2的元素,即第三个元素。在这个例子中,ls[2]是一个包含两个元素的列表[3, 4]。
然后,ls[2][1]表示对列表ls[2]中的第二个元素进行访问,即索引为1的元素。在这个例子中,ls[2][1]是[3, 4]列表中的第二个元素,即4。
第13题
下面代码的输出结果是?( )
for i in range(1,6):
if i%3==0:
break
else:
print(i,end=",")
A: 1,2,
B: 1,2,3,
C: 1,2,3,4,5,
D: 1,2,3,4,5,6,
答案:A
给定的代码使用for循环遍历range(1, 6),即从1到5的整数。
在循环中,对于每个迭代的值i,首先检查i是否能被3整除(即i%3==0)。如果条件成立,则使用break语句终止循环。
对于第一个迭代的值i=1,不满足i%3==0的条件,所以执行else块中的代码,即打印1并加上逗号。
对于第二个迭代的值i=2,同样不满足i%3==0的条件,所以执行else块中的代码,即打印2并加上逗号。
对于第三个迭代的值i=3,满足i%3==0的条件,所以执行break语句,终止循环。
因此,输出结果为A: 1,2,。循环在第三次迭代时终止,没有打印出3及后续的数字。
第14题
给定字典d,哪个选项对x in d的描述是正确的?( )
A: 判断x是否是字典d中的键
B: x是一个二元元组,判断x是否是字典d中的键值对
C: 判断x是否是字典d中的值
D: 判断x是否是在字典d中以键或值方式存在
答案:A
x in d用于判断x是否是字典d中的键。如果x是d的一个键,则表达式的结果为True;否则,结果为False。
其他选项的描述如下:
B: x是一个二元元组,判断x是否是字典d中的键值对 是错误的。x in d不会判断x是否是字典d中的键值对,而是仅判断x是否是键。
C: 判断x是否是字典d中的值 是错误的。x in d不会判断x是否是字典d中的值,而是仅判断x是否是键。
D: 判断x是否是在字典d中以键或值方式存在 是错误的。x in d不会同时判断x是否是键或值,而是仅判断x是否是键。
第15题
下列程序的运行结果是?( )
str1='0123456789'
str2=str1[1:9:2]
print(str2)
A: 1357
B: 024
C: 13579
D: 0246
答案:A
给定的代码使用切片操作来获取字符串str1的子串。
str1[1:9:2]表示从索引1到索引9(不包括9),以步长2取字符。具体解释如下:
索引1对应字符’1’
索引3对应字符’3’
索引5对应字符’5’
索引7对应字符’7’
所以,str2的值为’1357’。
第16题
小明用元组a存储小组同学的身高,a=(136.0,135.0,142.0,140.0),则min(a)的值是?( )
A: 136.0
B: 135.0
C: 142.0
D: 140.0
答案:B
给定元组a存储了小组同学的身高,即 a = (136.0, 135.0, 142.0, 140.0)。
要求min(a)的值是什么,即获取元组中的最小值。
执行min(a)将返回元组中的最小值。
在这种情况下,最小的身高为 135.0。
因此,min(a)的值是 B: 135.0。
第17题
下列语句运行后,输出结果为2022的是哪个?( )
A: print(“20”+“22”)
B: print(20+22)
C: print(“2022"in"2022”)
D: print(s[3:4])
答案:A
给定的选项中,只有选项 A: print(“20”+“22”) 的输出结果为 2022。
解释如下:
选项A会将两个字符串 “20” 和 “22” 进行拼接,结果为 “2022”。
选项B会将两个整数 20 和 22 进行相加,结果为 42,并不是 2022。
选项C会判断字符串 “2022” 是否存在于字符串 “2022” 中,结果为 True,并不是 2022。
选项D中的变量 s 并没有被定义,会导致程序抛出异常,无法输出任何结果。
第18题
已知元组tup2=(1,14,51,4,19,198,10),下列说法有错误的是?( )
A: print(tup2[1:-1])可以截取元组的一部分,输出的结果为(14,51,4,19,198,10)
B: print(tup2[3:])可以截取元组的一部分,输出的结果为(4,19,198,10)
C: print(tup2[3:6])可以截取元组的一部分,输出的结果为(4,19,198)
D: print(tup2[5])可以访问元组的第六个元素,输出的结果为198
答案:A
虽然tup2[1:-1]会截取元组从索引1到倒数第二个元素(不包括最后一个元素)的部分,但是输出的结果应该是(14, 51, 4, 19, 198),而不包括最后一个元素10。
第19题
下列说法错误的是?( )
A: 列表的大小是固定的,不可以改变
B: len()方法可以返回列表的元素个数
C: 假设list2列表有十个元素,则list2[2]可以读取list2列表中的第三个元素
D: 列表的数据项不需要具有相同的类型
答案:A
列表的大小是可变的,可以根据需要进行动态调整。可以通过添加、删除或修改列表的元素来改变列表的大小。
第20题
请根据运行结果将代码空白处填上合适的选项?( )
代码:
num1=1
while num1 <= 5:
num2=1
while num2 <= 5:
___________
num2 += 1
print()
num1 += 1
运行结果:
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
5 5 5 5 5
A: print(num2,end=“”)
B: print(num2,end =" “)
C: print(num1)
D: print(num1,end =” ")
答案:D
第21题
关于下列伪代码(虚拟代码)说法正确的是?( )
if x<10:
代码块A
elif x>=10 and x<20:
代码块B
else:
代码块C
A: 如果x=200,代码块ABC都不会被执行
B: 如果x=20,执行代码块C
C: 如果x=20,执行代码块B
D: 程序先执行C,再执行B,最后执行A
答案:B
第22题
执行以下程序,输入"中国梦2022",输出结果是?( )
w = input()
for x in w:
if x=='0'or x =='2':
continue
else:
w.replace(x,'@')
print(w)
A: 中国梦2022
B: 中国@2022
C: @@@2022
D: 2022中国梦
答案:A
这个程序中出现了一个问题。在循环中,当某个字符不是’0’或’2’时,使用w.replace(x, ‘@’)语句来替换字符。然而,字符串是不可变对象,replace()方法返回的是一个新字符串,而不会修改原始字符串。因此,虽然在循环中进行了替换操作,但实际上并没有修改原始字符串w。
因此,输出结果将保持原样,即"中国梦2022"。
第23题
字典dic={‘Name’: ‘Runoob’,‘Age’: 7,‘Class’: ‘First’},len(dic)的结果是?( )
A: 3
B: 6
C: 9
D: 12
答案:A
给定字典 dic = {‘Name’: ‘Runoob’, ‘Age’: 7, ‘Class’: ‘First’},使用 len(dic) 方法可以获取字典中键值对的数量。
根据给定字典的键值对数量,即 3 个键值对,因此,len(dic) 的结果是:3
第24题
以下不能创建一个字典的语句是?( )
A: dic={“name”:“python”}
B: dic={“age”:13}
C: dic={[1,2]:“user”}
D: dic={}
答案:C
在Python中,字典是由键(key)和值(value)组成的键值对集合。然而,字典的键必须是不可变的类型,例如整数、字符串或元组等。根据这个特性,可以确定不能创建字典的语句是:
C: dic={[1,2]:“user”}
这个语句中,使用了列表作为字典的键,而列表是可变的类型,不符合字典键必须是不可变类型的要求。
第25题
关于字符串的操作,下列说法错误的是?( )
A: len()返回字符串长度
B: count()统计字符或者字符串在整个字符串中的个数
C: sort()可以给字符串排序
D: split()是给字符串进行分割
答案:C
在Python中,字符串是不可变的序列类型,因此字符串对象没有自带的排序方法。如果要对字符串进行排序,需要先将其转换为可排序的列表或其他可变类型,然后再进行排序操作。
二、判断题(共10题,每题2分,共20分)
第26题
字典中的键是唯一的,不能重复。而值对应于键,值是可以重复的。( )
答案:正确
在字典中,键是唯一的,每个键只能在字典中出现一次。如果尝试使用相同的键多次添加到字典中,后续的键值对会覆盖之前的键值对。
而值对应于键,可以是重复的。字典中的不同键可以具有相同的值。字典中的值可以是任意对象,并且不受唯一性的限制。
第27题
print(len(‘See You’))这句指令的长度是有7个字符,因为两个单词间的空格也算一个字符。( )
答案:正确
第28题
以下程序的执行结果是“假”。( )
x=2
if 10>20 and x>0:
print('真')
else:
print('假')
答案:正确
根据给定的条件 10>20 和 x>0,可以确定两个条件都是不成立的。因为 10 不大于 20,而 x 的值为 2,不大于 0。
由于 and 运算符需要两个条件都为真才能返回真值,因此整个条件判断语句的结果为假。所以,会执行 else 语句块中的 print(‘假’),输出结果为“假”。
第29题
列表和元组都可以作为字典的键。( )
答案:错误
字典的键必须为不可变的,而列表是可变的,所以列表不可以作为字典的键。
第30题
a = [1, 2, 3, 4]
s = 0
for i in a:
s += 1
print(s)
以上代码的运行结果是4。( )
答案:正确
根据代码逻辑,变量 s 的初值为 0,然后通过循环遍历列表 a 中的每个元素,每遍历一个元素,将变量 s 的值加一。由于列表 a 中有 4 个元素,所以循环迭代的次数也是 4。最后,s 的值将等于循环迭代的次数,即 4。
因此,以上代码的运行结果是 4。
第31题
元组是不可变的序列,这里的不可变包括不能对元组对象进行增加元素、删除元素,修改元素位置是可以的。( )
答案:错误
元组是不可变的序列,这意味着元组一旦创建后,不能对其进行增加、删除或修改元素的操作。无法修改元组中元素的位置。元组的不可变性是指元组对象本身不可变,而不是元组中的元素不可变。
第32题
运行下列程序段后,屏幕上绘制的是一个五边形。( )
import turtle as t
for i in range(1,5):
t.forward(50)
t.left(90)
答案:错误
运行上述程序段后,屏幕上绘制的是一个正方形,而不是五边形。程序中的循环执行了四次,每次向前移动50个单位,然后向左旋转90度。这样的操作会绘制出四条边相等的正方形。要绘制一个五边形,需要将循环的范围改为5,并将旋转角度调整为72度。以下是绘制五边形的正确代码:
import turtle as t
for i in range(1, 6):
t.forward(50)
t.left(72)
第33题
若s=“人脸识别可以识别人脸信息”,则执行s.replace(“人脸”,“图像”)语句后,s的值为"图像识别可以识别图像信息"。( )
答案:错误
字符串是不可变类型,无法直接修改字符串的值。执行s.replace("人脸","图像")
语句后,并不会改变原始字符串s
的值。相反,该语句会返回一个新的字符串,其中所有的"人脸"都被替换为"图像"。
第34题
(127,3.56,‘1&5#!^*2’,‘4.(.$0…6’)是一个合法的元组。( )
答案:正确
元组可以包含不同类型的元素,包括整数、浮点数和字符串。在这个例子中,元组包含了一个整数 127
,一个浮点数 3.56
,以及两个字符串 '1&5#!^*2'
和 '4.(.$0..6'
。这是一个合法的元组定义。
第35题
在Python中range(),表示的是正整数序列,负数是无效的。( )
答案:错误
在Python中,range()
函数可以表示一个整数序列,包括正整数、负整数和零。你可以使用负数作为 range()
函数的参数来生成递减的整数序列。例如,range(5, -5, -1)
将生成从 5 到 -4 的整数序列。因此,负数在 range()
函数中是有效的。
三、编程题(共2题,共30分)
第36题
某航空公司对于托运行李有尺寸要求,必须满足以下条件:
每件托运行李的长、宽、高三边之和须大于或等于60厘米,且小于或等于203厘米。(注意只是三边,不考虑立方体的整个周长,相当于只求长+宽+高三个数字的和,如,长宽高为:20、30、40,则之和为90)
编写一个重复执行的程序,要求如下:
1、用户一次性输入三个数字,分别代表行李的长、宽、高(单位:厘米),三个数字直接用英文的逗号隔开;如:23,45,67
2、程序自动将输入的长宽高转化为列表或者元组;
3、程序需要判断用户输入的托运行李尺寸是否满足此航空公司的要求。
4、如果满足要求,就输出"可以托运"。如果不满足要求,就输出"不可以托运"。
5、然后重复以上操作,重复次数不限。
答案:
可以使用以下Python代码实现上述要求:
while True:
dimensions = input("请输入行李的长、宽、高(用逗号隔开):")
length, width, height = map(int, dimensions.split(','))
total = length + width + height
if total >= 60 and total <= 203:
print("可以托运")
else:
print("不可以托运")
这段代码使用了一个无限循环 while True
,以便重复执行程序。在每次循环中,用户被要求输入行李的长、宽、高,然后使用 split()
方法将输入的字符串拆分为三个数字。接下来,将这三个数字转换为整数,并计算它们的总和。最后,根据总和的值判断是否满足航空公司的要求,并输出相应的结果。循环会一直进行,直到程序被手动中断。
第37题
统计一段文本中有几句话
编写程序,要求如下:
1.程序开始运行后,需要用户输入一段中文;
2.根据用户的输入,统计其中共有几句话(以句末为“。”“?”或“!”为依据,判断一句话);
3.输出统计结果,如:“这段话中共有3句话”。
答案:
可以使用以下Python代码实现上述要求:
text = input("请输入一段中文:")
count = 0
for t in text:
if t == "。" or t == "!" or t == "?":
count += 1
print("这段话中共有{}句话。".format(count))
这段代码使用一个循环遍历输入的文本中的每个字符。如果字符是句号、感叹号或问号之一,就将句子计数器 count
加一。最后,使用 print()
函数输出统计结果。