一、单选题
1、老师要求大家记住四大名著的作者,小明机智地想到了可以用字典进行记录,以下哪个选项的字典格式是正确?( )
A.['曹雪芹':'红楼梦', '吴承恩':'西游记', '罗贯中':'三国演义', '施耐庵:'水浒传']
B.{'曹雪芹'-'红楼梦', '吴承恩'-'西游记', '罗贯中'-'三国演义', '施耐庵-'水浒传'}
C.{'曹雪芹':'红楼梦'; '吴承恩':'西游记'; '罗贯中':'三国演义'; '施耐庵:'水浒传'}
D.{'曹雪芹':'红楼梦', '吴承恩':'西游记', '罗贯中':'三国演义', '施耐庵':'水浒传'}
正确答案:D
答案解析:字典是用大括号括起来的,排除 A;字典中键值对中间是冒号,排除B,字典每个键值对之间,要用逗号隔开,排除 C
2、已知列表a = [11,222, 333 ,4444],以下能输出333的代码是?( )
A.print(a[-1])
B.print(a[3])
C.print(a[333])
D.print(a[2])
正确答案:D
答案解析:列表的索引是从0开始,如果是反索引,则是从-1开始,所以本题的答案为D
3、已知字符串str1 = 'welcome to China',word = 'some',查询word在str1中首次出现的位置,以下代码正确的是?( )
A.print(str1.index(word))
B.print(str1.find(word))
C.print(str1.find(str1, word))
D.print(str1.index(str1, word))
正确答案:B
答案解析:字符串查找2个函数:find、index的区别。find找到则返回位置,未找到返回-1,index未找到会报错
4、已知 stu = ["Jim","Lucy","Tom","Jane"],则执行 stu[2]="Jun",stu 的值是哪一个?( )
A.["Jun","Lucy","Tom","Jane"]
B.["Jim","Lucy","Jim","Jun"]
C.["Jim","Lucy","Jun","Jane"]
D.["Jim","Jun","Tom","Jane"]
正确答案:C
答案解析:本题考察的实列表的赋值,stu[2]="Jun"是将第三个元素修改为Jun,所以选C。
5、哪个选项是程序设计的三种基本结构?( )
A.顺序结构、跳转结构、循环结构
B.顺序结构、循环结构、分支结构
C.过程结构、对象结构、函数结构
D.过程结构、循环结构、分支结构
正确答案:B
答案解析:程序设计的三种基本结构是顺序结构、分支结构和循环结构。
6、
s = 8
while s > 1:
print(s)
s = s/2
上述程序的s输出了几次?( )
A.8
B.3
C.4
D.2
正确答案:B
答案解析:当型循环,当s>1时,执行循环体,否则跳出循环。s的结果是8、4.0、2.0
7、
哪个选项不是Python程序分支结构的保留字?( )
A.if
B.elif
C.else
D.try
正确答案:D
答案解析:try是异常处理的保留字。
8、
运行下列代码,终端区打印的结果是?( )
dic={'qq':26453343,'weixin':35345749,'qq':394594540,'face':979789490}
print(dic['qq'])
A.'qq':26453343
B.'qq':394594540
C.394594540
D.26453343
正确答案:C
答案解析:字典中,如果同一个键出现两次,则后一个值会被记住;print(dic['qq'])是输出键'qq'对应的值。故正确答案为C。
9、
以下选项中,创建了只含有1个元素的元组的是?( )
A.t=(2025,)
B.t=(2025)
C.t={2025}
D.t=[2025]
正确答案:A
答案解析:在python中,元组的创建可使用小括号()。当元组中只有一个元素时,元素后面必须添加一个逗号,否则创建的不是元组。
10、
tup1=('物理','化学','政治')
tup1[2]='生物'
print(tup1)
以上程序运行的结果是?( )
A.('物理','化学','政治','生物')
B.('物理','化学','生物')
C.终端区会报错
D.('物理','生物','政治')
正确答案:C
答案解析:元组中的元素在创建时就固定了,不能改变。
11、
for i in (1,2,3,4,5,6,7,8,9,10):
if i==4:
continue
print(i,end=",")
以上程序运行的结果是?( )
A.1,2,3,4,5,6,7,8,9,10
B.1,2,3,5,6,7,8,9,10
C.1,2,3
D.1,2,3,5,6,7,8,9,10,
正确答案:D
答案解析:for循环可以遍历任何序列的项目,如列表、元组。在循环语句中,continue语句是跳过当前循环,进入下一个循环。最终,通过print()按照小括号指定格式输出。
12、
以下程序段运行的结果是?( )
ls=[23,19,30,87,42,58,99,14]
ls.insert(-2,6)
A.[23, 19, 6, 30, 87, 42, 58, 99, 14]
B.[23, 19, 30, 87, 42, 58, 6, 99, 14]
C.[23, 19, 30, 87, 42, 58, -2, 99, 14]
D.[23, 19, 30, 87, 42, 58, 99, 6, 14]
正确答案:B
答案解析:ls.insert(-2,6)第一个参数-2(倒数第二个)表示待插入元素的索引,第二个参数6表示待插入元素。
13、
小明在数学课上学习了如何计算长方形的面积。现在,他有一个长为6厘米,宽为4厘米的长方形。如果他用Python来表示这个长方形的长和宽,并且想要保证这些数据不能被修改,下面哪种数据类型最符合该要求:一旦确立不能被修改?( )
A.列表
B.元组
C.字典
D.除了元组外都符合
正确答案:B
答案解析:元组具有不可修改的性质。
14、
小明和朋友们玩一个猜谜语的游戏,每人轮流出一个谜语,直到有人猜对为止。如果这个场景是在Python编程中,下面哪个函数或者命令可以实现有人猜对时直接结束退出循环,应该怎么做?( )
A.使用if语句检查答案是否正确
B.使用while循环让每个人轮流出题
C.使用break语句在猜对时结束游戏
D.使用continue语句让下一个人出题
正确答案:C
答案解析:在猜谜语的游戏中,一旦有人猜对,游戏就应该结束。对应Python编程环境就是满足条件退出当前循环,可以通过在猜对时使用break语句来实现。
15、
已知列表cities = ['beijing', 'shanghai', 'guangzhou', 'shenzhen'],以下哪个命令可以删除最后一个列表元素'shenzhen'?( )
A.cities.del()
B.cities.pop()
C.cities.remove()
D.cities.pop(4)
正确答案:B
答案解析:该列表中最后一个元素的索引是3,故选项A的del方法需传入参数索引3,选项D的pop方法需将参数值索引4改为3;选项C的remove方法需传入参数值shenzhen;因此,选项A、C、D均错误;pop()方法无参数时默认删除最后一个元素,故本题正确答案为选项B。
16、
已知列表list = ['d','r','a','g','o','n'],执行一次命令list.append('s')后,print(list)的输出结果是?( )
A.['d','r','a','g','o','n']
B.['s','d','r','a','g','o','n']
C.[ ]
D.['d','r','a','g','o','n','s']
正确答案:D
答案解析:list.append('s')函数的作用是将元素’s’添加到列表list的末尾,故本题答案为选项D。
17、
执行语句print("这{1}箱橙子的重量为{0}公斤。".format(5,3)),得到的输出结果是?( )
A.这3箱橙子的重量为5公斤
B.这5箱橙子的重量为3公斤
C.这{3}箱橙子的重量为{5.00}公斤
D.这3箱橙子的重量为{3.0}公斤
正确答案:A
答案解析:字符串的format()方法格式化输出时,字符串中的槽{}的默认顺序是0、1、2、…, format()参数的顺序也是0、1、2、…,字符串中槽中的数字序号可以改变参数的顺序,本题中槽{1}处对应的参数是3,{0}对应的参数是5,故本题正确答案为选项A。
18、
关于字典的描述,下列选项中说法错误的是?( )
A.字典是一种不可变的复合数据类型
B.字典中的元素由键值对组成,键值对中键和值由冒号分隔
C.字典中所有的键值对由{}括起来
D.字典中的键值对之间用逗号分隔
正确答案:A
答案解析:字典是一种可变的复合数据类型。所以本题正确答案为A。
19、
王老师将学生成绩存入字典score中,score = {'语文': 90, '数学': 99, '英语': 99},则执行print((score['语文']+score['数学']+score['英语']) // 3),输出结果为?( )
A.96.0
B.96
C.1.0
D.1
正确答案:B
答案解析:本题是计算三个科目的整数平均分,通过字典中的键可以访问值,即90+99+99的和整除3,结果为96。所以本题正确答案为B。
20、
学校要举办运动会,列表 list1 = ["短跑", "篮球", "跳远", "足球", "跳绳"] 中保存了可以参加的项目,小明想报名参加足球,下面哪一项可以打印出足球?( )
A.print( list1[0] )
B.print( list1[2] )
C.print( list1[3] )
D.print( list1[4] )
正确答案:C
答案解析:列表的索引是从0开始的。
21、
小红是一名爱好广泛的小学生,为了方便记录,她将自己三个爱好按喜欢程度保存在列表list1中,list1 = ["舞蹈", "画画", "陶艺"],最近她迷上了编程,想把第一爱好舞蹈修改为编程,下面是她写的程序,请你选出能实现此功能的程序?( )
A.list1[1] = "编程"
B.list1[2] = "编程"
C.list1[3] = "编程"
D.list1[0] = "编程"
正确答案:D
答案解析:要修改的列表元素,下标为0。
22、
你的生日马上就要到了,为此你准备办一个生日聚会。你列出了想要邀请的好友名单,并保存在列表中,list_name = ['黄梓熙', '江伊洛', '徐彤彤', '吴雨萱', '罗兰妮', '李雪婷', '李婉茹', '王嘉怡', '李璐瑶'],妈妈为你准备生日蛋糕,需要统计你邀请的总人数,下列哪一项可以实现此功能?( )
A.changdu(list_name)
B.length(list_name)
C.len(list_name)
D.size(list_name)
正确答案:C
答案解析:len()命令可以求列表的长度。
23、
小明班里有40名同学,老师需要按照从小到大顺序打印出每名同学的编号,他使用学过的range()函数编程完成此任务,请问下面小明编写的哪一个程序可以实现此功能?( )
A.for value in range(1, 39):
print(value)
B.for value in range(1, 40):
print(value)
C.for value in range(1, 41):
print(value)
D.for value in range(1, 42):
print(value)
正确答案:C
答案解析:range()命令中的第二个参赛表示的是结束的整数,但是不包括该整数,因为题目中有40名同学,而且开始是从1开始,那么最后一个数字应该是40.所以选C。
24、
下面哪一个程序可以实现:使用for循环打印出3-30内能被3整除的所有数?( )
A.for i in range(1,30,3):
print(i)
B.for i in range(1,30):
print(i)
C.for i in range(3,30):
print(i)
D.for i in range(3,31,3):
print(i)
正确答案:D
答案解析:range语句三个参数分别表示:起始位置、结束位置(不含该整数)、步长;根据题意,选D符合要求
25、
下列关于字符串(string)的说法,错误的是?( )
A.字符串(string)就是一系列字符,我们可以使用引号( ' 或 " )来创建字符串
B.三引号(""")允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符
C.使用count(str)方法,可以统计字符串里某个字符出现的次数
D.使用len(string)方法,可以转换字符串中所有大写字符为小写
正确答案:D
答案解析:考察字符串内建函数,len(string) 返回字符串长度
二、判断题
26、在循环结构中,循环体只要开头和结尾缩进就可以,其他地方不需要缩进。(
对
错
正确答案:错
答案解析:循环结构中的循环体必须都要缩进。
27、
执行如下代码的运行结果是 CHNA.( )
for c in "CHINA" :
if c == "I" :
continue
print(c, end="")
对
错
正确答案:对
答案解析:continue结束当次循环,继续执行后续次数循环。
28、
列表的数据项不需要是相同的数据类型,可以有整数、浮点数、字符串等,甚至可以是列表、元组和字典,各个元素之间使用分号进行分隔。( )
对
错
正确答案:错
答案解析:列表的数据元素之间之间使用逗号分隔。
29、
st='悠悠绿水傍林偎,日落观山四望回',如果想打印st的反序字符串:"回望四山观落日,偎林傍水绿悠悠",可以使用语句print(st[::-1])。( )
对
错
正确答案:对
答案解析:列表中[::-1]代表的是从后往前进行步长为-1的切片生成新的列表,实际上就是将原来的文本进行反转。
30、
小明在编写一个游戏程序,每一个关卡为一个独立的无限循环,当玩家的分数达到某个特定值时,游戏会结束当前关卡进入下一关,为完成此功能,小明使用了continue语句来跳过当前关卡,直接进入下一关。小明对Python语句的使用是正确的。( )
对
错
正确答案:错
答案解析:错误。在小明的游戏程序中,每个关卡为一个独立的无限循环,continue语句的作用是跳过当前关卡结束后的一些额外处理(比如显示得分、播放动画等),再次进入本关的开始。continue并不会结束整个循环结构(即当前关卡),而是跳过当前迭代中continue语句之后的代码,回到循环的开始处继续下一次迭代(即再次进入本关)。正确的用法应该是分数达到特定值时使用break语句。
31、
while语句和for语句的循环条件后都必须输入冒号,需要循环执行的语句必须有缩进。( )
对
错
正确答案:对
答案解析:在python程序中,while和for语句循环条件后的冒号用于表示之前的语句是循环判断语句,缩进是为了区分循环体内的语句,这会使得程序代码更有层次和结构感。
32、
当创建的元组中只有一个元素时,需要在元素的后面增加逗号。( )
对
错
正确答案:对
答案解析:当创建的元组中只有一个元素时,需要在元素的后面增加逗号。如果不加逗号,它就不是元组类型
33、
有字典price = {'牛奶': '5元', '面包': '6元'},要想将面包的价格改为8元,应该使用price{'面包'} = '8元'。( )
对
错
正确答案:错
答案解析:要想将面包的价格改为8元,应该使用price['面包'] = '8元'。
34、
元组(tuple)与列表(list)类似,都使用方括号定义,不同点是元组一旦定义,在程序生命周期内内容不可被修改。( )
对
错
正确答案:错
答案解析:此题考查元组的概念、特点,以及元组定义的语法,元组定义使用圆括号和逗号,区别于列表定义使用方括号和逗号。
35、
对 str = "A+B+C",执行 str.split("+") 后的结果是['A'+'B'+'C']。( )
对
错
正确答案:错
答案解析:字符串.split()方法的作用是返回一个列表,生成列表的元素是由该方法的参数分隔而成的,列表的元素之间用“,”分隔。
三、编程题
36、
输出字符串中部分字符
编写一段能够输出原字符串中某个字符(如果是多次出现的字符,则为第一次)出现前所有字符的代码。字符输出的方式不限,可以一个一个输出,也可以一起输出;可以一行一个输出,也可以输出在一行,但是必须是指定字符前面的所有字符都要有(包括空格和标点符号)。
要求:
(1)程序运行开始后,用户通过键盘输入截止的单个字符(格式为字符串),提示信息为“请输入截止字符:”;
(2)必须用循环结构;
(3)如果未遇到输入的截止字符,则直接输出原字符串所有内容;
(4)如果遇到输入的截止字符,则终止循环,结束程序;
(5)原字符串需要在程序中明确,为” Reading a good book, like and many noble people talk”,程序中直接引用,无需用户通过键盘输入。
(6)对于多次出现的字符,只需要输出第一次出现截止字符之前的字符;如:输入的截止字符为o,需要输出的字符中必须包含”Reading a g“(含空格)才为正确。
示例:
程序运行后提醒用户输入截止字符;从原字符串的第1个位置起,如果不是刚才输入的截止字符,则输出原字符串中的字符,如果遇到了输入的截止字符,则终止循环,结束程序。
请输入截止字符:a
R
e
友情提示:
(1)由于考试平台暂不支持eval()命令,同学们可以选用其他命令;当然如果您使用了,只要程序是正确的,我们阅卷时依然按照正常处理。
(2)用户输入语句会在控制台自动输出,不影响评测结果,如下图所示:
正确答案:答案暂无
答案解析:标准答案:
参考程序:
str="Reading a good book, like and many noble people talk"
c=input("请输入截止字符:")
for i in str:
if i==c:
break
else:
print(i)
试题难度:一般
试题解析:
评分标准:
(1)用input()函数输入截止字符;(2分)
(2)有循环语句(正确使用for或者while);(2分)
(3)使用了if双分支条件语句或两次单分支if进行判断;(2分,两个分支各1分)
(4)使用了break语句;(2分)
(5)未到截止字符前,输出对应字符;(2分)
(6)if条件语句中的条件正确;(2分)
(7)程序运行正常,输出符合题意。(3分)
说明: input()默认读入的为字符串;从原字符串的第1个位置起,到输入的截止字符前为止,故循环枚举原字符串中的每一个字符,需要用if条件语句进行判断其和截止字符是否相同,如果不相同,则输出,继续枚举原字符串的下一个位置;如果if条件语句判断其和截止字符相同,则需执行break语句,中止循环并结束程序。
37、
学校老师统计了班级学生的成绩单如下,成绩是按照学号从1号到20号:
91,89,92,87,94,97,100,98,92,94,91,90,93,96,98,93,89,95,94,99
请你编写一个成绩查询程序,输入学生学号,打印输出该学生的成绩。
要求:
(1)如果输入的学号在1到20之间(包含1和20),则输出“该学生的成绩为**。”
(2)如果输入的学号不在1到20之间,则输出“该学号不存在!”
友情提示:
由于考试平台暂不支持eval()命令,同学们可以选用其他命令;当然如果您使用了,只要程序是正确的,我们阅卷时依然按照正常处理。
正确答案:答案暂无
答案解析:参考程序:
cj = [91,89,92,87,94,97,100,98,92,94,91,90,93,96,98,93,89,95,94,99]
num = int(input("请输入学生学号:"))
if num >0 and num<21:
print("该学生的成绩为:",cj[num-1] )
else:
print("该学号不存在!" )
提示:以上程序仅供参考,只要程序符合要求均可。
试题难度:一般
试题解析:
评分标准:
(1)建立了列表或者元组、字典等,用于保存成绩;(2分)
(2)有输入语句,有提示语;(各1分,共2分)
(3)有数据类型转换,并且转换正确;(2分)
(4)有条件语句;(每个分支1分,共2分)
(5)有输出语句,并且提示语句正确;(每个提示语句1分,共计2分)
(6)学号判断正确;(2分)
(7)程序运行正常,符合题意。(3分)