一、单选题(共25题,共50分)
1.运行下列程序,输出的结果是?( A)(2分)
tup1=('苏炳添','谷爱凌','北京冬奥会','2022')
tup2=(201,8,4,21,155,255,22)
print(tup1[-1::-2],sum(tup2)) 注:[开始:结束:间隔],正向索引和反向索引的区别。
A.('2022','谷爱凌')666
B.'2022','谷爱凌'666
C.'2022','北京奥运会'666
D.('2022',)666
2.下列关于if-else中的代码块说法正确的是?(A )(2分)
A.缩进是Python分支语句的语法部分,缩进不正确会影响分支功能。
B.if语句中条件表达式可以省略不写。
C.代码块是固定的内容,一旦写入不能修改。
D.if-else结构是不可以嵌套的。
3.下列哪个是一个合法的列表?( B )(2分)
A.(114,5,1,4) 元组
B.['114','514']
C."11,45,1,4" 字符串
D.{11,'4',5,14} 不是字典,要有键值对
4.运行下列程序,输出的结果是?(C)(2分)
list4=['1','3','5']
list4.append('7') 注:向列表末尾添加值
print(len(list4))
A.2 B.3 C.4 D.5
5.已知列表list9=[114,5,14,1,91,98,10],下列说法错误的是?(C )(2分)
A.print(max(list9))可以输出列表的最大值,输出结果为114
B.print(min(list9))可以输出列表的最小值,输出结果为1
C.print(list9.index(98))可以输出数值98第一个匹配项的索引位置,输出结果为6 注:5
D.list9.pop()可以移除列表中的最后一个元素
6.小明将小组的50米跑步成绩存入列表s,s的值为[11.5,11.4,11.6,11.2,12.0,11.5],则执行s.sort()语句后,s的值是?(B )(2分) 注:按照从小到大进行排序
A.[11.5,11.4,11.6,11.2,12.0]
B.[11.2,11.4,11.5,11.5,11.6,12.0]
C.[12.0,11.6,11.5,11.5,11.4,11.2]
D.[11.2,11.4,11.5,11.6,12.0]
7.若s=["中国","I love you",[2022,100]],则len(s)的值是?(A )(2分)
A.3
B.4
C.2022
D."中国"
8.小明用元组a存储自己喜欢吃的水果,a=("apple","banana","orange","banana","pear"),则a.index("banana")的值是?( B)(2分)
A.0 B.1 C.2 D.3
9.运行下列程序,输出的结果是?(C )(2分)
d={"王明":178,"张华":158,"于飞":189,"刘英":164}
d["张华"]=162
print(d) 注:字典的值可以进行修改
A.{'王明':178,'张华':158,'于飞':189,'刘英':164}
B.{''张华':162}
C.{'王明':178,'张华':162,'于飞':189,'刘英':164}
D.{'王明':178,'张华':158,'于飞':189,'刘英':164,'张华':162}
10.运行下列程序,输出的结果是?(D)(2分)
for i in range(1,5,2):
print(i)
A.
1
2
3
4
5
B.
1
2
3
4
C.
0
2
4
D.
1
3
11.运行下列程序,输出的结果是?(A)(2分)
lis1=["a","e","i","o","u"]
strword='helloworld'
lis2=[]
for i in strword:
if i not in lis1:
lis2.append(i)
print(lis2)
A.['h','l','l','w','r','l','d']
B.['h','l','w','r','l','d']
C.['e','o','o']
D.['e','','o','','o']
12.运行下列程序,输出的结果是?(C)(2分)
lt=["cat",0,1,2,3,4,"tiger",1024]
lt.remove(3) 注:remove()的用法
print(lt)
A.['cat',0,2,4,'tiger',1024]
B.['cat',0,1,4,'tiger',1024]
C.['cat',0,1,2,4,'tiger',1024]
D.['cat',0,1,2,4,1024]
13.运行下列程序,输出的结果是?(C)(2分)
for s in "HelloWorld":
if s=="W":
continue
print(s,end="")
A.World
B.Hello
C.Helloorld
D.HelloWorld
14.运行下列程序,输出的结果是?(C)(2分)
s='kdk-kldk-dsd'
s=s.split('-') 注:split()表示删除某个字符
print(''.join(s)) 注:.join()表示用某种连接
A.['kdk','kldk','dsd']
B.kdk kldk dsd
C.kdkkldkdsd
D.kdk-kldk-dsd
15.a=2 b=0,下列不能打印出2022的是?(B)(2分)
A.print('%d%d%d%d'%(a,b,a,a))
B.print(''.join([a,b,a,a])) 注:join()用于连接字符
C.print("{0}{1}{0}{0}".format(a,b))
D.print('%s%s%s%s'%(a,b,a,a))
16.运行下列程序,输出的结果是?(C)(2分)
chengyu={'四字成语':'杨柳依依','三字成语':'风马牛','六字成语':'一动不如一静','四字成语':'百里挑一'} 注:不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住
print(chengyu)
A.{'四字成语':'杨柳依依','三字成语':'风马牛','六字成语':'一动不如一静','四字成语':'百里挑一'}
B.字典的键值对不允许重复,运行会报错
C.{'四字成语':'百里挑一','三字成语':'风马牛','六字成语':'一动不如一静'}
D.{'四字成语':['杨柳依依','百里挑一'],'三字成语':'风马牛','六字成语':'一动不如一静'}
17.运行下列程序,输出的结果是?(C)(2分)
i=5
while i: 注:True为1,False为0。条件为True才会继续循环。
print(i)
i=i-1
A.上述代码是死循环,会一直打印
B.上述代码的打印结果是:
5
4
3
2
1
0
C.上述代码的打印结果是:
5
4
3
2
1
D.上述代码的打印结果是:
4
3
2
1
0
18.想要统计数字1在列表number中出现的次数,正确的代码是?(A)(2分)
A.
n=0
for i in range(len(number)):
if number[i] == 1:
n += 1
print(n)
B.
n=0
for i in range(len(number)):
if i == 1: 注:这里的i表示次数
n += 1
print(n)
C.
n=0
for i in range(number):
if number[i]==1: 注:这里的i表示列表的值
n+=1
print(n)
D.
n=0
for i in range(len(number)):
n+=1
print(n)
19.执行result=[3,2,5]*2语句后,result的值是?(C)(2分)
A.[6,4,10]
B.[3,2,5],[3,2,5]
C.[3,2,5,3,2,5]
D.[9,4,25]
20.a=['Welcome','to','Python','World','!'],以下哪条语句无法删除列表a中的元素Python?(C)(2分)
A.del a[2]
B.a.pop(2)
C.a.pop('Python')
D.a.remove('Python')
注:记住pop()和remove()的区别,pop()删除最后一个元素,pop(index)删除指定索引的值,remove()要指定元素的值。
21.运行下列程序,输出的结果是?(C)(2分)
d={'语文':96,'数学':100,'英语':100,'科学':99}
for x in d:
print(x,end='')
A.'语文':96'数学':100'英语':100'科学':99
B.96 100 100 99
C.语文 数学 英语 科学
D.[语文'96'数学'100'英语'100,'科学'99]
22.下列说法,错误的是?(A)(2分)
A.字典的键和值可以是任何类型的Python对象。注:值可以取任何数据类型,但键必须是不可变的,如字符串,数字。
B.字典的键是可以添加和删除的
C.如果字典非空,那么字典每项值的都是一个键值对,格式是key:value
D.字典可以是为空值,通常用{}表示
23.元组同列表那样可以有多个元素,但只能执行如下的哪个操作?(C)(2分)
A.修改
B.添加
C.读取
D.删除
24.运行下列程序,输出的结果是?(B)(2分)
s1='student'
s2='school'
s3=s1+s2
print(s3[5:9])
A.ents
B.ntsc
C.entsc
D.ntsch
25.运行下列程序,输出的结果是?(C)(2分)
sum=0
for i in range(1,15,2):
sum=sum+i
print(sum,i)
A.51 15
B.47 13
C.49 13
D.49 15
二、判断题(共10题,共20分)
26.
a=0
While a<10:
a+=0.5
print(a,end="")
打印结果最后的数是10.0。(对)
27.字符串格式化符号%d可以输出格式化浮点数。(错) %d格式化整数,%f格式化浮点数
28.{'b':[4.9,2.1],(0,136,97):(1.36,11,8),321:{'a':91,55:0}}是一个合法的字典。(对)
注:值可以取任何数据类型,但键必须是不可变的,如字符串,元组,数字。
29.continue语句不能在循环体之外使用。(对)
30.在Python中,if语句必须包含else命令。(错)
31.list=[]
print(list)
打印空列表会提示错误。(错)
- 列表是用方括号[]表示,元组是用尖括号<>表示。(错)
33.print('今天的最高气温是'+35+'度')+这个符号是起到连接的作用,所以这个代码的输出结果是:今天的最高气温是35度。(错) 注:+只能连接同一种数据类型。
34.下列程序是对0~9之间的偶数相累加。(对)
s=0
for i in range(10):
if i%2==0:
s=s+i
print(s)
35.len(tup)可以返回元组tup的长度。(对)
三、编程题(共2题,共30分)
36.学过编程的小程同学想帮助医生对核酸检测人群进行分流和统计,根据健康码的颜色分配不同的核酸检测区域:
红码:A区
橙码:B区
绿码:C区等待核酸检测人数众多,但是具体检测人数未知,请你帮小程编写一个程序来协助医生对核酸人群进行人群分流并统计人数。要求如下:
1、字母R代表红码,字母Y代表黄码,G代表绿码:
2、程序运行后根据提示信息输入一个健康码(R、Y、G中之一),输入其他字母提示“输入错误请重新输入”;根据不同的健康码,自动返回区域信息:(红码:A区、橙码:B区、绿码:C区);
3、程序一直在重复运行,但当输入“end”表示检测结束,输出下面信息(见要求4)后程序结束运行;
4、检测结束后输出总人数和对应红码、黄码和绿码的人数。
运行案例如下:
输入样例1:
R
输出样例1:请到A区检测
输入样例2:
Y
输出样例2:请到B区检测
输入样例3:
G
输出样例3:请到C区检测
输入样例4:
end
输出样例4:
检测结束,一共检测*人
红码:*人
黄码:*人
绿码:*人(说明:*代表实际统计的的数字)
参考程序:
r = 0
y = 0
g = 0
while True:
a = input("根据健康码的颜色,请输入健康码(R、Y、G中之一):")
if a == 'end':
print('检测结束,一共检测{}人'.format(r+y+g))
print('红码:{}人\n黄码:{}人\n绿码:{}人'.format(r, y, g))
break
elif a == 'R':
r += 1
print('红码请到A区检测')
elif a == 'Y':
y += 1
print('黄码请到B区检测')
elif a == 'G':
g += 1
print('绿码请到C区检测')
else:
print('输入错误请重新输入')
评分标准:
(1)有无限循环语句;(2分)
(2)有条件判断语句;(2分)
(3)有break语句;(2分)
(4)当输入错误时,可以正确的输出判断结果(提示输入有错);(2分)
(5)当输入字母R、Y或G时,可以正确的提示检测区域;(6分,正确显示A区2分,正确显示B区2分,正确显示C区2分)
(6)当输入“end”时,可以正确地输出提示信息(显示相关统计数据),可以正确的终止循环;(4分。其中正确输出提示2分,正确终止循环2分)
(7)程序结果正确。(2分)
37.设计一个海龟绘图程序,程序效果如下图。要求:
(1)程序开始后,弹出对话信息“请输入边数:”,要求用户输入所要绘制的图形的边数;
(2)海龟从里往外绘制图形,逆时针旋转(向左);
(3)线条初始长度为15,相邻两条边相差5(每一个线条均比前一个线条长5);
(4)线条颜色顺序依次为红色、蓝色、橘色、绿色('red','blue','orange','green')四个颜色组成的列表(必须使用列表方式进行读取);
(5)总共边数符合输入给定的数字。
# 参考程序1:
import turtle
pen_color = ['red', 'blue', 'orange', 'green']
length = 15
jd = 90
i = 1
n = int(input('请输入一共画出多少条边'))
while i < n+1:
turtle.pencolor(pen_color[i % 4])
turtle.forward(length)
turtle.left(jd)
length = length+5
i = i+1
turtle.done()
# 参考程序2:
import turtle
pen_color = ['red','blue','orange','green']
length = 15
n = int(input('请输入一共画出多少条边:'))
for i in range(n):
turtle.pencolor(pen_color[i % 4])
turtle.forward(length)
turtle.left(90)
length = length+5
turtle.done()
评分标准:
(1)能导入海龟模块;(2分)
(2)能将画笔颜色设置在列表中;(1分);绘画中能够正确的使用列表中的画笔颜色(1分);
(3)画出的边数和输入的边数相符;(2分)
(4)实现每次线条长度加5;(2分)
(5)实现程序效果。(2分)
参考了:百度教育