一、单选题
1、列表 fruit = ['西瓜', '菠萝', '哈密瓜', '葡萄'],以下哪个选项,可以获取列表最后一个元素?( )
A. fruit[len(fruit)]
B. fruit[len(fruit) - 1]
C. fruit[len(fruit) + 1]
D. fruit[0]
正确答案:B
答案解析:len() 函数可以获取列表的长度,len(fruit) 的值就是 4,列表的元素索引是从 0 开始的,那么最后一个元素的索引就是 len(fruit) - 1
2、初唐四杰是指唐朝初期的四位文学家,分别是王勃、杨炯、卢照邻和骆宾王。目前列表 names 如下:
names = ['王勃', '杨炯', '白居易', '卢照邻', '骆宾王']
列表中多了一位不是初唐四杰的文学家,以下哪个选项可以删除列表中的这位诗人?( )
A. names.pop()
B. names.pop(1)
C. names.pop(2)
D. names.pop(3)
正确答案:C
答案解析:白居易不是初唐四杰,他在列表中的索引是 2,用 pop 语句弹出元素的时候,需要将元素的索引填写在括号中。
3、小明在语文课学习了一个新成语:'从善如流';形容能迅速而顺畅地接受别人的正确意见,执行以下语句,终端区会打印什么内容?( )
idiom = '从善如流'
for i in idiom:
print(i)
A. 从 善 如 流
B.
从
善
如
流
C. 从善如流
从善如流
从善如流
从善如流
D.
i
i
i
i
正确答案:答案解析:遍历字符串会挨个将字符装进循环变量中,打印语句会自动换行,因此会打印出 B 选项的内容
4、my_tuple = (1, 2, 3, 4, 5)
print(my_tuple[::-2])
以上代码的输出是?( )
A. (1, 3, 5)
B. (1, 2, 3, 4, 5)
C. (5, 3, 1)
D. (5, 4, 3, 2, 1)
正确答案:C
答案解析:元组切片,步长为-2,从后往前,隔一个生成新的元组,结果为C
5、行如下代码,输出结果是?( )
tuple = ('q', 'i', 'n', 'g', 'd', 'a', 'o', '1024')
print(max(tuple) + min(tuple))
A. 1024 q
B. 1024q
C. q 1024
D. q1024
正确答案:D
答案解析:本题考察获取元组最值并进行连接,max()返回最大元素,min()返回最小元素。
6、
for var in :
print(var)
哪个选项不符合上述程序空白处的语法要求?( )
A. range(0,10)
B. (1, 2, 3)
C. a>5
D. "Wulaoshi"
正确答案:C
答案解析:for 循环是将可迭代对象逐一取出。a>5是条件语句,不能用于for循环。
7、执行以下代码后,列表ls的元素个数多少个?( )
ls=[1,2,3,['a',"b"]]
ls.append(5)
ls[3].append(6)
A. 6
B. 5
C. 4
D. 7
正确答案:B
答案解析:append()向列表的末尾添加一个元素,ls[3].append()是对列表ls的第3个元素(列表)中增加元素,列表ls的元素个数未变。故本题答案选B。
8、已知xs=(5,'女','北京大学'),该如何定义字符串geshi,才能在执行print(geshi%xs)后得到如下的运行结果?( )
学号:000005 性别:女 学校名称: 北京大学
A. geshi='学号:%6d\t性别:%s\t学校名称: %s'
B. geshi='学号:%06s\t性别:%s\t学校名称: %s'
C. geshi='学号:%06d\t性别:%s\t学校名称: %s'
D. geshi='学号:%6d\t性别:%d\t学校名称: %d'
正确答案:C
答案解析:%06d用于输出十进制整数,右对齐,共占5格,空白处用0填充;%s用于输出字符串。故正确答案为C。
9、小圆同学想要创建空列表P,他可以通过以下哪条语句实现?( )
A. P={}
B. P=()
C. P=[]
D. P=""
正确答案:C
答案解析:列表的创建可使用方括号[]的方式。
10、ls1=[5,2,0,1,4,11,66,38],以下哪种函数或方法可实现列表ls1元素从大到小的排序?( )
A. ls1.sort()
B. ls1.sort(reverse=True)
C. sorted(ls1)
D. ls1.reverse()
正确答案:B
答案解析:列表中sort()函数可传递一个参数reverse,当reverse为False时,列表是按从小到大的顺序进行排序,可以省略;当reverse为True时,列表是按从大到小的顺序进行排序。sorted()默认从小到大排序,原列表值不变。reverse()将原有列表倒序排列。
11、中国电子学会等级考试的官方网址是https://www.qceit.org.cn,用户可以通过注册账号和密码登入网站。不同用户的账号是不同的,但同一用户的账号和密码是一一对应的,最好采用以下哪种数据结构存储账号和密码的对应关系?( )
A. 元组
B. 字典
C. 列表
D. 字符串
正确答案:B
答案解析:字典是键值对的无序可变序列,字典中的每个元素都是一个键值对,可通过键对象找到对应的值对象。本题中每个用户的账户和密码是不同的,并且总是一一对应的关系,字典数据结构可满足这种特点的数据存储。
12、month={1:'Jan',2:'Feb',3:'Mar',4:'Apr',5:'May',6:'Jun',7:'Jul',8:'Aug',9:'Sep',10:'Oct',11:'Nov',12:'Dec'},month[2]的值是?( )
A. Mar'
B. 3:'Mar'
C. :'Fed'
D. 'Feb'
正确答案:D
答案解析:对于字典元素的访问,一般是指通过键获取对应的值。通过“字典名[键]”来返回对应的值对象。本题的month[2]所对应的值是“Feb”字符串。
13、以下程序段运行后打印的结果是?( )
tp=('牢记历史', '不忘过去', '珍爱和平', '开创未来')
tq='山河已无恙','吾辈当自强'
new=tp+tq
print(new)
print(len(new))
A. ('牢记历史', '不忘过去', '珍爱和平', '开创未来', '山河已无恙', '吾辈当自强')
6
B. ('牢记历史', '不忘过去', '珍爱和平', '开创未来', '山河已无恙,吾辈当自强')
5
C. ('牢记历史', '不忘过去', '珍爱和平', '开创未来','+', '山河已无恙', '吾辈当自强')
7
D. 程序运行出错
正确答案:A
答案解析:程序的执行结果是: ('牢记历史', '不忘过去', '珍爱和平', '开创未来', '山河已无恙', '吾辈当自强') 6 语句tq='山河已无恙','吾辈当自强'等价于tq=('山河已无恙','吾辈当自强') 元组的“+”运算表示两个元组元素的合并
14、下列哪个程序不会陷入死循环?( )
A.
false='false'
while false:
print('该程序已经进入死循环!')
B.
while 0:
print('该程序已经进入死循环!')
C.
while 1<2:
print('该程序已经进入死循环!')
D. while 1:
print('该程序已经进入死循环!')
正确答案:B
答案解析:while循环,当条件判断为真时,循环开始。当条件表达式永远为真,进入死循环。
0、False,1>2,都为假,while循环不会开始执行
1、True,'false',和任何非空字符串都是真。
15、以下程序段执行后绘制出的图形是?( )
import turtle as t
c=['red','yellow','blue','orange','green','pink']
t.left(180)
for i in range(6):
t.fillcolor(c[i])
t.begin_fill()
for j in range(3):
t.forward(200)
t.left(120)
t.end_fill()
t.left(120)
t.hideturtle()
A.
B.
C.
D.
正确答案:B
16、如果有一个列表fruits = ['苹果', '香蕉', '樱桃'],小明想在'香蕉'和'樱桃'之间添加一个新的水果'桔子',他应该怎么做?( )
A. fruits.append('桔子')
B. fruits.insert(1, '桔子')
C. fruits.insert(2, '桔子')
D. fruits.add('桔子')
正确答案:C
答案解析:append方法会将新元素添加到列表的末尾,所以选项A不正确。insert方法允许你在指定索引位置插入新元素。在这个例子中,'香蕉'的索引是1,所以要在它后面插入'桔子',索引应该是2。列表没有add方法,所以选项D也是错误的。
17、执行语句print(list(range(1,5)))的输出结果是?( )
A. [1, 2, 3, 4]
B. [1, 2, 3, 4, 5]
C. 1, 2, 3, 4
D. 1, 2, 3, 4, 5
正确答案:A
答案解析:range()函数用于生成一系列的数,在本题中从指定的第一个值1处开始,到达指定的第二个值5时停止,生成的数不包含第二个值5,故选项B和选项D错误;list()函数用于将range()函数生成的一系列数转换为列表,故选项C错;因此,本题答案为选项A。
18、以下各个选项中的Python语句执行的循环次数与其他不同的是?( )
A.
for i in range(10):
print(i)
B.
for i in range(10,0,-1):
print(i)
C.
i= 0
while (i<=10):
print(i)
i = i+1
D.
i = 10
while (i>0):
print(i)
i = i-1
正确答案:C
答案解析:选项C的循环语句中的循环判断条件是i<=10,i的初值是0,所以循环总共进行0至10总共11次;选项A中的循环进行0至9总共10次,选项B、D中的循环进行1至10总共10次,所以本题答案为选项C。
19、运行下列程序,输出的结果是?( )
s = '抽刀断水水更流。'
print(s.replace('水', '#'))
A. 抽刀断水水更流。
B. 抽刀断更流。
C. 抽刀断##更流。
D. 抽刀断#水更流。
正确答案:C
答案解析:replace()函数会将字符串中符合要求的所有字符替换成提供的新字符。这段程序是将字符串s中出现的所有“水”替换成“#”,因此输出结果为抽刀断##更流。所以本题正确答案为C。
20、运行以下程序,输出结果为?( )
s = 0
l = [1, 2, 3, 4, 5]
for i in l:
if i == 2:
continue
if i == 4:
break
s = s + i
print(s)
A. 15
B. 13
C. 4
D. 10
正确答案:C
答案解析:continue语句会跳出本次循环,break语句会跳出整个循环,当i等于2时,跳出本次循环直接进入下一次循环,当i等于4时,跳出整个循环,因此s的计算结果为s=1+3=4。所以本题正确答案为C。
21、要想把字符串 s = 'abc' 转换成列表类型,以下选项中哪个命令是正确的?( )
A. str(s)
B. int(s)
C. float(s)
D. list(s)
正确答案:D
答案解析:str()可以将其他类型的数据转换成字符串,int()可以将其他类型的数据转换成整数,float()可以将其他类型的数据转换成浮点数,list()可以将其他类型的数据转换成列表。所以本题正确答案为D。
22、下列选项中,关于sort()和sorted()函数说法错误的是?( )
A. sort()函数是在原内存地址上进行排序,会改变原列表的值
B. sorted()函数是在原内存地址上进行排序,会改变原列表的值
C. sorted()函数会生成一个新的已排序列表,不会改变原列表的值
D. sort()函数默认是按照从小到大的顺序进行排序
正确答案:B
答案解析:sorted()函数会生成一个新的已排序列表,不会改变原列表的值。所以本题正确答案为B。
23、小明将自己的考试成绩保存到字典(dictionary)中,如下所示:
dict1 = {'语文':90,'数学':95,'英语':98}
经过核对发现数学少加了2分,现在想修改字典中的数学成绩为97,下列哪个程序可以实现此功能?( )
A. dict1[1] = 97
B. dict1[1][‘数学’] = 97
C. dict1[95] = 97
D. dict1['数学'] = 97
正确答案:D
答案解析:考察访问字典值的方法,字典取值时使用key。
24、定义字典 dict1 = {'姓名':'王小明', '性别':'男','身高':'150cm', '体重':'40kg'} 保存了小明的个人信息,
输入如下程序并执行后,
dict1['爱好'] = '篮球'
dict1['体重'] = '42kg'
del dict1['性别']
请问字典dict1中的内容为?( )
A. {'姓名':'王小明', '性别':'男','身高':'150cm', '体重':'40kg'}
B. {'姓名':'王小明', '性别':'男','身高':'150cm', '体重':'40kg', '爱好': '篮球'}
C. {'姓名':'王小明', '身高': '150cm', '体重': '40kg', '爱好': '篮球'}
D. {'姓名':'王小明', '身高': '150cm', '体重': '42kg', '爱好': '篮球'}
正确答案:D
答案解析:考察字典的内容的新增、修改和删除。
25、小明用Python编写了一个狗狗与人类年龄的转化程序如下,
age = int(input("请输入狗狗年龄: "))
print("狗狗与人类年龄转换")
if age < 0:
print("请输入大于0的年龄!")
elif age == 1:
print("约等于人类年龄14岁")
elif age == 2:
print("约等于人类年龄22岁")
elif age > 2:
human = 22 + (age -2)*5
print("约等于人类年龄: ", human)
假设小明家狗狗现在4岁,请问相当于人类年龄几岁?( )
A. 14
B. 22
C. 31
D. 32
正确答案:D
答案解析:考察条件判断语句if-elif-elif 和 简单计算,输入4时,计算 22 + (4-2)*5 = 32,故选D。
二、判断题
26、元组和列表都属于序列类型,它们的元素都有下标,元素和长度都是可变的。( )
对
错
正确答案:错
答案解析:列表可变,元组固定。
27、while()无限循环常常与if条件结构和break语句结合起来使用。( )
对
错
正确答案:对
答案解析:while语句可实现无限循环的功能。若没有条件结合break语句退出程序,则会陷入程序的死循环。
28、元组的元素不能被修改。( )
对
错
正确答案:对
答案解析:元组是不可变的。
29、在Python中,for循环与while循环都可以用于遍历序列(如列表、元组、字符串等)中的元素。( )
对
错
正确答案:错
答案解析:for循环在Python中常用于遍历序列中的元素,如列表、元组、字符串等。while循环一般用于在条件满足时重复执行代码块,只要条件为真,就会一直循环下去,也可以通过设置变量i=0,通过下标 i+=1 的方式遍历列表元素。
30、已知score=93.2,那么代码 print("本次数学期末考试,本班平均分为%d" % (score)) 的写法是正确的。( )
对
错
正确答案:错
答案解析:已知score=93.2,提示score是浮点型数据,代码print("本次数学期末考试,本班平均分为%d" % (score)) 中的%d应为%f才能正确显示。
31、字典的主要操作是依据键来存储和读取值。( )
对
错
正确答案:对
答案解析:字典中值的使用是通过键值对的形式进行的,本题说法正确。
32、while循环不断地运行,直到指定的条件满足为止。( )
对
错
正确答案:错
答案解析:while循环满足循环条件时不断地运行,直到指定的条件不满足为止,故错误。
33、用min()函数可以找到字符串中最大的字符。( )
对
错
正确答案:错
答案解析:使用min()函数可以找到字符串中最小的字符。
34、列表(list)是一个存储空间,可以存储一个元素,也可以存储多个元素。( )
对
错
正确答案:对
答案解析:
35、要检查两个人的年龄都不小于21岁,可以使用下面的条件语句。( )
age_0 = 22
age_1 = 18
if age_0 >= 21 and age_1 >= 21:
print('两个人年龄都不小于21岁!')
对
错
正确答案:对
答案解析:不小于是大于等于,两个条件同时满足使用 and,故正确。
三、编程题
36、成绩分级
期末数学考试满分为100分,需要将同学们的得分转换为A、B、C、D等级的形式进行期末素质考核评估,大于等于90分为A,大于等于80分小于90分为B,大于等于60分小于80分为C,小于60分为D,现在请编写一段程序,当输入成绩时(成绩为整数),程序能给出相应的等级,并且可循环输入成绩,直至输入字符“E”时结束程序。
友情提示:
由于考试平台暂不支持eval()命令,同学们可以选用其他命令;当然如果您使用了,只要程序是正确的,我们阅卷时依然按照正常处理。
参考程序:
while True:
s = input("请输入分数:")
if s == 'E':
break
score = int(s)
if score >= 90 and score <= 100:
print('A')
elif score >= 80 and score < 90:
print('B')
elif score >= 60 and score < 80:
print('C')
elif score >= 0 and score < 60:
print('D')
else:
print("输入错误,请重新输入!")
评分标准:
(1)用input()函数获取输入值;(2分)
(2)用int()或eval()函数对输入值进行了数字类型转换;(2分)
(3)使用了while无限循环;(2分)
(4)用到了if流程控制语句;(4分,每种情况1分)
(5)能够根据成绩进行正确的成绩分级;(4分,每种情况1分)
(6)能够通过输入字符“E”结束程序。(1分)
37、
飞花令
“飞花令”是中国人在饮酒时的一种助兴游戏,飞花令名字起源于诗词之中,因唐代诗人韩翃的《寒食》“春城无处不飞花”而得名。飞花令的规则是,参与者轮流说出含有特定字的诗句,这些字通常都是事先约定的,称为“雅令”,如“花”、“春”等。请用Python程序来实现飞花令。
功能实现:
(1)程序开始运行时,提示用户输入本局雅令,即约定好的关键字;
(2)输入完雅令后,回车后进入后面的输入诗句环节,
(3)提示用户输入含有雅令的诗句,诗句长度为5个字或者7个字;
(4)多个句子答案用" 、"分隔,并且将每一句转换成列表中的元素;
(5)回车代表结束诗句输入;
(6)统计雅令出现的次数,雅令出现一次计一分;
(7)格式化输出最后得分。
输入输出样例:
参考程序:
key = input('请输入本局的雅令:')
ans = input('输入五言或七言诗句,不同诗句用“、”隔开:').split('、')
count = 0
for x in ans:
if (key in x) and (len(x) == 5 or len(x) == 7):
count += 1
print('你得了{}分!'.format(count))
评分标准:
(1)有input输入语句;(1分)
(2)能够使用split()方法把字符串分割成列表;(2分)
(3)能够遍历列表;(2分)
(4)能够判断雅令是否在列表中的字符串内;(4分)
(5)能够计算列表中每个字符串的长度;(4分)
(6)能够进行格式化输出。(2分)