《Python编程基础》20春期末考核 -00001
试卷总分:100 得分:100
一、单选题 (共 15 道试题,共 30 分)
1.执行“print(0o20)”,则在屏幕上会输出( )。
A.20
B.0o20
C.16
D.32
答案:C
2.如果一个类C1通过继承已有类C而创建,则将C1称作( )。
A.子类
B.基类
C.父类
D.超类
答案:A
3.用于结束本次循环并开始下一次循环的命令是( )。
A.break
B.continue
C.else
D.pass
答案:B
4.对于if语句序列的两条语句,如果第一条语句前面有4个空格、第二条语句前面有1个制表符,则运行时会产生( )异常。
A.IndentationError
B.TabError
C.IndexError
D.SyntaxError
5.类方法是指使用( )修饰的方法。
A.@classmethod
B.@class
C.@staticmethod
D.@static
6.已知“a=[1,2,3]”且“b=a”,则执行“a[1]=10”后,b的值为( )。
A.[10,2,3]
B.[1,10,3]
C.[1,2,10]
D.[1,2,3]
7.通过列表中的( )方法可以根据指定值查找第一个匹配的列表元素的位置。
A.index
B.find
C.search
D.at
8.下列选项中,执行时会报错的语句是( )。
A.int('23')
B.int('23+1')
C.int('23',8)
D.int('2a',16)
9.3**4的运算结果为( )。
A.12
B.81
C.7
D.报错
10.已知“a=list('my')+list('book')”,则a的值是( )。
A.['m','y','b','o','k']
B.['m','y','b','o','o','k']
C.'mybook'
D.'mybok'
11.已知“d=dict(x=1,y=2)”,则d.get('z')返回的结果是( )。
A.None
B.default
C.null
D.报错
12.已知“str='Python#C++##Python'”,则“str.rfind('Java')”返回的结果是( )。
A.0
B.12
C.-1
D.报错
13.执行“print(0x20)”,则在屏幕上会输出( )。
A.20
B.0x20
C.16
D.32
14.下列选项中,描述正确的是( )。
A.父类会继承子类中定义的所有属性和方法,也可以在父类中增加新的属性和方法
B.父类会继承子类中定义的所有属性和方法,在父类中不允许增加新的属性和方法
C.子类会继承父类中定义的所有属性和方法,也可以在子类中增加新的属性和方法
D.子类会继承父类中定义的所有属性和方法,在子类中不允许增加新的属性和方法
15.已知“str='a**b*c*d'”,则“str.split('**',2)”的返回结果是( )。
A.['a','b','c','d']
B.['a','b','c*d']
C.['a','b*c*d']
D.报错
二、多选题 (共 10 道试题,共 20 分)
16.如果要一次完成字符串中所有满足正则表达式规则的子串的匹配,可以使用re模块的( )函数。
A.searchall
B.findall
C.finditer
D.search
17.下列选项中,计算结果为True的表达式包括( )。
A.15>=8
B.not 15<8
C.15>=8 or 15<8
D.15>=8 and 15<8
18.下列选项中,描述正确的是( )。
A.类方法可以通过类名直接调用
B.类方法可以通过类的实例对象调用
C.静态方法可以通过类名直接调用
D.静态方法可以通过类的实例对象调用
19.下列选项中,关于列表的sort方法描述正确的是( )。
A.如果列表中的各元素可直接比较大小,则可以不指定key参数
B.reverse参数决定了将列表中的元素按升序还是降序排列
C.key参数接收一个函数,通过该函数获取用于排序时比较大小的数据
D.reverse参数默认值为False,表示将列表中的元素按降序排列
20.下列选项中,描述错误的是( )。
A.对于有默认参数值的形参,在函数调用时可以不为其传实参
B.对于没有指定默认参数值的形参,如果在函数调用时没有为其传实参,则形参的值为None
C.对于有默认参数值的形参,如果在函数调用时为其指定实参,则该形参使用传入的实参值
D.如果多个形参具有默认参数值,则函数调用时这些形参或者都使用默认参数值或者都使用传入的实参值
21.已知“d=dict(sno='1810100', name='李晓明', age=19)”,下列选项中能够删除键为age的元素的代码是( )。
A.del('age')
B.del d['age']
C.pop('age')
D.remove('age')
22.下列选项中,描述正确的是( )。
A.通过import一次只能导入一个模块
B.通过import一次可以导入多个模块
C.一个模块对应了一个扩展名为.py的脚本文件,该脚本文件的名字就是模块名
D.导入一个模块A后,如果要使用A中定义的标识符s,则需要通过A.s的方式
23.下列选项中,有效的Python变量名包括( )。
A.test
B._abc
C.1_a
D._t1
24.如果希望用一个return语句结束函数但不返回任何数据,则可以写为( )。
A.return False
B.return
C.return None
D.return 0
25.已知M模块中有一个无参函数fun,且在脚本文件N.py中通过“fun()”可以直接调用M模块中的fun函数,则正确的导入方式为( )。
A.import M
B.from M import fun
C.from M import fun as f
D.from M import *
三、判断题 (共 10 道试题,共 20 分)
26.类的封装性是指将一个数据相关的属性封装在一起。
27.print(list(range(5)))的输出结果为“[0, 1, 2, 3, 4] ”。
28.通过“d.keys()”可以获取由字典d中所有键组成的一个对象。
29.len函数可获取一个列表对象中的元素数量。
30.外层函数定义了局部变量x,如果内层函数只获取x的值、不修改x的值,则可以不使用nonlocal关键字。
31.__str__方法的返回值可以是整数。
32.已知有语句“assert num==0”,则当num的值为0时会引发AssertionError异常。
33.使用三引号创建字符串时不允许使用转义符。
34.已知t=(5,10,15),则list(range(len(t)))的输出结果是[1, 2, 3]。
35.对于不可变类型的对象a,可以通过“a=b”修改a的值。
四、问答题 (共 5 道试题,共 30 分)
36.请指出下面程序中存在的错误并改正。
class Student:
pass
if __name__=='__main__':
stu=Student()
print(stu)
37.程序题,具体题目内容如下:
下面程序的输出结果是“Unknown”,请将下面程序补充完整。
class Student:
name='Unknown'
def PrintName(____(1)____):
print(self.name)
if __name__=='__main__':
stu=Student()
stu.____(2)____
38.程序题,具体题目内容如下:
请写出下面程序的输出结果。
def f1():
print(x)
def f2():
x=50
print(x)
x=10
f2()
f1()
39.程序题,具体题目内容如下:
请写出下面程序的输出结果。
s1='大家\
好!'
s2='It\'s a book!'
print(s1)
print(s2)
40.程序题,具体题目内容如下:
请写出下面程序的输出结果。
def deco(func):
def inner(*args, **kwargs):
func(*args, **kwargs)
print('deco')
return inner
@deco
def func(a,b):
print('a*b=%d'%(a*b))
if __name__=='__main__':
func(3,5)