




免费预览已结束,剩余3页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
洛阳理工学院 2011/2012 学年 第一学期 面向对象程序设计 期末考试试题卷(A)适用班级:B090501/02/03/04 考试时间:120分钟一、 填空题(每空1分,共20分) 1. 客观世界中的事物都是对象。对象具有自己的_,用来描述对象的静态特征;而对象的_用于描述对象的动态特征。2. 在面向对象的模型中,对象之间的关系可在类级别上概述为聚合、_、_和一般关联等四种。其中基类和派生类之间的关系属于_关系。3. C#程序的基本结构包括注释 、_、_、_和类型及其成员等五部分。4. 数据类型是对客观数据对象的抽象,C#语言中的数据类型分为引用类型和_两大类。其中引用类型包括_、_、_和数组等。5. 方法是最基本的函数成员,对象所能执行的操作都是通过方法来定义的。方法应该包括返回类型、_、_和执行体等4个部分。6. 类的_函数名称与类名相同,且不能声明返回类型,其代码主要完成对象的初始化工作。7. 类索引函数的参数类型必须为_或 _。8. 类对接口方法的实现时,在方法名称之前加上接口名,这叫做对接口方法的_实现,此时这个方法是这个类的_成员,不能通过类的实例来访问。9. 作为一种特殊的函数成员,重载类的操作符时,被重载的操作符必须被声明为公有的和_,并通过在关键字operator后跟操作符来声明。二、 判断题(每小题1分,共5分) 1. 一个类只能有一个析构函数,且不能有参数和返回类型,也不能是静态的。( )2. 类的静态构造函数为类的所有对象共享,并且只在首次使用该类时被调用。( )3. 派生类可以继承基类的所有成员,并增加自己的成员进行功能扩张。( )4. 接口方法不能是静态的,也不能使用任何访问限制修饰符。( )5. 如果一个类被声明为抽象的,则它的派生类不可以被声明为抽象类。( )三、 选择题(每小题2分,共10分) 1. 在设计一个类时,如果不希望外部对象访问该类成员,应定义为()。A) 私有的或保护的 B) 公有的 C) 保护的或者共有的 D)公有的或者私有的2. 在类中未说明访问权限的情况下,所有成员都是()的A) 共有的 B) 私有的 C) 内部的 D) 保护的3. 关于数组型参数下面那个说法是错误的()A) 方法中只允许定义一个数组型参数;B) 数组型参数所定义的数组必须是一维数组;C) 数组型参数可以作为引用参数或者输出型参数使用;D) 数组型参数必须位于参数列表中的最后;4. 有如下程序片段: class Student public virtual string WhoYouAre() return I am a Student.; class PostStudent:Student public new string WhoYouAre() return I am a PostStudent.; static void Main() Student st = new PostStudent(); Console.WriteLine(st.WhoYouAre(); 则正确的执行结果是()。 A) I am a Student. B) I am a PostStudent. C) st.WhoYouAre() D)异常退出5. 已知st是类Student的一个实例,read()是Student类的一个静态成员。如果要访问Student的read()成员,则下列()表达式是正确的。 A)st.read() B)st:read() C)Student.read() D)Student:read()四、 简答题(每小题5分,共15分)1. 在面向对象的模型中,什么是类的多态性?C#是如何实现类的多态特性的?2. 什么是接口?如果一个类声明支持某个接口,那么该类必须遵循哪些规则?3. 请简单叙述委托发布和订阅的具体实现步骤。五、 阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。(每空2分,共20分)1. 定义一个 名称为Circle的类。产生一个Circle类一个半径为10.5的对象,并输出该对象的名称、半径面积等信息。 class Circle protected float _r;/圆的半径 public float R get return _r; set _r = value; public const double PI= 3.1415;/定一个双精度常量表示圆周率 public ;/定一个只读字段id,该字段数据类型为整型、初始值为0 public static string _name = Circle;/定一个字符串的名称 public Circle(float r)/创建一个有参构造函数 id = 1; _r = r; public float Area()/计算圆的面积 return Convert.ToSingle(_r * _r * PI); class Program static void Main(string args) Circle c = ;/创建一个半径为10.5的Circle实例 Console.WriteLine(该_name是0,id是1,半径r为2,面积是3, , , , c.Area(); 2. 阅读程序,按照要求在空白处填写正确的表达式。using System;namespace P5_5 public /声明一个类,该类名称为Vehicle private float speed; public float Speed get return speed; set speed = value; public Vehicle(float speed) /将形参speed复制给当前类的speed字段 public /声明一个虚方法,该方法原型为float Run(float distance) return distance / speed; public abstract void Speak(); public class Truck : Vehicle private float weight; public float Weight get return weight; private float load; public float Load get return load; public Truck(int weight, int load) : base(50) this.weight = weight; this.load = load; public new float Run(float distance) /重载 return (1 + load / Weight / 2) * base.Run(distance); public override void Speak() /重载 Console.WriteLine(叭.叭.); class Program static void Main() Vehicle v1 = new Train(); v1.Speak(); Console.WriteLine(行驶1000公里需0小时, v1.Run(1000); v1 = new Truck(16, 24); v1.Speak(); Console.WriteLine(行驶1000公里需0小时, v1.Run(1000); Console.ReadLine(); 程序的执行结果后,语句程序的输出为: 行驶1000千米需6.25小时 叭.叭. 六、 下面程序总共5处错误,请找出其中的错误(包括警告信息),并改正之。(每处错误2分,共10分)1. 程序代码如下:using System;namespace P10_4 class Program static void Main() Seaplane plane = new Seaplane(); Console.WriteLine(0空中飞行1000公里需1小时, plane, plane.Run(1000); /调用IFlyable接口Run方法 Console.ReadLine(); public interface IFlyable public float Run(float distance); public interface ISwimmable float Run(float distance); public class Seaplane : IFlyable, ISwimmable public float ISwimmable.Run(float distance) /显式实现Swimmable的Run方法 return distance / 50; float IFlyable.Run(float distance)/ 显式实现IFlyable的Run方法 return distance / 400.0; public class Automobile private float Speedget;set; public virtual float Run(float distance) return distance / Speed; public Automobile(float speed) Speed = speed; public class Amphicar : Automobile, ISwimmable public Amphicar(float speed) : base(speed) override float Run(float distance) return base.Run(distance) * 3; 七、 编程题(共20分)定义一个教师类Teacher,具体要求如下:1) 私有字段姓名name(string)、性别sex(SexFlag)、年龄age(int,=0)和工号 no(string)等信息,其中SexFlag为枚举类型,包括Male(表示男性)、Female(表示女性),并且sex字段缺省为男性。2) 定义一个公有字段number(int),实现Teacher类在内存中实例的个数;3) 定义公有读写属性Age用来访问age字段。4) 设计合理的构造函数,使得创建实例时可以设置姓名、性别、年龄和工号等信息。5) 重载ToString()方法,用来输出教师对象的信息,具体格式见后面描述。6)创建一个教师实例teacher(姓名-王五、性别男、年龄35、工号-01223),调用ToString()方法在屏幕按照下列格式显示teacher的信息:01223,王五,男,35岁7)要求必须按照一个完整的C#程序结构来写,保证程序正确运行。洛阳理工学院 2011/2012 学年 第一学期 期末考试试题卷(A)参考答案及评分标准课程:面向对象程序设计 适用班级:B090501/2/3/4 一、 填空题(每空1分,共20分)1. 属性 操作2. 泛化 依赖 泛化3. 命名空间 主程序方法 程序集4. 值类型 委托 类 接口5. 方法名称 参数列表6. 构造7. 整数 字符串8. 显式 私有9. 静态二、 判断题(每小题1分,共5分)1. 2. 3. 4. 5. 三、 选择题(每小题2分,共10分)1. A 2. B 3. C 4. A 5. C四、 简答题(每小题5分,共15分)1. 多态性是指同一个事物在不同条件下可以变现出不同的形态。(2分)在面向对象的语义中,多态通过在类中使用override关键字定义重载方法,其基类中将相同标识的方法声明为虚拟方法(2分),且二者访问权限应当相同(1分)。2. 接口是一种数据类型,它所描述的是功能契约,而不考虑与实现相关的任何因素(2分)。如果一个类声明支持一个接口,它就必须履行该接口的契约,及支持该接口中定义的所有方法。(1分)具体来讲,如果支持接口的类型是非抽象的,那么它必须支持接口中所有的方法,并为这些方法提供具体实现。(1分)如果支持接口的类型是抽象类,那么它必须支持接口中的所有方法,且并为这些方法提供具体的实现,要么声明为抽象的。(1分)3. 基本步骤是:1)定义委托类型,并在发布者类中定义一个该类型的公有成员;(1分)2)在订阅者类中定义委托处理方法;(1分)3)订阅者对象将其事件处理方法合并到发布者对象的委托成员上;(1分)4)发布者对象在特定的情况下激发委托,从而自动调用订阅者对象的委托处理方法;(2分)五、 阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。(每空2分,共20分)1. readonly int id =0 new Cirlce(10.5f) Circle. Name c.idc.R判分标准:大小写错误不给分2. abstract Vehicle this.speed =speed; virtual float Run(float distance) 行驶1000公里需6.25小时行驶1000公里需6.25小时判分标准:大小写错误不给分六、 下面程序总共5处错误,请找出其中的错误(包括警告信息),并改正之。(每处错误2分,共10分)1. plane.Run(1000)改为(IFlyable)plane.Run(1000)2. Iflyable接口定义中的public float Run(float distance);,改为 float Run(float distance);3. distance / 400.0;改为distance / 400;或者distance / 400.0f;4. public float ISwimmable.Run(float distance)改为float ISwimmable.Run(float distance)5. override float Run(float distance)改为public override float Run(float distance)判分标准:大小写错误不给分七、 编程题(共20分)using System;/ namespace program1 public enum SexFlag Male,Female public class Teacher private string name; private SexFlag sex = SexFlag.Male; private string no; private int age; public static int number =0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 乐山辅警考试题库2025(有答案)
- 出血血栓止血课件
- 2025高级导游综合知识考试全真模拟试题及答案
- 企业安全教育培训交警课件
- 出租车加油站安全培训课件
- 出入量与体重的课件
- 2025合同违约的补救策略
- 卫华招聘笔试题库2025
- 2025年LED照明系统合同能源管理合同
- 冲床安全培训课件
- QC主管转正述职报告
- 2024年大连银行授信审批部招聘笔试真题
- 支气管哮喘的护理个案分析
- 液压系统基础知识培训课件
- 《人脑的结构》课件
- T-GXAS 729-2024 胃脘痛脐灸技术操作规范
- 小学音乐开学第一课教学课件
- 消毒供应中心医疗废物处理
- 学校食堂菜谱及定价方案
- 《电商直播》中职全套教学课件
- 万象城商业年终总结
评论
0/150
提交评论