一、单项选择题 13. 以下代码的输出结果是______。
test={"age":"18","score":"[89,95]","name":"Hawking"}
print(test["score"],test.get("name","Rose"))
A.89,95 Hawking B.[89,95]Hawking C.[89,95]Rose D.[89,95]name
A B C D
B
[解析] “score”键对应的值是列表类型“[89,95]”,字典的get(key,default)方法:键存在则返回对应值,否则返回默认值default。“name”键存在于字典中,所以返回的是对应值而不是默认值。
15. 对于以下代码的描述正确的是______。
s="Python is good"
l="isn' it?"
length=len(s)
s_title=s.title()
s_l=s+1
s_number=s[1:6]
print(length)
A.length为12。 B.s_title为"PYTHON IS GOOD" C.s_l为"Python is good isn't it?" D.s_number为"Python"
A B C D
C
[解析] len()方法用来获取字符串的长度,所以length应为14;titk()方法是把字符串每个单词的首字母变为大写,所以应为Python Is Good;索引的序号是从0开始的,所以s[1:6]应为ython。
22. 下面代码的输出结果是______。
for i in"Go ahead bravely!":
if i=="b":
break
else:
print(i,end=" ")
A.Go ahead ravely! B.bravely! C.Go ahead bravely! D.Go ahead
A B C D
D
[解析] for循环遍历字符串,当变量i赋值为b时,break跳出本层循环,即后面的字符不再遍历,当值不为b时就将其输出,结果为Go ahead。
23. 下面代码的输出结果是______。
for i in range(3):
for i in "dream":
if j=="e":
continue
print(j,end=" ")
A.dramdramdram B.drdrdr C.dreamdreamdream D.dream
A B C D
A
[解析] continue语句只结束本次循环,不终止整个循环的执行,而break语句具备结束循环的能力。本题外层循环用来计数,内层循环用来遍历字符串,当满足判断条件时,就会结束本次循环进入下一循环,字符串遍历完成之后,外层循环进入下一循环。
25. 下面代码的输出结果是______。
a=10
b=1
try:
c=b//(b/a)
print(c)
except(IOError,ZeroDivisionError):
print("calculation error")
else:
print("no error")
A.calculation error B.no error C.9.0 D.9.0 no error
A B C D
D
[解析] 只有当程序未引发异常顺利执行完try中的代码后,else语句块内的代码才会执行。本题中try中无异常,输出变量C的值,再执行else中的代码。
36. 下面代码中描述的是哪一种传入参数的方法?______
def f(a,b):
if a>b:
print("1")
elif a==b:
pritn("2")
else:
print("3")
f(2,3)
A.可变参数 B.关键字参数 C.默认参数 D.位置参数
A B C D
D
[解析] f()函数中参数数量是固定的,所以A项错误;传入参数时并没有指定形参a或b,所以B项错误;函数并没有自带默认参数,且使用函数时传入了两个实参,C项错误。该函数的传参方式采用默认的传参方式,即位置参数传参,所以D项正确。
39. 下面代码的输出结果是______。
n=2
def f(a):
n=bool(a-2)
return n
b=f(2)
print(n,b)
A.2 0 B.0 True C.2 False D.0 False
A B C D
C
[解析] 这段代码是全局变量和局部变量以及Python内置函数bool()的一个结合。在函数内部的局部变量名和函数外部全局变量名相同时,调用函数时,总是先找到函数内部的局部变量名,所以当a为2时,经过布尔型转换之后的a-2,即b为False,而在函数外部只能访问全局变量名,所以n仍为2,C项正确。
二、基本操作题 (共15分) 1.
考生文件夹 考生文件夹下存在一个文件PY101.py,请写代码替换横线,不修改其他代码,实现以下功能:
列表中有四个元素,将其倒序输出。
试题程序:
#请在______处使用一行代码或表达式替换
#注意:请不要修改其他已给出代码
animals=['cow','duck','cat','dog']
print(______)
animals=['cow','duck','cat','dog']
animals.recerse()
print(animals)
答案考生文件夹 [解析] 列表的操作方法reverse()用于将列表中的元素反转。
2.
考生文件夹 考生文件夹下存在一个文件PY102.py,请写代码替换横线,不修改其他代码,实现以下功能:
文件给出字符串,删除字符串开头和末尾的空白,结果屏幕输出。
试题程序:
#请在______处使用一行代码或表达式替换
#注意:请不要修改其他已给出代码
word="窗前明月光,疑是地上霜。"
print(______)
word="窗前明月光,疑是地上霜。"
print(word.strip())
答案考生文件夹 [解析] str.strip(chars)方法用于从字符串str中去掉在其左侧和右侧chars中列出的字符。chars是一个字符串,其中出现的每个字符都会被去掉。
3.
考生文件夹 考生文件夹下存在一个文件PY103.py,请写代码替换横线,不修改其他代码,实现以下功能:
使用循环输出从1到50之间的奇数。
试题程序:
#请在______处使用一行代码或表达式替换
#注意:请不要修改其他已给出代码
______
while count.<50:
_____
if count%2==0:
______
print(count,end=",")
count=0
while count<50:
count+=1
if count%2==0:
continue
print(count,end=",")
答案考生文件夹 [解析] 判断一个数是否为奇数,即判断这个数能否被2整除,可以被整除则为偶数,结束本次循环,使用continue语句;不可以被整除则为奇数,输出该数。while循环不具有自动计数的功能,所以需要定义一个变量,初始值为0,每经过一次循环,变量加1;当变量超过50时,停止循环。
三、简单应用题 (共25分) 1.
考生文件夹 考生文件夹下存在一个文件PY201.py,请写代码替换横线,不修改其他代码,实现以下功能:使用turtle库的turtle.circle()函数、turtle.seth()函数和turtle.left()函数绘制—个四瓣花图形,效果如下图所示。
试题程序:
#请在______处使用一行代码或表达式替换
#注意:请不要修改其他已给出代码
import turtle
for i in range(______):
turtle.seth(______)
turtle.circle(50,90)
turtle.seth(______)
turtle.circle(50,90)
turtle.______
import turtle
for i in range(4):
turtle.seth(90*(i+1))
turtle.circle(50,90)
turtle.seth(-90+i*90)
turtle.circle(50,90)
turtle.hideturtle()
答案考生文件夹 [解析] turtle.seth()函数用来改变画笔绘制方向,该角度为绝对方向角度;turtle.circle(radius,extent=None)函数用来绘制一个弧形,radius为半径,extent不设置或设置为None时,绘制整个圆形;turtle.hideturtle()隐藏画笔箭头。
2.
考生文件夹 考生文件夹下存在一个文件PY202.py,该文件是本题目的代码提示框架,其中代码可以任意修改。请在该文件中编写代码,以实现如下功能:
使用Python的异常处理结构编写对数计算,要求底数大于0且不等于1,真数大于0,且输入的必须为实数,否则抛出对应的异常。
试题程序:
#以下代码为提示框架
#请在...处使用一行或多行代码替换
#请在______处使用一行代码替换
#注意:提示框架代码可以任意修改,以完成程序功能为准
______
try:
a=eval(input('请输入底数:'))
b=eval(input('请输入真数:'))
c=______
except ValueError:
...
except ZeroDivisionError:
print('底数不能为1')
except NameError:
print('输入必须为实数')
else:
print(c)
import math
try:
a=eval(input('请输入底数:'))
b=eval(input('请输入真数:'))
c=maht.log(b,a)
except ValueError:
if a<=0 and b>0:
print('底数不能小于等于0')
elif b<=0 and b>0:
print('真数不能小于等于0')
elif a<=0 and b<=0:
print('真数和底数都不能小于等于0')
except ZeroDivisionError:
print('底数不能为1')
except NameError:
print('输入必须为实数')
else:
print(c)
答案考生文件夹 [解析] ax =N(a>0,且a≠1),那么数x叫做以a为底N的对数,记作x=loga N,其中a叫做对数的底数,N叫做真数。要使用对数,需先导入math库,math.log(x[,base])返回x的自然对数,x>0。使用异常处理机制时,根据不同的错误类型,输出不同的信息内容,在值错误类型下,使用if判断语句将有可能错误的信息进行处理。
四、综合应用题 (共20分) 1.
考生文件夹 考生文件夹下存在一个Python源文件PY301.py,请按照文件内说明修改代码,实现以下功能:
凯撒密码是一种非常古老的加密算法,相传当年凯撒大帝行军打仗时为了保证自己的命令不被敌军知道,它采用了替换方法将信息中的每一个英文字符循环替换为字母表序列中该字符后面的第三个字符,即循环后三位,对应关系如下:
原文:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
密文:D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
原文字符P,其密文字符C满足如下条件:
C=(P+3)mod 26
解密方法反之,满足如下条件:
P=(C-3)mod 26
凯撒密码包括加密和解密两个部分。
凯撒密码的加密算法程序首先接收用户输入的文本,然后对字母a-z和字母A-Z按照密码算法进行转换,同时输出。其他非英文字母原样输出。
试题程序:
#以下代码为提示框架
#请在...处使用一行或多行代码替换
#请在______处使用一行代码替换
#注意:提示框架代码可以任意修改,以完成程序功能为准
intxt=input("请输入明文:")
...
intxt=input("请输入明文:")
for p in intxt:
if "a"<p<"z":
print(chr(ord("a")+(ord(p)-ord("a")+3)%26),end=" ")
elif"A"<p<"Z"
print(chr(ord("A")+(ord(p)-ord("A")+3)%26),end=" ")
else:
print(p,end=" ")
答案考生文件夹 [解析] 使用for循环遍历输入的每一个字符,把该字符替换为该字符后面的第三个字符,将转化后的字符进行输出;如果输入的字符不是大小写字母,则原样输出字符,该部分功能通过if多分支结构实现。