第65卷 继承和封装《算法与程序设计-C#》河北省(对口招生)《计算机类考纲百套卷》

2026-05-21
| 2份
| 18页
| 70人阅读
| 0人下载

内容正文:

编写说明:河北省对口招生《计算机类考纲百套卷》,依据《河北省2028年中等职业学校对口升学考试计算机类专业考试大纲》编写。本专辑涵盖四门课程,且每门课程均采用三阶递进式训练体系:基础层(具象化支架)拆解考点为微目标,紧扣考纲 “掌握”“理解” 要求编写考点训练卷;巩固层(关联性支架)强化知识交叉与场景关联,按考纲专题编写专题训练卷;应用层(引导性支架)聚焦真题突破,结合知识模块与教材编写课程综合卷。 本试卷是第65卷,为考点训练卷,按《算法与程序设计-C#》范围和要求编写。具体内容为:1.封装的作用与实现;2.继承的概念、语法和实现。 2027版河北省《计算机类考纲百套卷》 第65卷 《算法与程序设计-C#》 知识点训练卷 考试时间60分钟 满分100分 班级 姓名 学号 成绩 一、单项选择题(本大题共15小题,每题2分,共30分) 1.在C#中,关于封装的概念,下列说法错误的是( ) A. 封装是将数据和操作数据的方法绑定在一起,对外隐藏内部实现细节 B. 封装的主要目的是隐藏类的内部实现,保护数据不被随意修改 C. 只要将类的成员设置为private就能完全保证数据的安全 D. 封装通过访问修饰符控制成员的可访问性 【答案】C 【解析】封装确实通过private等访问修饰符来限制外部对类内部成员的直接访问,但这并不意味着只要设置为private就能"完全"保证数据安全。 2.关于C#中的继承,下列说法正确的是( ) A. 子类可以访问父类的private成员 B. 继承是一种"is-a"关系,如Dog is an Animal C. C#支持多继承,所以一个类可以继承多个父类 D. 继承的主要目的是实现多态,而不是代码复用 【答案】B 【解析】子类不能直接访问父类的private成员,只能访问protected和public成员。 3.下列关于多态(Polymorphism)的描述,正确的是( ) A. 多态是指一个类只能有一种形态 B. 多态是指父类引用可以指向子类对象,并调用子类重写的方法 C. 多态只能通过接口实现 D. 多态会降低程序的扩展性 【答案】B 【解析】多态的核心是“一个接口,多种实现”。在C#中,通常表现为父类引用指向子类对象,运行时根据实际对象类型调用对应的方法。 4.若要使父类的方法在子类中能够被重写(Override),该方法必须使用( )关键字修饰。 A. Static B. abstract C. virtual D. new 【答案】C 【解析】父类中使用 virtual(虚方法)或 abstract(抽象方法)修饰的方法,才能在子类中使用 override 进行重写。 5.在C#中,base 关键字的作用是( ) A. 指向当前类的实例 B. 指向父类的实例,用于访问父类的成员 C. 定义一个基础类 D. 结束当前方法的执行 【答案】B 【解析】base 关键字用于在子类中访问父类的成员(如调用父类的构造函数、方法或属性)。this 关键字才是指向当前类的实例。 6.在C#中,以下关于类的定义,正确的是( ) A. 一个类可以同时继承两个父类 B. C#中所有类都直接或间接继承自Object类 C. sealed修饰符的类可以被继承 D. abstract修饰符的类必须包含至少一个抽象方法 【答案】B 【解析】一个类只能有一个父类。Object类是所有类的基类,是C#类型系统的根。sealed是密封类,不能被继承。 7.如果子类中定义了一个与父类同名但没有使用 virtual 修饰的方法,且没有使用 override 关键字,应该使用( )关键字来隐藏父类方法。 A. Override B. new C. static D. virtual 【答案】B 【解析】如果父类方法不是虚方法,子类想要定义同名方法,必须使用 new 关键字来显式隐藏父类成员,否则会报警告。 8.下列关于方法重写(Override)的描述,正确的是( ) A. 发生在同一个类中 B. 方法名相同,参数列表必须不同 C. 发生在父类和子类之间,方法签名必须相同 D. 父类方法可以是私有的 【答案】C 【解析】重写发生在继承关系的父子类之间,子类重写父类的虚方法或抽象方法,要求方法签名(名称、参数、返回值)完全一致。 9.关于new关键字在继承中的用法,下列说法错误的是( ) A. 子类可以使用new关键字隐藏父类的同名方法 B. 使用new隐藏方法后,通过父类引用调用该方法时会调用父类版本 C. new和override在隐藏方法时的效果完全相同 D. 隐藏字段也可以使用new关键字 【答案】C 【解析】override会替换父类方法,实现多态,通过父类引用调用时会执行子类版本,new只是隐藏父类方法,不实现多态,通过父类引用调用时会执行父类版本。 10.在C#中,以下情况中( )会发生运行时多态。 A. 方法重载(Overloading) B. 方法重写(Override)通过父类引用调用子类方法 C. 使用new关键字隐藏方法 D. 静态方法的调用 【答案】B 【解析】运行时多态:通过virtual+override实现,父类引用指向子类对象,方法的具体实现要在程序运行时才能确定。 11.C# 中实现封装最常用的方式是( ) A. 把字段设为 public,直接访问 B. 字段私有,通过属性公开访问 C. 全部成员都用 protected 修饰 D. 只用构造函数赋值 【答案】B 【解析】私有字段 + 公开属性,控制读写权限,保护内部数据。 12.下列访问修饰符中,只能本类内部访问的是( ) A. Public B. private C. protected D. internal 【答案】B 【解析】private:仅本类内部可用。 13.子类中用 new 修饰同名方法,作用是( ) A. 重写父类方法实现多态 B. 隐藏父类同名方法 C. 必须配合 virtual 使用 D. 可以用 override 替代 【答案】B 【解析】new 是方法隐藏,不是重写;看引用类型决定调用哪个方法,不实现多态。 14.下列关于 base 关键字用法错误的是( ) A. 调用父类构造函数 B. 访问父类公开 / 受保护成员 C. 调用本类其他构造函数 D. 在子类中指代父类 【答案】C 【解析】调用本类其他构造用 this,不是 base。 15.有如下代码结构,关于构造函数继承调用规则说法正确的是( ) class Father { public Father(string name){} } class Son : Father { public Son() : base("张三") {} } A. 子类构造默认一定会调用父类无参构造,无需手动写 base B. 父类没有无参构造时,子类必须通过 base 手动调用父类有参构造 C. 子类只能用 this 调用父类构造函数 D. 子类构造可以随意省略 base,编译器自动补全有参构造 【答案】B 【解析】若父类没有无参构造,编译器无法自动调用,子类必须用 base(参数) 显式调用父类有参构造;A 仅父类有无参构造时才默认调用;调用父类构造用 base,this 是调用本类构造。 二、判断题(本大题共10小题,每题2分,共20分) 16.在C#中,封装就是将所有类的成员都设置为private,不让外部访问。( ) 【答案】错 【解析】封装并不是简单地将所有成员设置为private。 17.public访问修饰符表示成员可以被任何代码访问,而private表示只有类本身可以访问。( ) 【答案】对 【解析】public(公共成员)具有最高访问级别,任何代码都可以访问它,包括类外部的代码、不同命名空间、不同程序集等。private(私有成员)具有最低访问级别,只有声明它的那个类内部可以访问,子类也无法访问。 18. C#支持类的多继承,即一个类可以同时继承多个父类。( ) 【答案】错 【解析】C#只支持单继承,一个类只能有一个直接父类(基类)。 19.在C#继承中,子类可以继承父类的所有成员,包括private成员。( ) 【答案】错 【解析】子类在语法上"继承"了父类的所有成员(编译器会在子类对象中包含父类成员的副本),但private成员在子类中是不可见的、无法直接访问的。 20.在C#中,Object类是所有类的基类,任何类都直接或间接继承自Object。( ) 【答案】对 【解析】在C#中,System.Object(可简写为object)是所有类型的最终基类。所有类都直接或间接地继承自Object。 21.父类构造函数总是先于子类构造函数执行,即使子类没有显式调用base()。( ) 【答案】对 【解析】在创建子类对象时,系统必须先初始化从父类继承来的成员,而这些成员需要通过父类构造函数来初始化。 22.使用override重写父类方法后,通过父类引用调用该方法时,会执行子类的版本;而使用new隐藏父类方法后,通过父类引用调用该方法时,会执行父类的版本。( ) 【答案】对 【解析】override:替换父类方法,实现多态。父类引用指向子类对象时,调用的是子类版本,new:隐藏父类方法,不实现多态。父类引用指向子类对象时,仍然调用父类版本。 23.构造函数可以被继承,子类构造函数实际上调用的是父类已定义的构造函数。( ) 【答案】错 【解析】构造函数不能被继承!子类不会继承父类的构造函数。 24.在C#继承体系中,如果子类构造函数没有显式调用base()或this(),编译器会自动生成对父类无参构造函数的调用。( ) 【答案】对 【解析】如果子类构造函数没有显式指定: base(...)或: this(...),编译器会自动添加: base(),即调用父类的无参构造函数。 25.子类可以继承父类的所有成员,包括私有成员和构造函数。( ) 【答案】错 【解析】子类不能继承父类的私有成员。 3、 填空题(本大题共10个题,每题2分,共20分) 26.C# 中实现继承使用的符号是 ________。 【答案】冒号(:) 【解析】C# 中类实现继承的语法:子类名 : 父类名 27.在子类构造函数中,用于调用父类构造函数的关键字是 ________。 【答案】base 【解析】子类构造函数后用 : base(参数) 调用父类构造函数,base 专门指代父类。 28.父类中使用 ________ 关键字修饰的方法,可以在子类中被重写。 【答案】virtual 【解析】父类用 virtual 标记虚方法,子类才能用 override 进行重写,实现多态。 29.若要在子类中访问父类的受保护成员,父类成员应使用 ________ 访问修饰符。 【答案】protected 【解析】protected 修饰的成员:本类内部、子类、同命名空间都可以访问,正好满足子类访问父类受保护成员的需求。 30.在C#中,如果子类定义了一个与父类同名但不是重写的方法,应该使用____关键字来显式声明这是隐藏关系,否则编译器会给出警告。 【答案】new 【解析】new关键字用于隐藏(hide)父类的同名成员。 31.C#中的多态有两种形式:编译时多态通过____实现,运行时多态通过virtual和____实现。 【答案】 方法重载(overloading);override 【解析】编译时多态(静态多态)在编译时根据参数列表确定调用哪个方法的重载版本;运行时多态(动态多态)在程序运行时根据实际对象类型确定调用哪个方法,需要virtual+override配合实现。 32.抽象类使用____关键字修饰,抽象方法使用____关键字修饰,且抽象方法不能有方法体。 【答案】 abstract;abstract 【解析】抽象类是一种不能被实例化的类,用abstract修饰;抽象方法是抽象类中的纯虚方法,用abstract修饰且没有方法体(分号结尾)。抽象类可以包含抽象方法和非抽象方法(具体实现的方法)。继承抽象类的非抽象子类必须实现所有抽象方法。 33.父类引用指向子类对象时,如果调用的是被new隐藏的方法,实际执行的是____类的方法;如果调用的是被override重写的方法,实际执行的是____类的方法。 【答案】父;子 【解析】new隐藏:编译时根据引用类型决定,父类引用调用父类版本,override重写:运行时根据对象类型决定,父类引用调用子类版本. 34.在继承中,如果父类方法使用virtual标记,子类使用override重写,那么通过父类引用调用该方法时,实际执行的是____类的方法,这称为____。 【答案】子;多态 【解析】这是运行时多态的典型特征。父类引用指向子类对象时,override方法会表现出"欺骗性"——看起来是父类引用在调用方法,但实际执行的是子类实现。这就是多态的核心:同一操作作用于不同对象,产生不同行为。 35. 如果一个类中包含抽象方法,那么这个类必须声明为____类;一个类如果声明为sealed,则____(能/不能)同时声明为abstract。 【答案】abstract;不能 【解析】 包含抽象成员的类必须是抽象类。sealed和abstract是互斥的:sealed表示"不能被继承",abstract表示"可能被继承"(因为抽象类设计出来就是要被继承的)。一个类不能同时标记为sealed和abstract,编译器会报错。 四、读程题(本大题共3个题,每题10分,共30分) 36.下列C#代码执行后,程序的运行结果为______ class Parent { public void Show() { Console.WriteLine("Parent.Show"); } } class Child : Parent { public new void Show() { Console.WriteLine("Child.Show"); } } class Program { static void Main() { Parent p = new Child(); p.Show(); } } 【答案】Parent.Show 【解析】子类使用new关键字隐藏父类方法,这不是多态。变量p的类型是Parent,即使指向Child对象,调用的也是Parent的Show()方法。输出"Parent.Show"。 37.下列C#代码执行后,程序的运行结果为______ public class BaseClass { public BaseClass() { Console.Write("Base "); } public virtual void Show() { Console.Write("Base.Show "); } } public class DerivedClass : BaseClass { public DerivedClass() { Console.Write("Derived "); } public override void Show() { Console.Write("Derived.Show "); } } class Program { static void Main() { BaseClass obj = new DerivedClass(); obj.Show(); } } 【答案】Base Derived Derived.Show 【解析】new DerivedClass()会首先调用父类BaseClass的构造函数。构造函数执行完毕后,obj.Show()被调用。 38. 下列C#代码执行后,程序的运行结果为______ public class Animal { public virtual string Speak() { return "..."; } } public class Dog : Animal { public override string Speak() { return "汪汪"; } } public class Cat : Animal { public override string Speak() { return "喵喵"; } } public class Program { public static void Main() { Animal[] animals = { new Dog(), new Cat(), new Dog() }; foreach(Animal a in animals) { Console.Write(a.Speak() + " "); } } } 【答案】汪汪 喵喵 汪汪 【解析】foreach遍历数组,对每个Animal类型的元素a调用Speak()方法。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $ 编写说明:河北省对口招生《计算机类考纲百套卷》,依据《河北省2028年中等职业学校对口升学考试计算机类专业考试大纲》编写。本专辑涵盖四门课程,且每门课程均采用三阶递进式训练体系:基础层(具象化支架)拆解考点为微目标,紧扣考纲 “掌握”“理解” 要求编写考点训练卷;巩固层(关联性支架)强化知识交叉与场景关联,按考纲专题编写专题训练卷;应用层(引导性支架)聚焦真题突破,结合知识模块与教材编写课程综合卷。 本试卷是第65卷,为考点训练卷,按《算法与程序设计-C#》范围和要求编写。具体内容为:1.封装的作用与实现;2.继承的概念、语法和实现。 2027版河北省《计算机类考纲百套卷》 第65卷 《算法与程序设计-C#》 知识点训练卷 考试时间60分钟 满分100分 班级 姓名 学号 成绩 一、单项选择题(本大题共15小题,每题2分,共30分) 1.在C#中,关于封装的概念,下列说法错误的是( ) A. 封装是将数据和操作数据的方法绑定在一起,对外隐藏内部实现细节 B. 封装的主要目的是隐藏类的内部实现,保护数据不被随意修改 C. 只要将类的成员设置为private就能完全保证数据的安全 D. 封装通过访问修饰符控制成员的可访问性 2.关于C#中的继承,下列说法正确的是( ) A. 子类可以访问父类的private成员 B. 继承是一种"is-a"关系,如Dog is an Animal C. C#支持多继承,所以一个类可以继承多个父类 D. 继承的主要目的是实现多态,而不是代码复用 3.下列关于多态(Polymorphism)的描述,正确的是( ) A. 多态是指一个类只能有一种形态 B. 多态是指父类引用可以指向子类对象,并调用子类重写的方法 C. 多态只能通过接口实现 D. 多态会降低程序的扩展性 4.若要使父类的方法在子类中能够被重写(Override),该方法必须使用( )关键字修饰。 A. Static B. abstract C. virtual D. new 5.在C#中,base 关键字的作用是( ) A. 指向当前类的实例 B. 指向父类的实例,用于访问父类的成员 C. 定义一个基础类 D. 结束当前方法的执行 6.在C#中,以下关于类的定义,正确的是( ) A. 一个类可以同时继承两个父类 B. C#中所有类都直接或间接继承自Object类 C. sealed修饰符的类可以被继承 D. abstract修饰符的类必须包含至少一个抽象方法 7.如果子类中定义了一个与父类同名但没有使用 virtual 修饰的方法,且没有使用 override 关键字,应该使用( )关键字来隐藏父类方法。 A. Override B. new C. static D. virtual 8.下列关于方法重写(Override)的描述,正确的是( ) A. 发生在同一个类中 B. 方法名相同,参数列表必须不同 C. 发生在父类和子类之间,方法签名必须相同 D. 父类方法可以是私有的 9.关于new关键字在继承中的用法,下列说法错误的是( ) A. 子类可以使用new关键字隐藏父类的同名方法 B. 使用new隐藏方法后,通过父类引用调用该方法时会调用父类版本 C. new和override在隐藏方法时的效果完全相同 D. 隐藏字段也可以使用new关键字 10.在C#中,以下情况中( )会发生运行时多态。 A. 方法重载(Overloading) B. 方法重写(Override)通过父类引用调用子类方法 C. 使用new关键字隐藏方法 D. 静态方法的调用 11.C# 中实现封装最常用的方式是( ) A. 把字段设为 public,直接访问 B. 字段私有,通过属性公开访问 C. 全部成员都用 protected 修饰 D. 只用构造函数赋值 12.下列访问修饰符中,只能本类内部访问的是( ) A. Public B. private C. protected D. internal 13.子类中用 new 修饰同名方法,作用是( ) A. 重写父类方法实现多态 B. 隐藏父类同名方法 C. 必须配合 virtual 使用 D. 可以用 override 替代 14.下列关于 base 关键字用法错误的是( ) A. 调用父类构造函数 B. 访问父类公开 / 受保护成员 C. 调用本类其他构造函数 D. 在子类中指代父类 15.有如下代码结构,关于构造函数继承调用规则说法正确的是( ) class Father { public Father(string name){} } class Son : Father { public Son() : base("张三") {} } A. 子类构造默认一定会调用父类无参构造,无需手动写 base B. 父类没有无参构造时,子类必须通过 base 手动调用父类有参构造 C. 子类只能用 this 调用父类构造函数 D. 子类构造可以随意省略 base,编译器自动补全有参构造 二、判断题(本大题共10个题,每题2分,共20分) 16.在C#中,封装就是将所有类的成员都设置为private,不让外部访问。( ) 17.public访问修饰符表示成员可以被任何代码访问,而private表示只有类本身可以访问。( ) 18. C#支持类的多继承,即一个类可以同时继承多个父类。( ) 19.在C#继承中,子类可以继承父类的所有成员,包括private成员。( ) 20.在C#中,Object类是所有类的基类,任何类都直接或间接继承自Object。( ) 21.父类构造函数总是先于子类构造函数执行,即使子类没有显式调用base()。( ) 22.使用override重写父类方法后,通过父类引用调用该方法时,会执行子类的版本;而使用new隐藏父类方法后,通过父类引用调用该方法时,会执行父类的版本。( ) 23.构造函数可以被继承,子类构造函数实际上调用的是父类已定义的构造函数。( ) 24.在C#继承体系中,如果子类构造函数没有显式调用base()或this(),编译器会自动生成对父类无参构造函数的调用。( ) 25.子类可以继承父类的所有成员,包括私有成员和构造函数。( ) 3、 填空题(本大题共10个题,每题2分,共20分) 26.C# 中实现继承使用的符号是 ________。 27.在子类构造函数中,用于调用父类构造函数的关键字是 ________。 28.父类中使用 ________ 关键字修饰的方法,可以在子类中被重写。 29.若要在子类中访问父类的受保护成员,父类成员应使用 ________ 访问修饰符。 30.在C#中,如果子类定义了一个与父类同名但不是重写的方法,应该使用____关键字来显式声明这是隐藏关系,否则编译器会给出警告。 31.C#中的多态有两种形式:编译时多态通过____实现,运行时多态通过virtual和____实现。 32.抽象类使用____关键字修饰,抽象方法使用____关键字修饰,且抽象方法不能有方法体。 33.父类引用指向子类对象时,如果调用的是被new隐藏的方法,实际执行的是____类的方法;如果调用的是被override重写的方法,实际执行的是____类的方法。 34.在继承中,如果父类方法使用virtual标记,子类使用override重写,那么通过父类引用调用该方法时,实际执行的是____类的方法,这称为____。 35. 如果一个类中包含抽象方法,那么这个类必须声明为____类;一个类如果声明为sealed,则____(能/不能)同时声明为abstract。 四、读程题(本大题共3个题,每题10分,共30分) 36.下列C#代码执行后,程序的运行结果为______ class Parent { public void Show() { Console.WriteLine("Parent.Show"); } } class Child : Parent { public new void Show() { Console.WriteLine("Child.Show"); } } class Program { static void Main() { Parent p = new Child(); p.Show(); } } 37.下列C#代码执行后,程序的运行结果为______ public class BaseClass { public BaseClass() { Console.Write("Base "); } public virtual void Show() { Console.Write("Base.Show "); } } public class DerivedClass : BaseClass { public DerivedClass() { Console.Write("Derived "); } public override void Show() { Console.Write("Derived.Show "); } } class Program { static void Main() { BaseClass obj = new DerivedClass(); obj.Show(); } } 38. 下列C#代码执行后,程序的运行结果为______ public class Animal { public virtual string Speak() { return "..."; } } public class Dog : Animal { public override string Speak() { return "汪汪"; } } public class Cat : Animal { public override string Speak() { return "喵喵"; } } public class Program { public static void Main() { Animal[] animals = { new Dog(), new Cat(), new Dog() }; foreach(Animal a in animals) { Console.Write(a.Speak() + " "); } } } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

第65卷 继承和封装《算法与程序设计-C#》河北省(对口招生)《计算机类考纲百套卷》
1
第65卷 继承和封装《算法与程序设计-C#》河北省(对口招生)《计算机类考纲百套卷》
2
第65卷 继承和封装《算法与程序设计-C#》河北省(对口招生)《计算机类考纲百套卷》
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。