1、C+面向对象程序设计模拟试题5C+面向对象程序设计模拟试题五一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中,只有一个是苻合题目要求的。请将其代码填写在题后的括号内。错选,多选或未选均无分。1下列对类的构造函数和析构函数描述正确的是( )。A)构造函数可以重载,析构函数不能重载B)构造函数不能重载,析构函数可以重载C)构造函数可以重载,析构函数可以重载D)构造函数不能重载,析构函数不能重载2在函数定义前加上关键字“inline”,表示该函数被定义为( )。A)重载函数 B)内联函数C)成员函数 D)普通函数3下面有关重载函数的说明中, ( )是正确的。A)重载
2、函数必须具有不同的返回值类型B)重载函数形参个数必须不同C)重载函数一般具有不同的形参列表D)重载函数名可以不同4下列有关类与对象的说法中,( ) 是不正确的。A)对象是类的一个实列B)任何一个对象只能属于一个具体的类C)一个类只能有一个对象D)类和对象的关糸和数椐类型与变量的关糸类似5已知: Print( )函数是一个类的常成员函数,它无返回值,下列表示中,正确的是 ( )。A)void Print( ) const; B)const void Print( ); C)void const Print( ); D)void Print(const)6假定Myclass为一个类,那么下列的函数
3、说明中( )为该类的析构函数。A)void Myclass( ); B)Myclass( int n);C)Myclass( ); D)Myclass( )7下面类的定义中有( ) 处错误。 class myclass int i=0; public: void myclass( ); myclass(value); ; A)1 B)2 C)3 D)48说明虚函数的关键字是( )。A)inline B)virtual C)define D)static9cout是某个类的标准对象的引用,该类是( )。 A)ostream B)istream C)stdout D)stdin10如果class类
4、中的所有成员在定义时都没有使用关键字public、private或protected,则所有成员缺省定义为( )。 A)public B)protected C)private D)static 二、填空题(本大题共5小题,每小题2分,共10分)不写解题过程, 将正确的答案写在每小题的空格内,错填或不填均无分。1重载运算苻“-” 的函数名为( )。 2C+中类的用途有两种, 一种是类的实例化, 即生成类的对象, 另一种是通过( ),派生出新的类。3派生类中的成员不能直接访问基类中的( )成员。4编译时多态性可以用( )函数实现。5使用new建立的动态对象在不用时应该用( )删除,以便释放所占用
5、空间。 三、程序分析题(本大题共6小题,每小题5分,共30分)给出下面各程序的输出结果。1若有以下程序:#include using namespace std; class A int a; public: A(int aa = 0 ) a = aa; A( ) cout Destructor A! a endl; ;class B: public A int b;public: B(int aa = 0, int bb = 0): A(aa) b = bb; B() cout Destructor B! b endl; ;int main() B x(5), y(6,7); return
6、0; 上面程序的输出结果为:2若有以下程序:#include using namespace std; class Point int x, y; public: Point() x = 0; y = 0; void SetPoint(int x1, int y1) x = x1; y = y1; void DisPoint() cout x= x , y= y SetPoint(5, 12); p-DisPoint(); delete p; return 0; 上面程序的输出结果为:3若有以下程序:#include using namespace std; class Sample int
7、n; public: Sample (int i) n =i; void Add() s += n; static int s; void Dis() cout s endl; ;int Sample:s = 0;int main() Sample a(2), b(5), c(8); a.Add( ); b.Add( ); c.Dis( ); return 0; 上面程序的输出结果为:4若有以下程序: #include using namespace std; class Base public: void Fun() cout 1 endl; ;class Derived:public Ba
8、se public: void Fun() cout 2 Fun(); a.Fun(); return 0;上面程序的输出结果为:5若有以下程序:#include using namespace std; templatevoid Fun(T1 &x, T2 &y) if (sizeof(T1) sizeof(T2) ) x = (T1)y; else y = (T2)x;int main() double d; int i ; d = 99.99; i = 88; Fun(d,i); cout d= d i= i endl; return 0; 上面程序的输出结果为:6阅读下面程序,写出输出
9、结果。#include using namespace std;class Point public: Point (int a = 0, int b = 0): x(a), y(b) int GetX() const return x; int GetY() const return y; void SetX(int a) x = a; void SetY(int a) y = a; private: int x; int y; ;int main() Point p1; const Point p2(3, 4); cout p1.GetX() endl; p1.SetX(1); cout
10、p1.GetX() endl; p1.SetY(2); cout p1.GetY() endl; cout p2.GetX() endl; cout p2.GetY() endl; return 0;上面程序的输出结果为:四、完成程序填题(本大题共4个小题,每小题3分,共12分)下面程序都留有空白,请将程序补充完整。1将如下程序补充完整。#include using namespace std; class Testprivate: int n; public: Test(int n) 1 ; / 实始化数据成员n为形能n void Show() const cout n n或Test:n2将
11、如下程序补充完整。#include using namespace std; class Aprivate: int a; public: A(int x) a = x; void Show() const cout a: a endl; ;class B: public A protected: int b; public: B(int x, int y): 2 b = y; / 初始化a为x,y为b void Show() const A:Show(); cout b: b endl; ;int main() B obj(5, 18); obj.Show(); return 0; 3将如下
12、程序补充完整。#include using namespace std; class Testprivate: static int num; public: Test() num+; Test() num-; static void ShowObjectNum() cout num endl; ; 3 / 静态数据成员num初始化为0int main() Test:ShowObjectNum(); Test obj; Test:ShowObjectNum(); return 0; 4将如下程序补充完整。#include using namespace std; class Complexpr
13、ivate: double realPart; double imagePart; public: Complex(double real = 0, double image = 0): realPart(real), imagePart(image) Complex 4 (const Complex &a) const / 重载加法运算符+ return Complex(realPart + a.realPart, imagePart + a.imagePart); void Show() const cout realPart + imagePart i endl;int main() C
14、omplex a(1, 2), b(2, 6), c; c = a + b; cout a=; a.Show(); cout b=; b.Show(); cout c=; c.Show(); return 0; 五、编程题(本大题共2小题,第1小题12分,第2小题16分,共28分)1设计一个类DateInfo,要求其满足下述要求: (1)要求有一个无参的构造函数,其初始的年、月、日分别为:2010,6,8。 (2)要求有一个带参数的构造函数,其参数分别对应年、月、日。 (3)要求用一个成员函数实现日期的设置。 (4)要求用一个成员函数实现输出日期。 2定义Staff(员工)类,由Staff分别
15、派生出Saleman(销售员)类和Manager(经理)类,要求:(1)在Staff类中包含的数据成员有编号(num)、姓名(name)、出勤率(rateOfAttend)、基本工资(basicSal)和奖金(prize)。在Saleman类中还包含数据成员销售员提成比例(deductRate)和个人销售额(personAmount),在Manager类中还包含数据成员经理提成比例(totalDeductRate)和总销售额(totalAmount) (2)各类人员的实发工资公式如下:员工实发工资 = 基本工资 + 奖金 * 出勤率销售员实发工资 = 基本工资 + 奖金 * 出勤率 + 个人销售额 * 销售员提成比例经理实发工资 = 基本工资 + 奖金 * 出勤率 + 总销售额 * 经理提成比例(3)每个类都有构造函数、输出基本信息函数(Output)和输出实发工资函数(OutputWage)。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1