20春学期(1709、1803、1809、1903、1909、2003)《Python编程基础》在线作业
试卷总分:100 得分:100
一、单选题 (共 20 道试题,共 40 分)
1.已知“str=’a\rb\r\nc\n’”,则“str.splitlines()”的返回结果是( )。
A.[‘a\r’,’b\r\n’,’c\n’]
B.[‘a\r’,’b\r’,’c’]
C.[‘a\r’,’b’,’c’]
D.[‘a’,’b’,’c’]
2.已知“a=dict(x=1,y=2)”且“b=a”,则执行“a[‘y’]=10”后,则print(b)的输出结果为( )。
A.{x=1,y=2}
B.{x=1,y=10}
C.{‘x’:1,’y’:2}
D.{‘x’:1,’y’:10}
3.从一个序列对象中取部分元素形成一个新的序列对象的操作被称作( )。
A.选择
B.投影
C.子序列
D.切片
4.已知“str=’Python#C++##Python’”,则“str.rfind(‘Python’)”返回的结果是( )。
A.报错
B.12
C.-1
D.0
5.类方法的第一个形参对应( )。
A.类
B.第二个实参
C.第一个实参
D.对象
6.只有try子句的语句序列执行时未发生异常才会执行的子句是( )。
A.不存在
B.finally
C.except
D.else
7.全局变量的作用域是( )。
A.所有文件
B.所有函数
C.从定义变量的位置到文件结束位置
D.从定义变量的位置到函数结束位置
8.已知“a=dict(x=1,y=dict(y1=2,y2=3))”且“b=a.copy()”,则执行“a[‘y’][‘y1’]=10”后,则print(b)的输出结果为( )。
A.{x=1,y={y1=2,y2=3}}
B.{x=1,y={y1=10,y2=3}}
C.{‘x’:1,’y’:{‘y1′:2,’y2’:3}}
D.{‘x’:1,’y’:{‘y1′:10,’y2’:3}}
9.与正则表达式“^ab[a-z]*c”匹配的字符串是( )。
A.cabc
B.abdec
C.abc
D.ab0c
10.与正则表达式“ab(de|ef)?c”不匹配的字符串是( )。
A.abefc
B.abdeefc
C.abdec
D.abc
11.“try except”语句中使用“except:”表示( )。
A.错误的写法
B.等价于“except None:”
C.捕获未被前面except子句捕获的异常
D.捕获所有异常
12.无论try子句执行时是否发生异常,都会执行的子句是( )。
A.不存在
B.finally
C.except
D.else
13.对于if语句序列的两条语句,如果第一条语句前面有4个空格、第二条语句前面有1个制表符,则运行时会产生( )异常。
A.TabError
B.SyntaxError
C.IndexError
D.IndentationError
14.如果一个类C1通过继承已有类C而创建,则将C1称作( )。
A.超类
B.父类
C.子类
D.基类
15.下面程序的输出结果是( )。 score=80 if score<60: print(‘不及格’) else: pass
A.无输出
B.报错
C.不及格
D.pass
16.在闭包中,外层函数的返回值是( )。
A.无返回值
B.内层函数的调用
C.内层函数的引用
D.任意值
17.open函数的默认文件打开方式是( )。
A.w+
B.w
C.r+
D.r
18.在完成一项较复杂的任务时,我们通常会将任务分解成若干个子任务,通过完成这些子任务逐步实现任务的整体目标,采用这种思想的程序设计方法称为( )程序设计方法。
A.面向类
B.面向对象
C.结构化
D.分解化
19.第一个参数对应类的实例对象的方法是( )。
A.静态方法
B.类方法
C.普通方法
D.内置方法
20.判断一个类是否是另一个类的子类,应使用内置函数( )。
A.type
B.issubclass
C.isinstance
D.isclass
二、多选题 (共 10 道试题,共 20 分)
21.下列选项中,描述正确的是( )。
A.通过“isinstance(x,Iterator)”可以判断x是否是迭代器
B.所有迭代器都是可迭代对象
C.所有可迭代对象都是迭代器
D.如果一个可迭代对象可以通过next函数不断获取下一个元素的值,则它是一个迭代器
22.下列选项中,描述错误的是( )。
A.对于没有指定默认参数值的形参,如果在函数调用时没有为其传实参,则形参的值为None
B.对于有默认参数值的形参,如果在函数调用时为其指定实参,则该形参使用传入的实参值
C.对于有默认参数值的形参,在函数调用时可以不为其传实参
D.如果多个形参具有默认参数值,则函数调用时这些形参或者都使用默认参数值或者都使用传入的实参值
23.已知脚本文件M.py中有一条语句print(__name__),其输出结果可能是( )。
A.__name
B.__main__
C.M.py
D.M
24.下列选项中,可变类型包括( )。
A.字符串
B.字典
C.列表
D.元组
25.下列选项中,属于局部变量的是( )。
A.函数的形参
B.函数外定义的变量
C.函数名
D.函数中定义的变量
26.字符串检索时,检索失败时不会引发异常的方法包括( )。
A.rindex
B.rfind
C.index
D.find
27.下列选项中,*作为重复运算符使用的表达式是( )。
A.[1.2]*3
B.1.2*3
C.(1.2,2.5)*3
D.’abc’*3
28.已知在A类中定义了方法fa,在B类中定义了属性b,在C类中定义了方法fc和属性c,A是B的父类,B是C的父类,则B类中的成员包括( )。
A.fc
B.fa
C.c
D.b
29.下列选项中,可迭代的数据类型包括( )。
A.数字
B.字符串
C.列表
D.元组
30.已知B是A的父类,a是A类的对象,b是B类的对象,则下列选项中返回结果为True的是( )。
A.type(a)==A
B.issubclass(type(a),type(b))
C.issubclass(A,B)
D.isinstance(a,A)
三、判断题 (共 20 道试题,共 40 分)
31.已知“str=’Like’”,则执行“str.upper()”后,str保存的数据为字符串’LIKE’。
32.在for循环和while循环后面可以跟着else分支,退出循环后必然会执行else后面的语句序列。
33.Python中的变量在使用前必须先定义。
34.猴子补丁是指在运行时动态替换已有的代码,而不需要修改原始代码。
35.构造方法可以没有形参。
36.使用下标“[]”可以访问集合中的元素。
37.使用re.match函数进行正则表达式匹配时,如果指定的匹配选项中包括re.MULTILINE,则会对每一行开头的若干字符作匹配。
38.对于计算1+2+…+n的这个问题,可以设计递归函数完成求解。
39.使用三引号创建字符串时允许直接将字符串写成多行的形式。
40.已知d1和d2是两个字典对象,则直接执行“dMerge=dict(d1,**d2)”与先执行“dMerge=d1.copy()”、再执行“dMerge.update(d2)”的效果完全相同。
41.re.match(r’py$’,’puppy’)返回的是一个Match对象。
42.已知类的普通方法func有3个形参且都没有默认参数值,则调用该方法时必须传入对应的3个实参。
43.外层函数中定义的局部变量被内层函数使用,则每调用一次外层函数则会形成一个闭包。
44.通过“max(t)”可以得到元组t中最大元素的值。
45.已知s={1,20,25},则通过“s.add([2,3])”可以向s中添加一个新的列表类型的元素。
46.正则表达式“^ab[\s\S]*c$”可以与任一以“ab”开头、以“c”结尾的字符串匹配。
47.已知“str=’abcdefabc’”,则执行“str.replace(‘abc’,’cba’)”后,str中保存的字符串为’cbadefcba’。
48.列表的sort方法的key参数接收的函数必须有返回值。
49.已知“ls=[0,1,2,3,4,5,6,7,8,9]”,则“del ls[7:9]”与“ls[7:9]=[]”得到的ls中的元素相同。
50.对于可变类型的对象a,通过“a=b”可以修改a的值,但赋值前和赋值后a所对应的内存地址可能会发生变化。