第27卷 C#面向对象设计(2)河北省对口招生考试-计算机类《算法与程序设计双析卷》
2026-04-29
|
2份
|
12页
|
38人阅读
|
0人下载
内容正文:
编写说明:河北省普通高等学校对口招生考试计算机类《算法与程序设计考点双析卷》,依据《河北省普通高等学校对口招生计算机类专业考试考试大纲》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷。助力师生构建 “讲练结合” 的学习闭环,适用于高考复习教学。
本专辑第27、第28卷精准对标河北省考纲,知识模块(四)C#面向对象设计:
1. 掌握面向对象的三大特征:封装、继承、多态;
2. 掌握类和对象的概念、类的定义、对象的创建与使用、属性和方法;
3. 掌握关键字this、this访问属性、this调用成员方法、this调用构造方法;
4. 掌握关键字static、静态字段、静态属性、静态方法;
5. 掌握构造函数的语法格式和用法;
6. 了解封装的作用与实现;
7. 了解继承的概念、语法和实现。
河北省对口招生考试 计算机类
《算法与程序设计》考点双析卷 第27卷
C#面向对象设计(2) 老师讲解卷
时间:45分钟 总分:100分
班级_______ 姓名_______ 学号_______ 成绩_______
一、单项选择题(本大题共20小题,每题3分,共60分)
1.以下对 C# “委托”和“事件”关系的描述,正确的是( )
A.事件本质是一种特殊的委托,封装了委托的订阅/取消逻辑
B.委托就是事件,二者完全等价
C.事件能直接赋值方法,委托不行
D.委托可在类外部直接触发,事件也能在类外部直接触发
2.派生类访问基类成员,可使用 关键字。( )
A.base B.this C.out D.external
3.继承具有 ,即基类是派生类时,派生类会继承间接基类成员。( )
A.规律性 B.传递性 C.重复性 D.多样性
4.正确的说法是( )
A.派生类对象不可以强制转换为基类对象
B.在任何情况下,基类对象都不能转换为派生类对象
C.接口不能实例化,但可引用实现它的类的对象
D.基类对象可直接访问派生类新增成员
5.关于 base 关键字,使用错误的是( )
A.子类中用 base 调用父类构造函数
B.子类中用 base 访问父类公共属性
C.子类中用 base 不能调用父类 protected 成员
D.子类中用 base 不能调用父类 private 成员
6.关于抽象类,正确的是( )
A.抽象类能被实例化
B.含抽象方法的类一定是抽象类
C.抽象类可以是静态类
D.抽象类的抽象方法不能在派生类重写
7.分析程序,创建 Derived d = new Derived(); 时,构造函数执行顺序是( )
class Base
{
public Base()
{
Console.Write("Base ");
}
}
class Derived : Base
{
public Derived()
{
Console.Write("Derived ");
}
}
A.先 Base 后 Derived B.先 Derived 后 Base
C.只执行 Base D.只执行 Derived
8.以下关于 C# 委托的说法,正确的是( )
A.委托只能关联有返回值的方法
B.委托定义后可直接调用,无需关联方法
C.委托是一种特殊的类,用于封装方法引用
D.不同签名的方法,一定无法关联到同一个委托
9.若有 public class Person { private string name; } ,外部代码要访问 name 字段,正确做法是( )
A.直接访问,因为类是 public 的 B.通过类的公共属性间接访问
C.无法访问,只能在类内部访问 D.将 name 字段改为 public 才能访问
10.C#中的多态的主要目的是( )
A.提高代码的执行速度
B.增强代码的可维护性和可扩展性
C.减少内存的使用
D.使代码更易于编译
11.现有类 MyClass, 下列选项中正确的缺省构造函数形式( )
A.private int MyClass(){ } B.private MyClass(){ }
C.public MyClass(){ } D.public void MyClass(){ }
12.C# 中Car 为一自定义类,其中有以下方法定义 public void Auto(){…}使用以下语句创建了该类的一个对象 c1, 代码为:Car c1=new Car()那么,调用 Car 的 Auto 方法为( )
A.c1.Auto() B.c1::Auto() C.Car.Auto() D.Car::Auto()
13.在C#中,如果类名为Myclass,那么 可以作为它的构造函数。( )
A.~Myclass() B.Myclass(doublea)
C.~Myclass(double a) D.void Myclass()
14.C#的方法参数类型中, 不属于方法的参数类型。( )
A.值参数 B.引用参数 C.输出参数 D.指针参数
15.下列 不是构造函数的特征。( )
A.构造函数的函数名与类名相同
B.构造函数可以重载
C.构造函数可以设置形式参数的默认值
D.构造函数必须指定函数类型
16.构造函数的特点是( )
A.可以有返回值 B.与类名不同 C.自动调用 D.不能重载
17.方法重载的条件是( )
A.参数列表不同 B.返回类型不同
C.方法名不同 D.访问修饰符不同
18.C# 中,正确的类声明方式的语句是( )
A.public class MyClass() {} B.class MyClass {}
C.public class void MyClass {} D.public MyClass {}
19.关于C#中的类,以下说法正确的是( )
A.类可以有多个构造函数,但每个构造函数的参数列表必须不同
B.类的构造函数可以有返回值
C.类的构造函数与类名不同
D.类的构造函数可以被继承
20.以下代码中,属于自动实现的属性的是( )
A.private string _name;
public string Name {
get { return _name; }
set { _name = value; }
}
B.public string Name { get; set; }
C.public string GetName() { return _name; }
public void SetName(string value) { _name = value; }
D.public string Name;
二、填空题(本大题共8小题,每题5分,共40分)
21.C#中使用________符号实现类的继承。
22.C# 不支持类多重继承,可用______机制实现类似多重继承的功能。
23.C#中的子类重写父类的方法使用关键字_______ 。
24.在C#中,使用______关键字可以防止一个类被继承。
25.在C#中,类的构造函数与类名______,用于初始化类的实例。
26.在C#中,方法参数中的__________参数只能位于参数列表中的最后一个。
27.当一个对象不再被使用时,C# 的______机制会自动回收其占用的内存。
28.在属性的 set 访问器中,使用______关键字表示外部传入的值。
试卷第6页,共6页
试卷第5页,共6页
学科网(北京)股份有限公司
$
编写说明:河北省普通高等学校对口招生考试计算机类《算法与程序设计考点双析卷》,依据《河北省普通高等学校对口招生计算机类专业考试考试大纲》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷。助力师生构建 “讲练结合” 的学习闭环,适用于高考复习教学。
本专辑第27、第28卷精准对标河北省考纲,知识模块(四)C#面向对象设计:
1. 掌握面向对象的三大特征:封装、继承、多态;
2. 掌握类和对象的概念、类的定义、对象的创建与使用、属性和方法;
3. 掌握关键字this、this访问属性、this调用成员方法、this调用构造方法;
4. 掌握关键字static、静态字段、静态属性、静态方法;
5. 掌握构造函数的语法格式和用法;
6. 了解封装的作用与实现;
7. 了解继承的概念、语法和实现。
河北省对口招生考试 计算机类
《算法与程序设计》考点双析卷 第27卷
C#面向对象设计(2) 老师讲解卷
时间:45分钟 总分:100分
班级_______ 姓名_______ 学号_______ 成绩_______
一、单项选择题(本大题共20小题,每题3分,共60分)
1.以下对 C# “委托”和“事件”关系的描述,正确的是( )
A.事件本质是一种特殊的委托,封装了委托的订阅/取消逻辑
B.委托就是事件,二者完全等价
C.事件能直接赋值方法,委托不行
D.委托可在类外部直接触发,事件也能在类外部直接触发
【答案】A
【详解】- A:事件基于委托实现,内部封装委托实例,对外暴露 +=(订阅)、-=(取消),隐藏直接赋值(如 = ),避免外部随意修改,A 正确;
- B:委托是“方法引用类型”,事件是“基于委托的封装”,用于解耦发布 - 订阅逻辑,不等价,B 错误;
- C:事件不能直接赋值(禁止 event1 = 方法 ,只能 event1 += 方法 ),委托可直接赋值(如 myDelegate = 方法 ),C 错误;
- D:事件设计为“类内部触发、外部订阅”,类外部无法直接触发事件;委托若暴露可在外部调用(如 myDelegate() ),D 错误。
2.派生类访问基类成员,可使用 关键字。( )
A.base B.this C.out D.external
【答案】A
【详解】base 用于在派生类中访问基类的构造函数、属性和方法;this 指代当前类对象;out 是方法参数修饰符;external 用于声明外部实现的方法 。
3.继承具有 ,即基类是派生类时,派生类会继承间接基类成员。( )
A.规律性 B.传递性 C.重复性 D.多样性
【答案】B
【详解】继承的传递性指子类继承父类,父类继承祖父类等,子类会继承所有间接基类的可继承成员 。
4.正确的说法是( )
A.派生类对象不可以强制转换为基类对象
B.在任何情况下,基类对象都不能转换为派生类对象
C.接口不能实例化,但可引用实现它的类的对象
D.基类对象可直接访问派生类新增成员
【答案】C
【详解】派生类对象可隐式转换为基类对象(向上转型 );基类对象在一定条件下(如先向上转型为基类的派生类对象可再向下转型 ,需结合 as 或强制转换 )可转换为派生类对象;接口是一种规范,不能实例化,但可通过实现类的对象引用;基类对象不能直接访问派生类新增成员,需转换为派生类类型后访问 。
5.关于 base 关键字,使用错误的是( )
A.子类中用 base 调用父类构造函数
B.子类中用 base 访问父类公共属性
C.子类中用 base 不能调用父类 protected 成员
D.子类中用 base 不能调用父类 private 成员
【答案】C
【详解】base 可在子类中调用父类构造函数、访问父类的公共和 protected 成员;父类 private 成员因访问限制,无法通过 base 访问 。
6.关于抽象类,正确的是( )
A.抽象类能被实例化
B.含抽象方法的类一定是抽象类
C.抽象类可以是静态类
D.抽象类的抽象方法不能在派生类重写
【答案】B
【详解】抽象类不能实例化;包含抽象方法的类必须定义为抽象类;抽象类不能是静态类(静态类不能被继承,抽象类设计目的是被继承 );抽象方法必须在派生类中重写实现 。
7.分析程序,创建 Derived d = new Derived(); 时,构造函数执行顺序是( )
class Base
{
public Base()
{
Console.Write("Base ");
}
}
class Derived : Base
{
public Derived()
{
Console.Write("Derived ");
}
}
A.先 Base 后 Derived B.先 Derived 后 Base
C.只执行 Base D.只执行 Derived
【答案】A
【详解】创建派生类对象时,先调用基类构造函数,再调用派生类构造函数,保证基类成员先初始化 。
8.以下关于 C# 委托的说法,正确的是( )
A.委托只能关联有返回值的方法
B.委托定义后可直接调用,无需关联方法
C.委托是一种特殊的类,用于封装方法引用
D.不同签名的方法,一定无法关联到同一个委托
【答案】C
【详解】- A:委托可关联无返回值(void)方法,只要方法签名匹配即可,A 错误;
- B:委托需先关联方法(通过赋值或 += 绑定),才能调用,否则抛异常,B 错误;
- C:委托本质是引用类型,封装方法引用,可理解为“方法的容器” ,C 正确;
- D:若方法参数能隐式转换、返回值兼容,不同签名也可能关联同一委托(如 int 与 long 隐式转换场景 ),D 错误。
9.若有 public class Person { private string name; } ,外部代码要访问 name 字段,正确做法是( )
A.直接访问,因为类是 public 的 B.通过类的公共属性间接访问
C.无法访问,只能在类内部访问 D.将 name 字段改为 public 才能访问
【答案】B
【详解】private 修饰的字段只能在类内部访问,外部需通过类提供的公共属性(给 name 写对应的 get、set 属性 )间接访问;A 不能直接访问私有字段;C 表述太绝对,可通过属性访问;D 直接改 public 虽能访问,但破坏封装性,不推荐,所以选 B 。
10.C#中的多态的主要目的是( )
A.提高代码的执行速度
B.增强代码的可维护性和可扩展性
C.减少内存的使用
D.使代码更易于编译
【答案】B
【详解】多态允许不同的对象对同一消息做出不同的响应,通过使用基类的引用指向派生类的对象,能够在运行时动态决定调用哪个类的方法。这极大地增强了代码的可维护性和可扩展性。
11.现有类 MyClass, 下列选项中正确的缺省构造函数形式( )
A.private int MyClass(){ } B.private MyClass(){ }
C.public MyClass(){ } D.public void MyClass(){ }
【答案】C
12.C# 中Car 为一自定义类,其中有以下方法定义 public void Auto(){…}使用以下语句创建了该类的一个对象 c1, 代码为:Car c1=new Car()那么,调用 Car 的 Auto 方法为( )
A.c1.Auto() B.c1::Auto() C.Car.Auto() D.Car::Auto()
【答案】A
13.在C#中,如果类名为Myclass,那么 可以作为它的构造函数。( )
A.~Myclass() B.Myclass(doublea)
C.~Myclass(double a) D.void Myclass()
【答案】B
14.C#的方法参数类型中, 不属于方法的参数类型。( )
A.值参数 B.引用参数 C.输出参数 D.指针参数
【答案】D
15.下列 不是构造函数的特征。( )
A.构造函数的函数名与类名相同
B.构造函数可以重载
C.构造函数可以设置形式参数的默认值
D.构造函数必须指定函数类型
【答案】D
16.构造函数的特点是( )
A.可以有返回值 B.与类名不同 C.自动调用 D.不能重载
【答案】C
【详解】创建对象时自动调用构造函数,无返回值,名称与类名相同。
17.方法重载的条件是( )
A.参数列表不同 B.返回类型不同
C.方法名不同 D.访问修饰符不同
【答案】A
【详解】重载要求方法名相同,参数个数、类型或顺序不同。
18.C# 中,正确的类声明方式的语句是( )
A.public class MyClass() {} B.class MyClass {}
C.public class void MyClass {} D.public MyClass {}
【答案】B
【详解】类声明的基本语法是[访问修饰符] class 类名 { }。
19.关于C#中的类,以下说法正确的是( )
A.类可以有多个构造函数,但每个构造函数的参数列表必须不同
B.类的构造函数可以有返回值
C.类的构造函数与类名不同
D.类的构造函数可以被继承
【答案】A
【详解】类可以有多个构造函数,但每个构造函数的参数列表必须不同,这是构造函数重载的规则。
20.以下代码中,属于自动实现的属性的是( )
A.private string _name;
public string Name {
get { return _name; }
set { _name = value; }
}
B.public string Name { get; set; }
C.public string GetName() { return _name; }
public void SetName(string value) { _name = value; }
D.public string Name;
【答案】B
【详解】自动实现的属性(Auto-Implemented Property)无需显式定义字段,编译器会自动生成后台字段,语法为public 类型 属性名 { get; set; }。
二、填空题(本大题共8小题,每题5分,共40分)
21.C#中使用________符号实现类的继承。
【答案】:
22.C# 不支持类多重继承,可用______机制实现类似多重继承的功能。
【答案】接口 或 interface
【详解】一个类可实现多个接口,通过实现不同接口,获得多个接口定义的行为,间接实现类似多重继承的效果 。
23.C#中的子类重写父类的方法使用关键字_______ 。
【答案】override
24.在C#中,使用______关键字可以防止一个类被继承。
【答案】sealed
25.在C#中,类的构造函数与类名______,用于初始化类的实例。
【答案】相同
26.在C#中,方法参数中的__________参数只能位于参数列表中的最后一个。
【答案】params
27.当一个对象不再被使用时,C# 的______机制会自动回收其占用的内存。
【答案】垃圾回收
【详解】C# 的垃圾回收器会自动检测并回收不再被引用的对象所占用的内存,无需手动释放。
28.在属性的 set 访问器中,使用______关键字表示外部传入的值。
【答案】value
【详解】value是 set 访问器的隐式参数,类型与属性一致.
试卷第6页,共6页
试卷第5页,共6页
学科网(北京)股份有限公司
$
资源预览图
1
2
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。