南开19秋学期(1709、1803、1809、1903、1909)《Python编程基础》在线作业
试卷总分:100 得分:100
一、单选题 (共 20 道试题,共 40 分)
1.已知“d1={'age':19}”,则执行“d1.fromkeys(['sno','name'])”后,d1中的元素个数为( )。
A.0
B.1
C.2
D.3
2.为A类中的t属性定义一个设置属性值的方法(即setter),则应使用( )装饰器。
A.@property
B.@t.setter@property.setter
C.t.property.setter
3.已知Student类有一个类属性__id,stu是Student类的对象,则利用stu访问__id属性的正确方法是( )。
A.stu.__id
B.stu._stu__id
C.stu._Student__id
D.stu._Student.__id
4.下列选项中,( )不是常量。
A.12
B.35.7
C.'Python'
D.abc
5.使用字典中的( )方法可以删除指定键的元素。
A.del
B.delete
C.pop
D.remove
6.已知“a=dict(x=1,y=dict(y1=2,y2=3))”且“b=a.copy()”,则执行“a['y']['y1']=10”后,则print(b)的输出结果为( )。
A.{x=1,y={y1=10,y2=3}}
B.{x=1,y={y1=2,y2=3}}
C.{'x':1,'y':{'y1':10,'y2':3}}
D.{'x':1,'y':{'y1':2,'y2':3}}
7.一个脚本文件M.py单独执行时,其__name__变量的值为( )。
A.M
B.__main__
C.M.py
D.不存在
8.下面程序的输出结果是( )。 def StudentInfo(country='中国',name): print('%s,%s'%(name,country)) StudentInfo('美国','大卫')
A.大卫,美国
B.美国,大卫
C.大卫,中国
D.报错
9.已知A类中__slots__定义为“__slots__=('a1','a2')”,B类没有__slots__定义,B是A的子类,则B类可以动态扩展的属性包括( )。
A.a1
B.a2
C.a1和a2
D.任意属性
10.通过列表中的( )方法可以根据指定值查找第一个匹配的列表元素的位置。
A.index
B.find
C.search
D.at
11.执行“a=10*1/0”语句时,会产生( )异常。
A.TypeError
B.ValueError
C.ZeroDivisionError
D.KeyError
12.lambda函数是指( )。
A.在一个函数内部通过调用自己完成问题的求解
B.不使用def定义函数的形式
C.一个函数不断被其他函数调用完成问题的求解
D.把函数作为参数的一种函数
13.下列选项中,用于将各种类型的数据(字符串、整数、浮点数、列表、字典等)输出到屏幕上的函数是( )。
A.eval
B.input
C.print
D.get
14.与正则表达式“^ab[a-z]?c”匹配的字符串是( )。
A.abdec
B.abc
C.ab0c
D.cabc
15.已知M模块中有一个无参函数f,则在脚本文件N.py中导入M模块后调用函数f的方式为( )。
A.f()
B.N.f()
C.M.f()
D.N.M.f()
16.已知“str='Python#C++##Python'”,则“str.rfind('Python')”返回的结果是( )。
A.0
B.12
C.-1
D.报错
17.re.findall函数匹配失败时的返回结果是( )。
A.列表
B.元组
C.迭代器
D.None
18.已知m是一个Match对象,则m.group(1)返回的结果必然是一个( )。
A.字符串
B.元组
C.列表
D.不确定
19.析构方法的形参个数为( )。
A.0
B.1
C.至少1个
D.不限
20.已知“a=dict(x=1,y=2)”且“b=a.copy()”,则执行“a['y']=10”后,则print(b)的输出结果为( )。
A.{x=1,y=10}
B.{x=1,y=2}
C.{'x':1,'y':10}
D.{'x':1,'y':2}
二、多选题 (共 10 道试题,共 20 分)
21.下列选项中,返回结果为True的选项包括( )。
A.isinstance([1,3,5],Iterator)
B.isinstance([1,3,5],Iterable)
C.isinstance((2*x+1 for x in range(3)),Iterator)
D.isinstance((2*x+1 for x in range(3)),Iterable)
22.下列选项中,描述正确的是( )。
A.一个函数的函数体中可以包含另一个函数的定义
B.一个函数的函数体中可以包含另一个函数的调用
C.一个函数的函数体中不可以包含另一个函数的定义
D.一个函数的函数体中不可以包含另一个函数的调用
23.已知s1和s2是两个集合,则返回结果必然为True的选项包括( )。
A.s1.union(s2).issubset(s1)
B.s1.union(s2).issuperset(s1)
C.s1.difference(s2).issubset(s1)
D.s1.difference(s2).issuperset(s1)
24.一个递归函数必须有( )。
A.循环语句
B.变量定义
C.结束递归调用的条件
D.函数调用
25.在列表的最后添加一个新元素,可以使用的列表方法包括( )。
A.insert
B.append
C.add
D.push
26.已知s1和s2是两个集合,则返回结果必然为True的选项包括( )。
A.s1.symmetric_difference(s2).issubset(s1)
B.s1.symmetric_difference(s2).issuperset(s1)
C.s1.intersection(s2).issubset(s1)
D.s1.intersection(s2).issubset(s2)
27.已知脚本文件M.py中有一条语句print(__name__),其输出结果可能是( )。
A.__name
B.__main__
C.M
D.M.py
28.下列选项中,描述错误的是( )。
A.对于有默认参数值的形参,在函数调用时可以不为其传实参
B.对于没有指定默认参数值的形参,如果在函数调用时没有为其传实参,则形参的值为None
C.对于有默认参数值的形参,如果在函数调用时为其指定实参,则该形参使用传入的实参值
D.如果多个形参具有默认参数值,则函数调用时这些形参或者都使用默认参数值或者都使用传入的实参值
29.下列占位运算符中,表示有符号浮点型十进制数的占位符是( )。
A.%f
B.%d
C.%F
D.%s
30.已知“d=dict(sno='1810100', name='李晓明', age=19)”,下列选项中能够删除键为age的元素的代码是( )。
A.del('age')
B.del d['age']
C.pop('age')
D.remove('age')
三、判断题 (共 20 道试题,共 40 分)
31.已知s1和s2是两个集合,则执行“s1.union(s2)”后,s1中的元素是原来s1和s2两个集合中的元素的并集。
32.对于不可变类型的对象a,可以通过“a=b”修改a的值。
33.通过“set()”可以创建一个空集合。
34.re.search(r'^py','puppy\npython',re.M)返回的是一个Match对象。
35.如果使用类的实例对象调用类方法,则类方法中的第一个参数指向该实例对象。
36.list函数返回的结果必然是一个列表。
37.通过“max(t)”可以得到元组t中最大元素的值。
38.re.split(r'','tc
')的返回结果是['t','c']。
39.已知s={1,20,25},则通过“s.add({2,3})”可以向s中添加一个新的集合类型的元素。
40.如果一个属性只有用于获取属性值的getter方法,而没有用于设置属性值的setter方法,则该属性是一个只读属性。
41.类的封装性是指将一个数据相关的属性封装在一起。
42.Python中的多态是借助鸭子类型实现的。
43.已知t=(5,10,15),则list(range(len(t)))的输出结果是[1, 2, 3]。
44.每一个流程图都必须有“开始”和“结束”,从“开始”出发,经过任何处理后必然能到达“结束”。
45.对于可变类型的对象a,通过“a=b”可以修改a的值,但赋值前和赋值后a所对应的内存地址可能会发生变化。
46.执行“print('52.50%%')”,输出结果为“52.50%”。
47.利用一个类可以创建多个对象,且每个对象可以存储不同的数据。
48.已知A类中定义了方法fa1和fa2,B类中定义了方法fb,A是B的子类,则B类中包含了3个方法。
49.模块可以放在任何一个包或子包中。
50.Python是一种弱类型的语言,变量的类型由其值的类型决定。