内容正文:
编写说明:2027版安徽省普通高校对口招生考试电子与信息大类(计算机类)专业《考纲百套卷》,依据《安徽省普通高校对口招生专业理论和技能测试考试纲要(2025年版)》编写。本专辑涵盖三个部分,第一部分为知识训练卷,第二部分为专题训练卷,第三部分为课程综合卷。本专辑共99份试卷,其中知识训练卷75份、专题训练卷17份、课程综合卷7份。
本试卷是第72卷,为知识训练卷,按《计算机编程基础—Python语言》中“面向对象程序设计”范围和要求编写。具体内容为:1.事件与事件响应(仅限于鼠标事件和键盘事件)(C)。2.控件布局(C)。3.简单 GUI 界面程序设计(仅限于考前复习所列的 Tkinter 控件)(D)。
安徽省对口招生考试
电子与信息大类(计算机类)《考纲百套卷》
第72卷 计算机编程基础—Python语言——面向对象程序设计
(考试时间:45分钟 满分:100分)
一、填空题(共10题,每题2分,共20分)
1.子类重写父类方法时,通过__________函数调用父类中的同名方法。
2.Python中所有类的最终基类是__________。
3.使用__________装饰器可以将方法转换为类方法,第一个参数为cls。
4.通过__________装饰器可以将方法像属性一样访问,无需加括号。
5.多重继承中方法查找顺序称为__________。
6.__________方法在删除对象时自动调用,用于资源清理。
7.使用__________装饰器定义的方法不需要self或cls参数。
8.运算符重载通过定义__________方法实现,如__________add__________重载+。
9.类方法中的第一个参数约定命名为__________而非self。
10.__________方法返回对象的"官方"字符串表示,常用于调试。
二、单项选择题(共15题,每题2分,共30分)
11.super().__init__()的作用是( )
A.调用自身构造
B.调用父类构造
C.创建新对象
D.报错
12.class D(B,C):pass中D的父类数量( )
A.1
B.2
C.报错
D.0
13.@classmethod装饰的方法第一个参数是( )
A.self
B.cls
C.无参数
D.任意名
14.@property装饰后( )
A.方法变属性
B.属性变方法
C.方法变私有
D.报错
15.class A: def __add__(self,o):return 0;a=A();a+1返回值( )
A.1
B.0
C.报错
D.A对象
16.__del__在_______时调用( )
A.对象创建
B.对象删除/回收
C.程序退出
D.类定义
17.@staticmethod和普通函数区别( )
A.无区别
B.属于类命名空间
C.不能调用
D.速度更快
18.class A: x=1; a=A(); a.x=2; del a.x; print(a.x)输出( )
A.1
B.2
C.报错
D.None
19.__str__与__repr__主要区别( )
A.无区别
B.str用户友好repr调试
C.str调试repr友好
D.str用于整数
20.class Dog: def __init__(self,name):self._name=name;@property
def name(self):return self._name( )
A.报错
B.语法错误
C.只读属性
D.可读写属性
21.多态的含义是( )
A.多个类
B.同一接口不同实现
C.多重继承
D.多个实例
22.class A:pass;a=A();print(a.__class__.__name__)( )
A.A
B.a
C.class
D.object
23.__eq__方法重载的运算符是( )
A.+
B.-
C.*
D.==
24.class M: @staticmethod def f():return 1;M.f()输出( )
A.1
B.报错
C.None
D.M对象
25.class A:pass;class B(A):pass;b=B();isinstance(b,A)返回( )
A.True
B.False
C.None
D.报错
三、程序分析题(共3题,每题6分,共18分)
26.class Animal:
def speak(self):
print("动物叫")
class Dog(______):
def speak(self):
______.speak()
print("汪汪")
d=Dog()
d.speak()
27.class Student(object):
@property
def score():
return self._score
@score.setter
def score(value):
self._score=value
28.class A:
def show(self):return "A"
class B(A):
def show(self):return super().show()+"B"
class C(B):
def show(self):return super().show()+"C"
c=C()
print(c.show())
print(isinstance(c,A))
print(isinstance(c,(A,B)))
四、程序设计题(3题,29/30各6分/31各8分)
29.定义类Vector2D含属性x和y,重载__add__实现向量加法,重载__str__返回格式"(x,y)"。样例:v1=Vector2D(1,2) v2=Vector2D(3,4) print(v1+v2)→(4,6)
30.定义类Student含私有属性__name,用@property提供只读name,用@name.setter限制name非空。输入姓名创建对象并输出。
31.定义类Shape含area方法(返回0),子类Rectangle和Circle重写area,用多态统一计算面积。输入类型和参数,输出面积。样例:rect 5 3→15,circle 5→78.5
五、综合应用题(共1题,每题12分,共12分)
32.设计图书管理系统:基类Book(属性title/author,方法info),子类EBook(增加file_size和download方法),子类PBook(增加pages和borrow方法)。演示多态info输出。样例:Python编程/张三/EBook/5→Python编程 by 张三 [电子书 5MB]
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
编写说明:2027版安徽省普通高校对口招生考试电子与信息大类(计算机类)专业《考纲百套卷》,依据《安徽省普通高校对口招生专业理论和技能测试考试纲要(2025年版)》编写。本专辑涵盖三个部分,第一部分为知识训练卷,第二部分为专题训练卷,第三部分为课程综合卷。本专辑共99份试卷,其中知识训练卷75份、专题训练卷17份、课程综合卷9份。
本试卷是第72卷,为知识训练卷,按《计算机编程基础—Python语言》中“面向对象程序设计”范围和要求编写。具体内容为:1.事件与事件响应(仅限于鼠标事件和键盘事件)(C)。2.控件布局(C)。3.简单 GUI 界面程序设计(仅限于考前复习所列的 Tkinter 控件)(D)。
安徽省对口招生考试
电子与信息大类(计算机类)《考纲百套卷》
第72卷 计算机编程基础—Python语言——面向对象程序设计
(考试时间:45分钟 满分:100分)
一、填空题(共10题,每题2分,共20分)
1.子类重写父类方法时,通过__________函数调用父类中的同名方法。
【答案】super()
【解析】super()返回父类临时对象用于调用父类方法。在多重继承中按MRO顺序查找方法,比直接写父类名更安全灵活。
2.Python中所有类的最终基类是__________。
【答案】object
【解析】object是所有类的最终基类。Python3中即使不显式写出,所有类都默认继承自object,获得基本方法如__________str__________。
3.使用__________装饰器可以将方法转换为类方法,第一个参数为cls。
【答案】@classmethod
【解析】@classmethod装饰器将方法转为类方法,第一个参数为cls指代类本身而非实例。可通过类名或实例调用,常用于工厂方法。
4.通过__________装饰器可以将方法像属性一样访问,无需加括号。
【答案】@property
【解析】@property将方法转为只读属性,访问时无需括号如obj.name。@name.setter定义赋值逻辑,实现属性访问控制与验证。
5.多重继承中方法查找顺序称为__________。
【答案】MRO
【解析】多重继承采用 C3 线性化算法生成 MRO(方法解析顺序),决定父类方法的查找优先级,可通过类名.__mro__查看顺序。
6.__________方法在删除对象时自动调用,用于资源清理。
【答案】__del__
【解析】__del__是析构魔法方法,对象被垃圾回收销毁时自动执行,一般用于关闭文件、释放连接等收尾资源清理工作。
7.使用__________装饰器定义的方法不需要self或cls参数。
【答案】@staticmethod
【解析】静态方法由@staticmethod装饰器声明,不需要传入 self(实例参数)或 cls(类参数),依靠类名或者实例均可直接调用。
8.运算符重载通过定义__________方法实现,如__________add__________重载+。
【答案】特殊/魔法
【解析】Python 依靠魔法(特殊)方法实现运算符重载,例如__add__对应加号+、__eq__对应等于==、__len__适配 len () 函数。
9.类方法中的第一个参数约定命名为__________而非self。
【答案】cls
【解析】类方法使用@classmethod装饰,首个固定参数约定为 cls,代表当前类本身,用来操作类属性、调用类方法。
10.__________方法返回对象的"官方"字符串表示,常用于调试。
【答案】repr
【解析】__repr__用于生成对象官方调试字符串,偏向开发者调试使用;__str__是面向普通用户的简洁展示字符串。
二、单项选择题(共15题,每题2分,共30分)
11.super().__init__()的作用是( )
A.调用自身构造
B.调用父类构造
C.创建新对象
D.报错
【答案】B
【解析】super()返回父类代理,__init__调用父类构造方法。子类重写__init__时常用super保留父类初始化。
12.class D(B,C):pass中D的父类数量( )
A.1
B.2
C.报错
D.0
【答案】B
【解析】Python支持多重继承,多个父类逗号分隔。MRO决定方法查找顺序,建议谨慎使用避免菱形继承问题。
13.@classmethod装饰的方法第一个参数是( )
A.self
B.cls
C.无参数
D.任意名
【答案】B
【解析】cls代表类本身。可通过类名.method()或实例.method()调用。工厂方法和替代构造器常用。
14.@property装饰后( )
A.方法变属性
B.属性变方法
C.方法变私有
D.报错
【答案】A
【解析】@property让方法可像属性obj.name这样访问(不加括号)。配合@xxx.setter实现读写控制。
15.class A: def __add__(self,o):return 0;a=A();a+1返回值( )
A.1
B.0
C.报错
D.A对象
【答案】B
【解析】a+1调用__add__(self,1)返回0。运算符重载让自定义对象支持运算符操作。
16.__del__在_______时调用( )
A.对象创建
B.对象删除/回收
C.程序退出
D.类定义
【答案】B
【解析】__del__析构方法在对象被垃圾回收时调用。del obj减少引用计数,此时不一定立即调用__del__。
17.@staticmethod和普通函数区别( )
A.无区别
B.属于类命名空间
C.不能调用
D.速度更快
【答案】B
【解析】staticmethod在类命名空间内但与实例无关。可通过类名或实例调用。常作类的工具函数组织方式。
18.class A: x=1; a=A(); a.x=2; del a.x; print(a.x)输出( )
A.1
B.2
C.报错
D.None
【答案】A
【解析】a.x=2创建实例属性。del删除后访问回退到类属性A.x=1。实例属性覆盖类属性,删除后类属性可见。
19.__str__与__repr__主要区别( )
A.无区别
B.str用户友好repr调试
C.str调试repr友好
D.str用于整数
【答案】B
【解析】__str__面向用户print显示,__repr__面向开发者调试。若未定义__str__则fallback到__repr__。
20.class Dog: def __init__(self,name):self._name=name;@property
def name(self):return self._name( )
A.报错
B.语法错误
C.只读属性
D.可读写属性
【答案】C
【解析】@property将name方法变为属性(只读)。无@name.setter则无法赋值。_name为约定保护属性。
21.多态的含义是( )
A.多个类
B.同一接口不同实现
C.多重继承
D.多个实例
【答案】B
【解析】多态:不同类定义同名方法,调用者无需知道具体类型。如animal.speak()在Dog和Cat中表现不同。
22.class A:pass;a=A();print(a.__class__.__name__)( )
A.A
B.a
C.class
D.object
【答案】A
【解析】a.__class__返回类A,.__name__获取类名。type(a).__name__等价。运行时获取对象类型名。
23.__eq__方法重载的运算符是( )
A.+
B.-
C.*
D.==
【答案】D
【解析】__eq__重载==。__ne__重载!=,__lt__重载<,__gt__重载>。未定义时默认比较对象身份(地址)。
24.class M: @staticmethod def f():return 1;M.f()输出( )
A.1
B.报错
C.None
D.M对象
【答案】A
【解析】静态方法通过类名直接调用M.f()。无需创建实例。普通方法需m=M();m.method()。
25.class A:pass;class B(A):pass;b=B();isinstance(b,A)返回( )
A.True
B.False
C.None
D.报错
【答案】A
【解析】isinstance检查继承关系,子类实例也是父类的实例。type(b)==A为False(精确类型检查)。
三、程序分析题(共3题,每题6分,共18分)
26.class Animal:
def speak(self):
print("动物叫")
class Dog(______):
def speak(self):
______.speak()
print("汪汪")
d=Dog()
d.speak()
【答案】(1)Animal(3分);(2)super()(3分)。
【解析】Dog继承Animal。super().speak()先调用父类speak输出"动物叫",再输出"汪汪"。子类扩展而非完全覆盖父类行为。
27.class Student(object):
@property
def score():
return self._score
@score.setter
def score(value):
self._score=value
【答案】(1)@property方法缺少self参数,def score(self):(3分);(2)@score.setter方法的self参数缺失,def score(self,value):(3分)。
【解析】@property方法需接收self(实例对象)。setter方法除self外还需接收要设置的值。self是实例方法的必需参数。
28.class A:
def show(self):return "A"
class B(A):
def show(self):return super().show()+"B"
class C(B):
def show(self):return super().show()+"C"
c=C()
print(c.show())
print(isinstance(c,A))
print(isinstance(c,(A,B)))
【答案】ABC
True
True
【解析】C继承B继承A。C.show→super().show()+C→B.show+C→A+B+C="ABC"。isinstance检查继承链,元组表示任意匹配即True。
四、程序设计题(3题,29/30各6分/31各8分)
29.定义类Vector2D含属性x和y,重载__add__实现向量加法,重载__str__返回格式"(x,y)"。样例:v1=Vector2D(1,2) v2=Vector2D(3,4) print(v1+v2)→(4,6)
【答案】class Vector2D:
def __init__(self,x,y):
self.x=x;self.y=y
def __add__(self,o):
return Vector2D(self.x+o.x,self.y+o.y)
def __str__(self):
return f"({self.x},{self.y})"
v1=Vector2D(1,2);v2=Vector2D(3,4)
print(v1+v2)
【解析】__add__重载+返回新Vector2D。__str__定义print显示。v1+v2调用 v1.__add__(v2)。运算符重载使自定义类型支持运算符。
30.定义类Student含私有属性__name,用@property提供只读name,用@name.setter限制name非空。输入姓名创建对象并输出。
【答案】class Student:
def __init__(self,name):
self.__name=name
@property
def name(self):
return self.__name
@name.setter
def name(self,value):
if value: self.__name=value
else: print("姓名不能为空")
s=Student("张三")
print(s.name)
s.name=""
print(s.name)
【解析】__name私有属性。@property只读访问,@name.setter控制设置(非空检查)。封装保护数据完整性。
31.定义类Shape含area方法(返回0),子类Rectangle和Circle重写area,用多态统一计算面积。输入类型和参数,输出面积。样例:rect 5 3→15,circle 5→78.5
【答案】class Shape:
def area(self):return 0
class Rectangle(Shape):
def __init__(self,w,h):self.w=w;self.h=h
def area(self):return self.w*self.h
class Circle(Shape):
def __init__(self,r):self.r=r
def area(self):return 3.14159*self.r*self.r
t=input()
if t=="rect":
w,h=map(int,input().split());s=Rectangle(w,h)
else:
r=float(input());s=Circle(r)
print(round(s.area(),1))
【解析】Shape基类定义接口,子类各自实现area。多态:无需判断类型直接s.area()即可。新增图形只需继承Shape即可扩展。
五、综合应用题(共1题,每题12分,共12分)
32.设计图书管理系统:基类Book(属性title/author,方法info),子类EBook(增加file_size和download方法),子类PBook(增加pages和borrow方法)。演示多态info输出。样例:Python编程/张三/EBook/5→Python编程 by 张三 [电子书 5MB]
【答案】class Book:
def __init__(self,t,a):self.title=t;self.author=a
def info(self):return self.title+' by '+self.author
class EBook(Book):
def __init__(self,t,a,size):
super().__init__(t,a);self.size=size
def info(self):return super().info()+' [电子书 '+str(self.size)+'MB]'
def download(self):print('下载中...')
class PBook(Book):
def __init__(self,t,a,pages):
super().__init__(t,a);self.pages=pages
def info(self):return super().info()+' [纸质 '+str(self.pages)+'页]'
def borrow(self):print('借阅中...')
t=input();a=input();tp=input()
if tp=='EBook':
s=int(input());b=EBook(t,a,s)
else:
p=int(input());b=PBook(t,a,p)
print(b.info())
【解析】Book基类含title/author和info方法。EBook/PBook继承并扩展属性(size/pages),info通过super()扩展父类输出。多态:统一info()调用,不同子类不同显示。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$