第 PAGE 7 页 共 NUMPAGES 7 页
学院 2011/2012 学年 第一学期 面向对象程序设计 期末考试试题卷(A)
考试时间:120分钟
填空题(每空1分,共20分)
客观世界中的事物都是对象。对象具有自己的______,用来描述对象的静态特征;而对象的______用于描述对象的动态特征。
在面向对象的模型中,对象之间的关系可在类级别上概述为聚合、______、______和一般关联等四种。其中基类和派生类之间的关系属于______关系。
C#程序的基本结构包括注释 、______、______、______和类型及其成员等五部分。
数据类型是对客观数据对象的抽象,C#语言中的数据类型分为引用类型和______两大类。其中引用类型包括______、______、______和数组等。
方法是最基本的函数成员,对象所能执行的操作都是通过方法来定义的。方法应该包括返回类型、______、______和执行体等4个部分。
类的______函数名称与类名相同,且不能声明返回类型,其代码主要完成对象的初始化工作。
类索引函数的参数类型必须为______或 ______。
类对接口方法的实现时,在方法名称之前加上接口名,这叫做对接口方法的______实现,此时这个方法是这个类的______成员,不能通过类的实例来访问。
作为一种特殊的函数成员,重载类的操作符时,被重载的操作符必须被声明为公有的和______,并通过在关键字operator后跟操作符来声明。
判断题(每小题1分,共5分)
一个类只能有一个析构函数,且不能有参数和返回类型,也不能是静态的。
( )
类的静态构造函数为类的所有对象共享,并且只在首次使用该类时被调用。
( )
派生类可以继承基类的所有成员,并增加自己的成员进行功能扩张。
( )
接口方法不能是静态的,也不能使用任何访问限制修饰符。
( )
如果一个类被声明为抽象的,则它的派生类不可以被声明为抽象类。
( )
选择题(每小题2分,共10分)
在设计一个类时,如果不希望外部对象访问该类成员,应定义为()。
A) 私有的或保护的 B) 公有的 C) 保护的或者共有的 D)公有的或者私有的
在类中未说明访问权限的情况下,所有成员都是()的
A) 共有的 B) 私有的 C) 内部的 D) 保护的
关于数组型参数下面那个说法是错误的()
A) 方法中只允许定义一个数组型参数;
B) 数组型参数所定义的数组必须是一维数组;
C) 数组型参数可以作为引用参数或者输出型参数使用;
D) 数组型参数必须位于参数列表中的最后;
有如下程序片段:
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)异常退出
已知st是类Student的一个实例,read()是Student类的一个静态成员。如果要访问Student的read()成员,则下列()表达式是正确的。
A)st.read() B)st::read() C)Student.read() D)Student::read()
简答题(每小题5分,共15分)
在面向对象的模型中,什么是类的多态性?C#是如何实现类的多态特性的?
什么是接口?如果一个类声明支持某个接口,那么该类必须遵循哪些规则?
请简单叙述委托发布和订阅的具体实现步骤。
阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。(每空2分,共20分)
定义一个 名称为Circle的类。产生一个Circle类一个半径为10.5的对象,并输出该对象的名称、半径