cout << 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
class Test {
private: int n;
public: Test(int n) { this-> n=n ; } // 实始化数据成员n为形能n void Show() const { cout << n << endl; } };
int main() { Test i(108); i.Show(); return 0; }
参考答案:this->n或Test::n
2.将如下程序补充完整。 #include
class A {
private: int a;
public: A(int x) { a = x; } void Show() const { cout << \ };
class B: public A {
protected: int b;
public: B(int x, int y): A(x) { b = y; } // 初始化a为x,y为b void Show() const { A::Show(); cout << \ } };
int main() { B obj(5, 18); obj.Show(); return 0; }
3.将如下程序补充完整。
#include
class Test {
private: static int num;
public: Test() { num++; } ~Test() { num--; } static void ShowObjectNum() { cout << num << endl; }
};
static Text::num=0 int Test::num = 0 // 静态数据成员num初始化为0
int main() { Test::ShowObjectNum(); Test obj; Test::ShowObjectNum(); return 0; }
4.将如下程序补充完整。 #include
class Complex {
private: double realPart; double imagePart;
public: Complex(double real = 0, double image = 0): realPart(real), imagePart(image){ } Complex operator + (const Complex &a) const // 重载加法运算符+ { return Complex(realPart + a.realPart, imagePart + a.imagePart); } void Show() const { cout << realPart << \};
int main() { Complex a(1, 2), b(2, 6), c; c = a + b; cout << \ cout << \ cout << \ return 0; }
五、编程题(本大题共2小题,第1小题12分,第2小题16分,共28分) 1.设计一个类DateInfo,要求其满足下述要求:
(1)要求有一个无参的构造函数,其初始的年、月、日分别为:2010,6,8。 (2)要求有一个带参数的构造函数,其参数分别对应年、月、日。 (3)要求用一个成员函数实现日期的设置。 (4)要求用一个成员函数实现输出日期。
2.定义Staff(员工)类,由Staff分别派生出Saleman(销售员)类和Manager(经理)类,要求:
(1)在Staff类中包含的数据成员有编号(num)、姓名(name)、出勤率(rateOfAttend)、基本工资(basicSal)和奖金(prize)。在Saleman类中还包含数据成员销售员提成比例(deductRate)和个人销售额(personAmount),在Manager类中还包含数据成员经理提成比例(totalDeductRate)和总销售额(totalAmount) (2)各类人员的实发工资公式如下:
员工实发工资 = 基本工资 + 奖金 * 出勤率
销售员实发工资 = 基本工资 + 奖金 * 出勤率 + 个人销售额 * 销售员提成比例 经理实发工资 = 基本工资 + 奖金 * 出勤率 + 总销售额 * 经理提成比例
(3)每个类都有构造函数、输出基本信息函数(Output)和输出实发工资函数(OutputWage)。
C++面向对象程序设计模拟试题五参考答案
一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中,只有一个是苻合题目要求的。请将其代码填写在题后的括号内。错选,多选或未选均无分。 1.A) 6.D)
2.B) 7.C)
3.C) 8.B)
4.C) 9.A)
5.A) 10.C)
二、填空题(本大题共5小题,每小题2分,共10分)不写解题过程, 将正确的答案写在每小题的空格内,错填或不填均无分 1.参考答案:oprator- 2.参考答案:继承 3.参考答案:私有 4.参考答案:重载 5.参考答案:delete
三、程序分析题(本大题共6小题,每小题5分,共30分)给出下面各程序的输出结果。 1.参考答案: Destructor B! 7 Destructor A! 6 Destructor B! 0 Destructor A! 5
2.参考答案:x=5, y=12 3.参考答案:7 4.参考答案: 1 2
5.参考答案:d=88i=88 6.参考答案: 0 1 2 3 4
四、完成程序填题(本大题共4个小题,每小题3分,共12分)下面程序都留有空白,请将程序补充完整。
1.参考答案:[1] this->n = n或Test::n = n 2.参考答案:[2] A(x)
3.参考答案:[3] int Test::num = 0; 4.参考答案:[4] operator+