单选题:(20*3分,共60分)
1、以下关于函数返回值的描述中,正确的是______。
A、Python函数的返回值使用很灵活,可以没有返回值,可以有一个或多个返回值
B、函数定义中最多含有一个return语句
C、在函数定义中使用return语句时,至少给一个返回值
D、函数只能通过print语句和return语句给出运行结果
AN:A
评析: 函数定义中可以含有多个return语句,可以返回0个、1个或多个函数运算的结果。函数可以没有return,此时函数不返回值。
2、以下可以替代#用来当作Python语言注释的语法元素是______。
A、字符串类型
B、print( )函数
C、input( )函数
D、eval( )函数
AN:A
评析: 当注释内容过多,导致一行无法显示时,就可以使用多行注释。Python中使用三个单引号或三个双引号表示多行注释。
3、以下关于Python语言浮点数类型的描述中,错误的是______。
A、Python语言要求所有浮点数必须带有小数部分
B、浮点数类型表示带有小数的类型
C、小数部分不可以为0
D、浮点数类型与数学中实数的概念一致
AN:C
评析: Python语言中的浮点数类型必须带有小数部分,小数部分可以是0。
4、以下关于二进制整数的定义,正确的是______。
A、0bC3F
B、0b1708
C、0B1019
D、0B1010
AN:D
评析: 二进制整数以0b引导,由字符0和1组成。
5、关于表达式id('45')的结果的描述,错误的是______。
A、是一个字符串
B、可能是4539670688
C、是一个正整数
D、是'45'的内存地址
AN:A
评析:id( )函数是Python内置函数之一,作用是获取对象的内存地址,返回对象的内存地址(是一个正整数)。
6、以下关于函数优点的描述中,错误的是______。
A、函数便于阅读
B、函数可以使程序更加模块化
C、函数可以减少代码重复
D、函数可以表现程序的复杂度
AN:D
评析: 使用函数主要有两个目的:降低编程难度和增加代码复用。表现程序的复杂度不属于函数的优点。
7、执行以下程序,根据提示输入3.2,回车后,输出结果是______。
flag = 0
try:
b= int(input('请输入字符串总长度:'))
print(type(B))
except:
flag = 1
print("请输入一个正整数:")
print(flag)
A、请输入一个正整数
1
B、<class'float'>
1
C、<class'int'>
1
D、<class'int'>
0
AN:A
评析: python中的try...except语句中,如果try语句块执行成功,就会执行try语句块,否则执行except异常语句。
b = int(input('请输入字符串总长度:')),要求输入一个整数,而题目输入的是3.2,try语句不成功,执行except中的语句。
8、使用Python的函数,需要的步骤不包括______。
A、函数定义
B、函数测试
C、函数调用
D、函数执行
AN:B
评析: 使用函数的步骤中不包括函数测试。
9、以下代码的输出结果是______。
for s in "PythonNCRE":
if s=="N":
continue
print(s,end="")
A、N
B、PythonCRE
C、Python
D、PythonNCRE
AN:B
评析: continue用来结束当前当次循环,即跳出循环体中下面尚未执行的语句,但不跳出当前循环。
由代码可知,当s=="N"条件成立时,跳出当前当次循环,不输出s的值,则最后的输出结果为PythonCRE。
10、以下代码的输出结果是______。
print('{:@>10.6}'.format('Fog'))
A、Fog@@@@
B、@@@@Fog
C、Fog@@@@@@@
D、@@@@@@@Fog
AN:D
评析:format( )方法的格式控制的语法格式如下:
{<参数序号>:<格式控制标记>}
格式控制标记包括:<填充><对齐><宽度><,><.精度><类型>等六个字段,这些字段都是可选的,可以组合使用。
填充常跟对齐一起使用,^、<、>分别是居中、左对齐、右对齐,后面带宽度,引导符号':'后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充。
所以填充字符为@,宽度为10,精度为6,也就是字符串最大输出长度为6。Fog长度为3,可以正常输出。>表示右对齐,所以输出结果为@@@@@@@Fog。
11、不是Python内置函数的选项是______。
A、divmod( )
B、type( )
C、ord( )
D、compare( )
AN:D
评析:divmod返回商和余数;type返回变量数据类型;ord返回字符的ASCII码。D选项不属于内置函数。
12、以下关于随机运算函数库的描述,错误的是______。
A、用random(a,b)产生一个[0.0,1.0)之间的随机小数
B、random.choice([1,2,3])函数返回的值有可能是3
C、Python的random库釆用梅森旋转算法生成伪随机数序列
D、random.sample(pop,k)返回从pop类型中随机选取的k个元素构成的列表
AN:A
评析:ramdom( ):生成一个[0.0,1.0)之间的随机小数。
13、以下关于"for<循环变量> in <循环结构>"的描述,错误的是______。
A、这个循环体语句中不能有break语句,会影响循环次数
B、<循环结构>采用[1,2,3]和['1','2','3']的时候,循环的次数是一样的
C、使用range(a,B)函数指定for循环的循环变量取值是从a到b-1
D、foriinrange(1,10,2)表示循环5次,i的值是从1到9的奇数
AN:A
评析:break是辅助循环控制的保留字,用来跳出最内层for或while循环,脱离该循环后程序从循环后的代码继续执行。
14、为以下程序填空,使得输出结果是{40:'yuwen',20:'yingyu',30:'shuxue'}的选项是______。
tb = {'yingyu':20, 'shuxue':30, 'yuwen':40}
stb = {}
for it in tb.items( ):
print(it)
________________
print(stb)
A、stb[it[1]]=tb[it[0]]
B、stb[it[1]]=stb[it[0]]
C、stb[it[1]]=tb[it[1]]
D、stb[it[1]]=it[0]
AN:D
评析:{}用于生成一个空字典,d.items()返回所有的键值对。在本题中,变量it中每一次循环存储一对键值对。题面要求将每一对键值对的键和值交换位置,使用语句stb[it[1]] = it[0]。
15、表达式max({2:10,8:4,5:9})的结果是______。
A、10
B、9
C、5:9
D、8
AN:D
评析:字典由键值对组成,max(D)输出的是最大的键。
16、当用户输入apple,banana,bear时,以下代码的执行结果是______。
a=input("").split(",")
x=0
while x<len(a):
print(a[x],end="&")
x=x+1
A、apple&banana&bear
B、apple&banana&bear&
C、apple,banana,bear
D、执行出错
AN:B
评析:a将输入的字符串以逗号分割为列表。x初始化为0,len为列表元素个数。while部分表示,当x小于列表元素个数时,返回索引号为x的元素,并以"&"结束打印。而列表索引是从0开始的,故而从第一个元素开始打印,每次都以"&"结尾,所以选B。
17、以下关于控制结构的描述,错误的是______。
A、break的功能是跳出当前循环控制块
B、在for结构中使用continue,会开始遍历下一个元素
C、Python的多分支结构里,可以包含多个elif语句
D、break也可用于跳出try-except控制块
AN:D
评析:异常处理中使用try-except即可抛出异常,break不能跳出异常。
18、以下语句的执行结果是______。
y1=''
y2=' '
print(y1.isspace( ),y2.isspace( ))
A、True True
B、False True
C、False False
D、True False
AN:B
评析:isspace( )方法检测字符串是否只由空格组成。如果字符串中只包含空格,则返回 True,否则返回False。y1是空字符串,不包含空格,返回False;y2只包含一个空格,返回True。
19、关于函数定义,以下形式错误的是______。
A、deffoo(a,b)
B、deffoo(a,b=10)
C、deffoo(a,*b)
D、deffoo(*a,b)
AN:D
评析:如果一个函数需要以多种形式来接收实参,定义时一般把位置参数放在最前面,然后是默认参数,接下来是一个星号的可变长度参数,最后是两个星号的可变长度参数。例:def foo(x,*args,**kwargs):
20、以下语句的执行结果是______。
dd = {'chinese':200, 'pe':187, 'Gana':930}
print(dd.keys( ))
A、200,187,930
B、'chinese':'pe':'Gana'
C、dict_keys(['chinese','pe','Gana'])
D、['chinese','pe','Gana']
AN:C
评析:字典由键值对组成,dd.keys( )返回字典中的所有键的信息,返回结果是Python的一种内部数据类型dict_keys。
是非题:(10*1分,共10分)
21、 表达式 {1, 2} * 2 的值为 {1, 2, 1, 2}。
22、 下面代码的输出结果是:666
class Myclass( ):
i=666
def f(self):
return 'pressureor passion'
x=Myclass( )
print(x.i)
评析:实例属性只能通过实例访问,不能通过类直接访问。但类属性可以被类本身访问,也可以被实例访问。
类Myclass中定义了一个类属性i。使用print(x.i)输出实例x的属性i。由于实例x没有单独定义i属性,因此访问的是类属性i,其值为 666。
23、执行以下程序后,s的值是1035。
k,s=1,0
while True:
s,k=s+k,k+1
if s>1000:break
24、 类Student的定义如下,则__locked为类的私有属性。
class Student( ):
__locked=0
def __init__(self,name,age):
self.name=name
self.age=age
评析:前缀双下划线__表示这是一个私有属性。这种命名方式表明该属性不能被外部直接访问或修改。
25、 以下代码的作用是:输入整数a,输出[1,a]上全部整数的和。
s=0
a=int(input( ))
b=a
for i in range(1,a+1): s+=b;b+=i
print(s)
26、 函数f定义如下,则y=f(f(1,3),5)的返回值是225
def f(x,y):
return x**2+y**2
27、 执行以下程序后,a的值是3。
x =93
a=3 if x>=90 else 2
if x<60:a=0
elif x<75:a=1
28、执行以下代码后,min(a)+max(a)的值是102
a=int("1010",2),ord("a"),len("abcde")
29、 以下程序的输出是:2, 3,4, 5
s=[4,2,3,5]
s.sort( )
print(str(s)[1:-1])
30、 文件a.txt的内容是:hollow。以下程序的输出是:hollow
file=open('a.txt','r')
print(file.readline( ))
file.close( )
程序改错题:(共10分)
31、程序PY111.py的功能是,创建圆的处理类Circle,计算并输出圆的周长和面积。
输入圆的半径:10
输出:圆周长= 62.831852 圆面积= 314.15926
请改正程序中的错误,使程序能输出正确结果。
# _*_ coding:gbk _*_
class Circle( ):
#**************found**************#
def __int__(self, radius):
self.radius = radius
self.perimeter = 2 * 3.1415926 * radius
def get_area(self):
return 3.1415926 * self.radius * self.radius
r = float(input("输入圆的半径:"))
#**************found**************#
cir = circle(r)
#**************found**************#
print("圆周长=",cir.get_perimeter( ))
print("圆面积=",cir.get_area( ))
程序填空题:(共15分)
32、考生文件夹(D:\Exam\Python程序设计\2023****\32)PY201.py代码含义是:从键盘输入一个正整数,输出这个数的全部真因子。请将代码补充完整。
#**************found**************#
n= ____(1)____ (input( ))
b=[ ]
for i in range(1,n):
#**************found**************#
if____(2)____==0:
#**************found**************#
b.____(3)____
for x in b:
print(x,end=" ")
编程题:(共5分)
33、程序PY059.py中函数fun(m,n)的功能是:统计区间【m,n】内除3余2,且个位数字为"6"的整数个数。请在指定位置编写程序代码,使程序能输出正确结果。程序运行结果如下:
输入m,n的值(逗号分隔):1,1000
输出: 33
def fun(m,n):
#请在注释内输入程序代码
c=0
for i in range(m,n+1):
if i%3==2 and i%10==6:
c+=1
return c
#
# 主程序
m,n = eval(input("输入m,n的值(逗号分隔):"))
print(f"{fun(m,n)}")

