内容正文:
《Python语言程序设计基础》(电子科技大学出版社)
第8章 面向对象编程
考试时间:90分钟 满分:100分
姓名 班级 学号
1、 单项选择题(本题共20小题,每题3分,共60分)
1.对象的特征用数据表示,称为( )
A. 方法
B. 消息
C. 属性
D. 实例
2.子类从父类获得所有属性和方法,并可改造这些属性和方法,这一特性称为( )
A. 封装
B. 多态
C. 继承
D. 消息传递
3.一个对象要求另一个对象实施某项操作的请求称为( )
A. 方法
B. 属性
C. 消息
D. 继承
4.创建类的实例对象的基本格式是( )
A. 对象名 = 类名
B. 对象名 = 类名()
C. 对象名 = class(类名)
D. 对象名 = new 类名()
5.以下代码中,定义类正确的是( )
A. class Student: name="Tom"; def sayHi(self): print("Hi")
B. class Student name="Tom": def sayHi(self): print("Hi")
C. class Student(): name="Tom"; def sayHi(): print("Hi")
D. class Student: name="Tom"; def sayHi(self) print("Hi")
6、以下关于类的描述,正确的是( )
A. 类中只能定义属性,不能定义方法
B. 类中只能定义方法,不能定义属性
C. 类中可同时定义属性和方法
D. 类的属性必须在创建对象后才能定义
7、实例属性的定义位置通常是( )
A. 类体直接定义
B. __init__构造方法中
C. 任意实例方法中
D. 类外定义
8、Python中类的构造方法名称是( )
A. init
B. construct
C. init
D. constructor
9、实例方法在类外只能通过什么方式调用( )
A. 类名调用
B. 实例对象调用
C. 直接调用
D. 模块名调用
10、子类继承父类后,不能实现的操作是( )
A. 继承父类的属性和方法
B. 添加新的属性和方法
C. 重写父类的方法
D. 直接删除父类的属性
11、多态的含义是( )
A. 不同类的对象使用相同操作,产生不同行为
B. 子类继承父类的所有属性和方法
C. 隐藏对象的内部实现细节
D. 一个类创建多个不同实例
12、实现继承关系中多态的关键步骤不包括( )
A. 子类继承父类
B. 子类重写父类的同名方法
C. 父类定义统一接口方法
D. 子类定义与父类不同名的方法
13、Python中实现属性或方法“私有化”的方式是( )
A. 前缀加一个下划线_
B. 前缀加两个下划线__
C. 后缀加一个下划线_
D. 后缀加两个下划线__
14、封装的第二个层面是( )
A. 仅通过特定方式访问类成员
B. 隐藏属性和方法,仅类内使用或通过接口访问
C. 创建类的名称空间
D. 简化类的定义
15、单例模式中,类属性_instance的作用是( )
A. 存储类的名称
B. 记录实例的创建次数
C. 判断是否已创建实例,确保唯一
D. 初始化实例属性
16、面向对象程序设计的思想是将数据与对数据的操作封装在一起,组成不可分割的整体,这个整体称为( )
A. 类
B. 对象
C. 方法
D. 属性
17、不同对象收到相同消息时产生不同行为方式,这一特性称为( )
A. 多态
B. 封装
C. 继承
D. 封装
18、静态方法的标识修饰器是( )
A. @staticmethod
B. @static
C. @classmethod
D. @instancemethod
19、Python中类的析构方法名称是( )
A. del
B. destroy
C. del
D. destroy
20、以下代码中,子类定义正确的是( )
A. class Animal: pass; class Dog(Animal): pass
B. class Animal: pass; class Dog=Animal: pass
C. class Animal: pass; class Dog Animal: pass
D. class Dog(Animal): pass; class Animal: pass
2、 判断题(本题共10小题,每题2分,共20分)
1、Python中只有自定义的类才能称为对象,内置数据类型不属于对象。( )
2、封装机制允许外界直接访问对象的属性,以提高操作效率。( )
3、访问对象的属性时,格式为“对象名 -> 属性名”。( )
4、调用对象的方法时,必须传递与方法参数数量一致的实参,不含self。( )
5、类方法可以直接访问实例属性和实例方法。( )
6、类属性可以通过类名直接修改,修改后所有实例访问该属性时均为新值。( )
7、Python中,子类定义时需在类名后括号内指定父类,无父类时括号可省略。( )
8、super()函数的作用是调用父类的构造方法或其他方法。( )
9、len()函数既能计算字符串长度,又能计算列表元素个数,这是多态的体现。( )
10、实现多态必须依赖继承,无继承关系则无法实现多态。( )
3、 填空题(本题共10小题,每题2分,共20分)
1、面向对象程序设计的三大特性是封装、继承和_______。
2、对象是类的______。
3、_______是将对象的数据和操作数据的过程结合成独立单元,隐藏内部信息,保证数据安全性。
4、继承关系中,被继承的类称为_______。
5、Python中定义类的关键字是_______。
6、访问对象的属性的格式是________。
7、类中定义的方法,第一个参数必须是______。
8、构造方法的名称是________。
9、静态方法的修饰器是_______。
10、继承中,新创建的类称为_______或派生类。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
《Python语言程序设计基础》(电子科技大学出版社)
第8章 面向对象编程
考试时间:90分钟 满分:100分
姓名 班级 学号
1、 单项选择题(本题共20小题,每题3分,共60分)
1.对象的特征用数据表示,称为( )
A. 方法
B. 消息
C. 属性
D. 实例
【答案】C
【解析】对象的特征用数据来表示,称为属性,因此选C。
2.子类从父类获得所有属性和方法,并可改造这些属性和方法,这一特性称为( )
A. 封装
B. 多态
C. 继承
D. 消息传递
【答案】C
【解析】继承是子类从父类那里获得所有的属性和方法,并且可以对这些获得的属性和方法加以改造,因此选C。
3.一个对象要求另一个对象实施某项操作的请求称为( )
A. 方法
B. 属性
C. 消息
D. 继承
【答案】C
【解析】消息是一个对象要求另一个对象实施某项操作的请求,因此选C。
4.创建类的实例对象的基本格式是( )
A. 对象名 = 类名
B. 对象名 = 类名()
C. 对象名 = class(类名)
D. 对象名 = new 类名()
【答案】B
【解析】用赋值的方式创建类的实例,一般格式为:对象名 = 类名(参数列表),无参数时需保留空括号,因此选B。
5.以下代码中,定义类正确的是( )
A. class Student: name="Tom"; def sayHi(self): print("Hi")
B. class Student name="Tom": def sayHi(self): print("Hi")
C. class Student(): name="Tom"; def sayHi(): print("Hi")
D. class Student: name="Tom"; def sayHi(self) print("Hi")
【答案】A
【解析】B缺少冒号,C方法缺少self参数,D方法缺少冒号,均不符合语法;A满足class关键字、属性定义、方法定义,因此选A。
6、以下关于类的描述,正确的是( )
A. 类中只能定义属性,不能定义方法
B. 类中只能定义方法,不能定义属性
C. 类中可同时定义属性和方法
D. 类的属性必须在创建对象后才能定义
【答案】C
【解析】类的组成包括成员变量(属性)和成员函数(方法),因此选C。
7、实例属性的定义位置通常是( )
A. 类体直接定义
B. __init__构造方法中
C. 任意实例方法中
D. 类外定义
【答案】B
【解析】实例属性应在__init__构造函数中定义,定义时以“self.”作为前缀,因此选B。
8、Python中类的构造方法名称是( )
A. init
B. construct
C. init
D. constructor
【答案】A
【解析】构造方法__init__(self,.....)在生成对象时调用,用于属性初始化,因此选A。
9、实例方法在类外只能通过什么方式调用( )
A. 类名调用
B. 实例对象调用
C. 直接调用
D. 模块名调用
【答案】B
【解析】在类外,实例方法只能通过实例对象去调用,因此选B。
10、子类继承父类后,不能实现的操作是( )
A. 继承父类的属性和方法
B. 添加新的属性和方法
C. 重写父类的方法
D. 直接删除父类的属性
【答案】D
【解析】子类可继承、添加、重写父类成员,但不能直接删除父类的属性,因此选D。
11、多态的含义是( )
A. 不同类的对象使用相同操作,产生不同行为
B. 子类继承父类的所有属性和方法
C. 隐藏对象的内部实现细节
D. 一个类创建多个不同实例
【答案】A
【解析】多态性指的是向不同对象发送同一条消息,不同对象在接收时会产生不同的行为,因此选A。
12、实现继承关系中多态的关键步骤不包括( )
A. 子类继承父类
B. 子类重写父类的同名方法
C. 父类定义统一接口方法
D. 子类定义与父类不同名的方法
【答案】D
【解析】多态需子类重写父类同名方法,不同名方法无法体现多态,因此选D。
13、Python中实现属性或方法“私有化”的方式是( )
A. 前缀加一个下划线_
B. 前缀加两个下划线__
C. 后缀加一个下划线_
D. 后缀加两个下划线__
【答案】B
【解析】Python通过在变量名前加双下划线来实现“私有化”,定义私有方法同理,因此选B。
14、封装的第二个层面是( )
A. 仅通过特定方式访问类成员
B. 隐藏属性和方法,仅类内使用或通过接口访问
C. 创建类的名称空间
D. 简化类的定义
【答案】B
【解析】第二个层面的封装:类中把某些属性和方法隐藏起来(定义成私有的),只在类的内部使用,外部无法访问或留下少量接口供访问,因此选B。
15、单例模式中,类属性_instance的作用是( )
A. 存储类的名称
B. 记录实例的创建次数
C. 判断是否已创建实例,确保唯一
D. 初始化实例属性
【答案】C
【解析】_instance初始为None,首次创建实例后存储该实例,后续创建时直接返回,作用是确保实例唯一,因此选C。
16、面向对象程序设计的思想是将数据与对数据的操作封装在一起,组成不可分割的整体,这个整体称为( )
A. 类
B. 对象
C. 方法
D. 属性
【答案】B
【解析】面向对象程序设计的一个关键性观念是将数据以及对数据的操作封装在一起,组成一个相互依存、不可分割的整体,即对象,因此选B。
17、不同对象收到相同消息时产生不同行为方式,这一特性称为( )
A. 多态
B. 封装
C. 继承
D. 封装
【答案】A
【解析】多态是指同一名字的方法产生了多个不同的动作行为,即不同的对象收到相同的消息时产生不同的行为方式,因此选A。
18、静态方法的标识修饰器是( )
A. @staticmethod
B. @static
C. @classmethod
D. @instancemethod
【答案】A
【解析】静态方法需要通过修饰器@staticmethod来进行修饰,因此选A。
19、Python中类的析构方法名称是( )
A. del
B. destroy
C. del
D. destroy
【答案】A
【解析】析构方法__del__(self)在释放对象时调用,因此选A。
20、以下代码中,子类定义正确的是( )
A. class Animal: pass; class Dog(Animal): pass
B. class Animal: pass; class Dog=Animal: pass
C. class Animal: pass; class Dog Animal: pass
D. class Dog(Animal): pass; class Animal: pass
【答案】A
【解析】B缺少括号,C缺少冒号,D父类定义在子类之后(需先定义父类),均错误;A符合继承语法,因此选A。
2、 判断题(本题共10小题,每题2分,共20分)
1、Python中只有自定义的类才能称为对象,内置数据类型不属于对象。( )
【答案】错误。Python中的一切内容都可以称为对象,内置数据类型都具有和类完全相似的语法和用法,故错误。
2、封装机制允许外界直接访问对象的属性,以提高操作效率。( )
【答案】错误。封装不允许外界直接存取对象的属性,只能通过外部接口操作,故错误。
3、访问对象的属性时,格式为“对象名 -> 属性名”。( )
【答案】错误。访问属性的格式是“对象名.属性名”,“->”并非Python的访问运算符,故错误。
4、调用对象的方法时,必须传递与方法参数数量一致的实参,不含self。( )
【答案】正确。self是隐式参数,无需手动传递,其他参数需按定义传递,故正确。
5、类方法可以直接访问实例属性和实例方法。( )
【答案】错误。类方法不对特定实例进行操作,访问实例属性会导致错误,故错误。
6、类属性可以通过类名直接修改,修改后所有实例访问该属性时均为新值。( )
【答案】正确。通过类方法修改类属性后,实例和类访问的结果均更新,故正确。
7、Python中,子类定义时需在类名后括号内指定父类,无父类时括号可省略。( )
【答案】正确。继承语法显示父类在括号内指定,无父类时可省略括号,默认继承object,故正确。
8、super()函数的作用是调用父类的构造方法或其他方法。( )
【答案】正确。super()调用父类构造方法,super()也可调用父类的其他方法,故正确。
9、len()函数既能计算字符串长度,又能计算列表元素个数,这是多态的体现。( )
【答案】正确。len()函数既能计算字符串长度,又能计算列表元素个数,是多态的典型应用,故正确。
10、实现多态必须依赖继承,无继承关系则无法实现多态。( )
【答案】错误。多态不是必须依赖继承,无继承关系可以实现多态,故错误。
3、 填空题(本题共10小题,每题2分,共20分)
1、面向对象程序设计的三大特性是封装、继承和_______。
【答案】多态
2、对象是类的______。
【答案】实例
3、_______是将对象的数据和操作数据的过程结合成独立单元,隐藏内部信息,保证数据安全性。
【答案】封装
4、继承关系中,被继承的类称为_______。
【答案】父类
5、Python中定义类的关键字是_______。
【答案】class
6、访问对象的属性的格式是________。
【答案】对象名.属性名
7、类中定义的方法,第一个参数必须是______。
【答案】self
8、构造方法的名称是________。
【答案】init
9、静态方法的修饰器是_______。
【答案】@staticmethod
10、继承中,新创建的类称为_______或派生类。
【答案】子类
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$