《(19)--期末复习面向对象程序设计.doc》由会员分享,可在线阅读,更多相关《(19)--期末复习面向对象程序设计.doc(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、一、单项选择题1. _不是面向对象程序设计的特征。A. 综合 B. 封装 C. 继承 D. 多态性2. “共同的接口,不同的行为”指的是_。A. 抽象 B. 封装 C. 代码重用 D. 多态3. C+语言是一种_语言。A. 纯面向过程 B. 纯面向对象 C. 混合型 D. 逻辑型4. 若想使用带默认形参值(缺省参数)的函数,默认形参值必须_定义。A. 按从左到右的顺序 B. 按从右到左的顺序 C. 全部 D. 只给最后一个参数5. 说明内联函数的关键字为_。 A. virtual B. static C. enum D. inline6. 内联函数适合于_。 A. 功能单一长度短小的函数 B.
2、 无参数、无返回值的函数C. 函数名称与功能对应得很贴切的函数 D. 被反复调用的公用函数7. 下列运算符中,不可以重载的运算符是_。A. B. : C. () D. =8. 下列关于类与对象的说法中,不正确的是_。 A. 对象是类的一个实例 B. 任何一个对象只能属于一个具体的类 C. 一个类只能有一个对象 D. 类与对象的关系和数据类型与变量的关系相似9. 下面有关重载函数的说法中正确的是_。 A. 重载函数必须具有不同的返回值类型 B. 重载函数形参个数必须不同 C. 重载函数必须有不同的形参列表 D. 重载函数名可以不同 10. 下列关于构造函数的描述中,错误的是_。 A. 构造函数可
3、以设置默认参数 B. 构造函数在定义类对象时自动执行 C. 构造函数可以是内联函数 D. 构造函数不可以重载11下列关于类与对象的说法中,不正确的是 ( ) ( A ) 对象是类的一个实例 ( B ) 任何一个对象只能属于一个具体的类 ( C ) 一个类只能有一个对象 ( D ) 类与对象的关系和数据类型与变量的关系相似12. 下面有关重载函数的说法中正确的是( ) ( A )重载函数必须具有不同的返回值类型 ( B )重载函数形参个数必须不同 ( C )重载函数必须有不同的形参列表 ( D )重载函数名可以不同 13. 下列关于构造函数的描述中,错误的是( ) ( A )构造函数可以设置默认
4、参数 ( B )构造函数在定义类对象时自动执行 ( C )构造函数可以是内联函数 ( D )构造函数不可以重载1)Differences between declaring pointers and objects of the same class.2)Constructors can be overloaded such as copy constructors.14有关析构函数的说法不正确的是( )(A)一个类中析构函数有且只有一个(B)析构函数无任何函数返回类型(C)析构函数和构造函数一样可以有形参(D)析构函数作用是在对象被撤消时收回先前分配的内存15对于重载X类的前缀方式+的友元函
5、数为( )(A) X operator+(X&) (B) X X:operator+( ) (C) X operator+(X&, int) (D) X X:operator+(int i)二、填空题1. 由于数据隐蔽的需要,静态数据成员通常被说明为_ _ _(公有or私有)的,而通过定义公有的_ _函数来访问它的初始值。2. a是Try类的对象,Try类有一个静态函数成员GetCount(),则访问该静态函数成员的写法有两种:_ _和_ _。我们建议的符合静态成员函数特性的写法是_ _。3. 在函数形参表之后函数体之前加_ _关键字可以防止该函数改变数据成员的值。4. A类是B类的友元类,是
6、指A类的任一_ _都是B类的_ _。5. Table类是Point类的友元类,是指_ _类的任一成员函数都是_ _类的友元函数。三、按要求回答问题1. 阅读程序,写出运行结果,并对标记行进行解释。#include using namespace std;class Clockpublic:Clock();void SetTime(int NewH, int NewM, int NewS); void ShowTime();Clock()private:int Hour, Minute, Second;Clock:Clock()Hour=0;Minute=0;Second=0;void Cloc
7、k:SetTime(int NewH, int NewM, int NewS) /1) 该语句的作用是_Hour=NewH;Minute=NewM;Second=NewS;void Clock:ShowTime()coutHour:Minute:Secondendl;Clock globClock; int main()coutFirst time output:endl;globClock.ShowTime();globClock.SetTime(8,30,30);Clock myClock(globClock); /2) 该语句的作用是_coutSecond time output:end
8、l;myClock.ShowTime();3) 以上程序的运行结果: 2. 阅读程序,回答问题,写出运行结果(10分)#include using namespace std;class Point public: Point(int xx=0,int yy=0) (1)该函数的作用: X=xx; Y=yy; coutconstructing.endl; int getx()return X; int gety()return Y; Point(Point & p); Point() coutdestructing.endl; private: int X, Y;Point:Point(Poi
9、nt & p) (2)该函数的作用: X=p.X+1; Y=p.Y+1; coutcopy constructing.endl;void fun1(Point p)coutfun1endl;void main()Point p1(2,3);Point p2(p1); fun1(p1); (3)执行以上程序的运行结果: 四、判断下列程序中有几处错误,指出是何种错误,并对有标号的代码行进行解释。1)程序1:class C private: int a; public: C(int x)a=x; void set(int p) a = p;int main() C c1(1); c1.set(2);
10、2)程序2:#include using namespace std;class Try public:Try() data = 1; count +; (1)该函数的作用: void f1();void f2();void f3();void g() cout count endl; ;private:int data;static int count;int data = 2; void Try:f1()int data = 10; cout data endl;void Try:f2()cout :data endl; /(2)该语义的作用: void Try:f3()int data
11、= 20; cout Try:data endl; void main()count = 0; Try a;a.f1();a.f2();a.f3();a.g();(3) 执行以上程序的运行结果: 四、 编程题 1. 给定如下描述的二维坐标中的point类:class Point public:Point (double x0, double y0) x=x0;y=y0;/ 构造函数,给x,y赋初值double GetX( ) return x;double GetY( ) return y;double distance(Point &another);/ 与另一个点(Point对象)求距离private:double x, y;补充程序,实现以下功能:a)实现单参数成员函数distance:计算两点间的距离;b)在main函数中创建两个点a(10,20)、b(40,60),输出形如“(10, 20)和(40, 60)的距离是50”的结果,其中距离值通过a.distance(b)或b.distance(a)计算出来;2. 创建一个student类,该类中有字符数组,表示姓名、学号、年级和专业。把表示构造函数、改名、显示信息的函数的原型放在类定义中,构造函数初始化每个成员,显示函数把完整的对象数据输出来。其中的数据成员是保护的,函数是公共的。编写主函数并测试。第7页,共7页