单选题:(20*3分,共60分)
1、以下不是Python语言保留字的是______。
A、lambda
B、pass
C、await
D、do
AN:D
评析:do不是保留字,d开头的保留字只有def和del。在IDLE文件窗口中,单词do为黑色,其他单词为橙色,橙色部分为保留字或关键字。
2、以下不是Python文件操作方法的是______。
A、load
B、seek
C、read
D、write
AN:A
评析:文件读取方法:read、readline、readlines、seek,文件写入方法:write、writelines。
3、以下程序的输出结果是______。
ls=['绿茶','乌龙茶','红茶','白茶','黑茶']
x='乌龙茶'
print(ls.index(x,0))
A、1
B、0
C、-3
D、-4
AN:A
评析:s.index(x):序列s中第一次出现元素x的位置。索引序号从0开始,所以第一次出现'乌龙茶'的位置是1。
4、在Python语言中,不属于组合数据类型的是______。
A、列表类型
B、字符串类型
C、复数类型
D、字典类型
AN:C
评析:Python语言中的组合数据类型包括集合类型、序列类型(列表类型)和映射类型(字典类型),而复数类型属于基本数据类型中的数字类型。
5、以下语句的执行结果是______。
dd={'a':90,'b':87,'c':93}
print(max(dd),min(dd))
A、c a
B、93 90
C、c b
D、93 87
AN:A
评析:字典由键值对组成,max(d)输出的是最大值对应的键,min(d)输出的是最小值对应的键。
6、关于以下代码的描述中,错误的是______。
def func(a,b):
c=a**2+b
b=a
return c
a=10
b=100
c=func(a,b)+a
A、该函数名称为func
B、执行该函数后,变量c的值为200
C、执行该函数后,变量b的值为100
D、执行该函数后,变量a的值为10
AN:B
评析:代码的执行过程:c = func(a,b)+a = func(10,100)+10 = 10**2+100+10 = 210。执行代码后,变量c的值为210,不是200。
7、对于字典d,以下选项对d.values( )的描述正确的是______。
A、返回一个集合类型,其中包括字典d的所有值
B、返回一个列表类型,其中包括字典d的所有值
C、返回一个元组类型,其中包括字典d的所有值
D、返回一个dict_values类型,其中包括字典d的所有值
AN:D
评析:d.values( )返回字典中给的所有值信息,返回结果是Python的一种内部数据类型dict_values。
8、以下关于函数返回值的描述中,正确的是______。
A、Python函数的返回值使用很灵活,可以没有返回值,可以有一个或多个返回值
B、函数定义中最多含有一个return语句
C、在函数定义中使用return语句时,至少给一个返回值
D、函数只能通过print语句和return语句给出运行结果
AN:A
评析:函数定义中可以含有多个return语句,可以返回0个、1个或多个函数运算的结果。函数可以没有return,此时函数不返回值。
9、列表变量ls共包含10个元素,ls索引的取值范围是______。
A、-1到-9(含)的整数
B、0到10(含)的整数
C、1到10(含)的整数
D、0到9(含)的整数
AN:D
评析:列表的索引采用正向递增序号或反向递减序号,正向递增序号从0开始,即ls索引的取值范围是0到9(含)的整数;反向递减符号从-1开始,即ls索引的取值范围是-1到-10(含)的整数。
10、表达式"Python编程是方向"[2:-2]的结果是______。
A、"ython编程是"
B、"ython编程是方"
C、"thon编程是"
D、"thon编程是方"
AN:C
11、以下描述错误的是______。
A. 编程语言中的异常和错误是完全相同的概念
B. 当Python脚本程序发生了异常,如果不处理,运行结果不可预测
C. try-except可以在函数、循环体中使用
D. Python通过try、except等保留字提供异常处理功能
AN:A
评析:虽然在日常交流中人们可能会混用“错误”和“异常”,但在编程语言中它们是有区别的:错误(Error)通常指解释器在执行过程中遇到的严重问题,如系统错误、内存溢出等,这类情况通常是无法捕获或恢复的。异常(Exception)是指程序在执行过程中发生的、可以被捕获并处理的不正常情况,例如除以零(ZeroDivisionError)、文件未找到(FileNotFoundError)等。
12、关于Python的循环控制,以下描述错误的是______。
A、break和continue可以用于遍历循环和无限循环
B、else也可以与循环搭配使用
C、break将退出所有层次的循环
D、continue将结束当次循环
AN:C
评析:break只能退出当前层次的循环。
13、以下关于控制结构的描述,错误的是______。
A、Python的单分支结构里,包含else语句
B、Python的多分支结构,指的是既包含else语句块,也包含elif语句块
C、使用range(1,10)函数,指定语句块的循环次数是9次
D、Python的for循环结构是对遍历结构各元素进行处理
AN:A
评析:Python的单分支结构使用if保留字对条件进行判断;二分支结构使用if-else保留字对条件进行判断;多分支结构使用if-elif-else保留字对多个相关条件进行判断。
14、以下代码的输出结果是______。
fo =open("book.txt","w")
ls = ['book','23','201009','20']
fo.writelines(ls)
fo.close( )
A、[book,23,201009,20]
B、book,23,201009,20
C、book2320100920
D、['book','23','201009','20']
AN:C
评析:fo.writelines(lines)方法的含义是将一个元素为字符串的列表整体写入文件。
15、以下关于文件的描述,错误的是______。
A、以文本方式读打开一个文件,读入后能对文件进行写操作
B、以文本方式打开一个空文件,追加方式写入文件,参数用'a+'
C、以文本方式写打开一个文件,不能对文件进行读操作
D、打开文件的参数'+',表示在原打开模式基础上,可以对文件进行读写
AN:A
评析:以文本方式读打开一个文件,该文件是只读状态,不能进行写操作。
16、以下方法能返回列表数据类型的选项是______。
A、s.split( )
B、s.strip( )
C、s.replace( )
D、s.center( )
AN:A
评析:str.split(sep=None):返回一个列表,由str根据sep被分割的部分构成,省略sep默认以空格分割。str.strip(chars):从字符串str中去掉在其左侧和右侧chars中列出的字符。str.replace(old,new):返回字符串str的副本,所有old子串被替换为new。str.center(width,fillchar):字符串居中函数,fillchar参数可选。
17、time库的time.time( )函数作用是______。
A、以数字形式返回当前系统时间
B、以字符串形式返回当前系统时间
C、以struct_time形式返回当前系统时间
D、根据format格式定义返回当前系统时间
AN:A
评析:使用time.time( )获取当前时间戳,返回值为数字形式。
18、以下程序的输出结果是:
dd={'a':90,'b':87,'c':93}
print([[dd[x],x] for x in sorted(dd)])
A、[[93,'c'],[90,'a'],[87,'b']]
B、[[90,'a'],[87,'b'],[93,'c']]
C、[[87,'b'],[90,'a'],[93,'c']]
D、[[90,a],[87,b],[93,c]]
AN:B
评析:本题考查的是字典,sorted(dd)是按键item排序,所以是a,b,c。然后把键值互换一下输出,即[[90,'a'],[87,'b'],[93,'c']]。
19、以下语句的执行结果是______。
dic = {90:'Aele',87:'Bob',93:'lala'}
print(dic.pop(90,-1),len(dic))
A、Aele 3
B、-1 3
C、Aele 2
D、-1 2
AN:C
评析:pop(key[,default])方法删除字典给定键key及对应的值,返回值为被删除的值。key值必须给出,否则返回default值。题中删除键90及其对应的值,返回值为Aele,此时字典中元素为2,则长度为2。
20、以下代码的输出结果是______。
d = { }
for i in range(26):
d[chr(i+ord("a"))] = chr((i+13) % 26+ ord("a"))
for c in "Python":
print(d.get(c,c),end="")
A、Pabugl
B、Plguba
C、Cabugl
D、Python
AN:B
是非题:(10*1,共10分)
21、设a=sum([1 for xin range(100) if x%9])。下面代码是等效的。
a=0
for x in range(100):
a+=(x%9>0)
22、以下代码的作用是:输入整数a,输出[1,a]上全部整数的和。
s=0
a=int(input( ))
for i in range(1,a+1): s+=i
print(s)
23、设a=len([1 for xin range(100) if x%9])。下面代码是等效的。
a=0
for x in range(100):
if x%9:a+=1
24、执行以下程序后,s的值是1035。
k,s=1,0
while True:
s+=k;k+=1
if s>1000:break
25、以下代码执行完毕后,会输出一个由"*"构成的三角形,其中三角形每行"*"号的个数是由i in range(1,5)控制的。
for i in range(1,5):
for j in range(1,i+1):
print("*",end="")
print( )
评析:for i in range(1,5)控制的是输出多少行, for j in range(1,i+1)控制的是输出多少个星号。
26、类Student的定义如下,则studentNum为类属性。
class Student( ):
studentNum=0
def __init__(self,name,age):
self.name=name
self.age=age
评析:类中的变量如果定义在类体中、但在任何方法之外,就被称为类属性。这类属性属于类本身,而不是类的实例。对象属性定义在方法中(通常是在 __init__ 方法中)。对象属性只能通过实例访问。 studentNum为类属性,name和age为对象属性。
27、 以下程序的输出是:500
class account:
def __init__(self, id, balance):
self.id = id; self.balance = balance
def deposit(self, amount): self.balance +=amount
def withdraw(self, amount): self.balance -=amount
acc1 = account('1234', 100);acc1.deposit(500)
acc1.withdraw(200); print(acc1.balance)
28、 执行以下代码后b的值是: 377
a,b=0,1
while b<500:a,b=b,a+b
29、 执行以下代码后,如果输入的是"abcABC12,34",则ord(a)-ord(b)的值是55。
s=input( )
a=max(s)
b=min(s)
print(ord(a)-ord(b))
30、 运行以下代码时,输入"-36"时n的值是-1。
s=input( )
try:
n=int(s)
assert n>0
except:n=-1
程序改错题:(共10分)
31、程序PY121.py的功能是,随机生成100以内的6个随机数。程序运行后,
输出:今天的幸运数字为:98,90,58,50,22,18。
代码注释下方有错误,请改正后运行。
#**************found**************#
import random from seed,sample #import 和from格式错了
#**************found**************#
seek(100) #seek( )是文件对象的指针定位函数,seed( )为随机模块中的种子函数
x=sample(range(100),6)
#**************found**************#
x.sort( ) #sort排序默认是升序排列,题目要求降序排列
result = str(x).replace(" ","")[1:-1]
print(f"今天的幸运数字为:{result}")
程序填空题:(共15分)
32、在考生文件夹(D:\Exam\Python程序设计\20******\32)下存在一个Python源文件py240.py,请编写代码替换横线,不修改其他代码,实现下面功能:
逐一输入成绩,计算平均分(保留两位小数)并统计人数。当输入-1时,成绩统计结束;通过断言判断成绩是否在[0,100]范围内,捕捉异常给出“成绩必须是0-100之间的数”的信息;示例如下(其中数据仅用于示意):
输入:90
输入:80
输入:-1
输出:总人数2,平均分为85.0
# _*_ coding:gbk _*_
#**************found**************#
___________(1)___________:
s=0
c=0
n=float(input("输入成绩:"))
while True:
assert 0<=n<=100,"成绩必须是0-100之间"
s+=n
#**************found**************#
___________(2)___________ #c = c + 1 或c + = 1
n=float(input("输入成绩:"))
if n<0:
#**************found**************#
___________(3)___________
#**************found**************#
print(f"总人数___________(4)___________,平均分为{round(s/c,2)}")
#**************found**************#
except Exception ___________(5)___________e: # as
print("异常错误:",e)
编程题:(共5分)
33、程序PY052.py中函数fun(x)的功能是:保持列表x的奇数位数据不变,偶数位右移(最后一个偶数位移到第一个偶数位),处理结果作为函数返回值。请在指定位置编写程序代码,使程序能输出正确结果。程序运行结果如下:
输入列表元素(逗号分隔): 1,2,3,4,5,6
输出:[1, 6, 3, 2, 5, 4]
def fun(x):
#请在注释内输入程序代码
a = x[1::2] # 提取偶数位
a = [a[-1]] + a[:-1] # 最后一个元素放到最前面,其他偶数位右移一位
x[1::2] = a #将修改后的偶数位重新写入原列表对应位置
return x
#
# 主程序
x = input("输入列表元素(逗号分隔):")
x = list(eval(x))
print(fun(x))

