面向对象程序设计C++模拟试卷 联系客服

发布时间 : 星期日 文章面向对象程序设计C++模拟试卷更新完毕开始阅读

3.7 下列关于对象数组的描述中, 是错误的。

A. 对象数组的下标是从0开始的 B. 对象数组的数组名是一个常量指针 C. 对象数组的每个元素是同一个类的对象 D. 对象数组只能赋初值,而不能被赋值 答案:D

3.8 下列关于私有继承的描述中,错误的是 。

A. 基类的公有成员和保护成员被继承后作为派生类的私有成员,派生类的其他成员可以直接访问它们

B. 基类的公有成员和保护成员被继承后作为派生类的私有成员,派生类的其他成员不能直接访问它们

C. 基类的私有成员,派生类的成员和派生类的对象都无法访问 D. 派生类的对象无法访问基类 答案:B

3.9 应在下列程序中的空缺处填入的正确语句是 。

#include class Base { public:

void fun() { cout << \};

class Derived : public Base { void fun() {

; // 显式调用基类的成员函数fun() cout << \ } }; A. fun() 答案:C

3.10 下列关于类模板的描述中,不正确的是 。

A. 用类模板定义一个对象时,不能省略实参 B. 类模板只能有类型参数

B. Base.fun()

C. Base::fun()

D. Base->fun()

C. 类模板本身在编译中不会生成任何代码 D. 类模板的成员函数都是模板函数 答案:B

四.读程题(20分,每题5分)

4.1 给出下述源程序的运行结果。 #include #include void main( ) {

char *p1, *p2, s[50] = \ p1 = \ p2 = \

strcpy(s+2, strcat(p1+2, p2+1)); cout << s << endl; }

答案:xycdBCD

4.2给出下述源程序的运行结果。 #include class Base { public:

void fun() { cout << \};

class Derived : public Base { public: void fun() {

cout << \ } };

void main() { Derived a; Base *p = &a; (*p).fun(); a.fun();

} 答案:12

4.3 给出下述源程序的运行结果。 #include

int add(int a, int b = 5); void main() { int m = 5;

cout << \

cout << \

cout << \}

int add(int x, int y) { return x + y; } 答案:sum1 = 10 sum2 = 15 sum3 = 20

4.4 给出下述源程序的运行结果。 #include class A { private: int a, b; public:

A(int i, int j) { a = i; b = j; }

void Move(int x, int y) { a += x; b += y; }

void Show() { cout << \};

class B : private A { public:

B(int i, int j, int k, int l) : A(i, j) { x = k; y = l; } void Show() { cout << x << \ void fun() { Move(3,5); } void f1() { A :: Show(); } private: int x, y; };

void main() { A e(1, 2); B d(3, 4, 5, 6); e.Show(); d.fun(); d.Show(); d.f1(); }

答案:(1, 2)

5, 6 (6. 9)

五.编程题(30分,每题15分)

5.1编写一个函数int deleteARR(int a[], int count),其功能是去掉元素个数为count的整型数组a中的重复元素,并将不重复元素的个数作为函数的返回值。 参考程序:

#include

int deleteARR(int a[], int count) {

int k = 0, j = 1; while(j < count) { if(a[k] != a[j]) a[++k] = a[j]; j++; }

return k+1; // 返回数组中不重复元素的个数 }

5.2 设计类Point,包含横、纵两个坐标数据。由类Point派生出类Circle,Circle中包含圆的半径数据,并能够计算圆的面积。给出类Point和Circle的定义与实现。 参考程序:

#include class Point { private: int x, y; public:

Point(int a, int b) { x = a; y = b; }