面向对象程序设计C++模拟试卷

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

if (j > 1000) break;

}

C. int n = 0; do { ++n;

D. int m = 36; while( m ) --m;

} while( n >= 0) 答案:D

3.4 关于虚函数的描述中,正确的是 。 A. 虚函数是一个静态成员函数

B. 虚函数是一个非成员函数

C. 虚函数既可以在函数说明时定义,也可以在函数实现时定义 D. 派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型 答案:D

3.5下列常量中, 不是C++语言的整型常量。

A. 01 答案:C

3.6 下列关于运算符重载的描述中,正确的是 。

A. 运算符重载不可以改变运算符的语法结构 B. 运算符重载可以改变运算符的优先级 C. 运算符重载可以改变运算符的结合性 D. 运算符重载可以改变操作数的个数 答案:A

3.7 下列关于派生类析构函数的叙述中,错误的是 。

A. 派生类析构函数的调用顺序与构造函数调用顺序相反 B. 派生类析构函数是不能从基类继承

C. 派生类析构函数的处理顺序为:派生类新增的普通成员,派生类新增的对象成员,所有从基类继承的成员

D. 派生类析构函数的处理顺序为:所有从基类继承的成员,派生类新增的普通成员,派生类新增的对象成员 答案:D

B. 0x11

C. 081

D. -32768

3.8 下列关于C++中类的叙述,其中错误的是 。

A. 类的构造函数在定义对象时自动执行 B. 析构函数不能够重载

C. 只有类的成员函数才能访问类中的私有成员 D. 在类中,成员缺省的访问权限是private 答案:C

3.9下面的函数中,静态成员函数不能访问的是 。

A. 静态数据成员

B. 静态成员函数 D. 非静态数据成员

C. 类以外的函数和数据 答案:D

3.10 假设A是一个类,那么执行语句“A a, b(3), *p;”,调用了 次构造函数。

A. 2 答案:A

B. 3

C. 4

D. 5

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

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

int x[] = {5, 4, 3, 2, 1}; int *p = &x[1]; int a = 10, b;

for(int i = 3; i >= 0; i--)

b = (*(p+i) < a) ? *(p+i) : a; cout << b << endl; }

答案: 4

4.2 给出下述源程序的运行结果。 #include void fun(int, int&); void main( ) { int a, b; fun(5, a); fun(8, b);

cout << \}

void fun(int i, int& j)

{ j = i * 3; } 答案: a + b = 39

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

{ double d = 2.2, e = 3.3; double &rd = d, &re = e;

cout << rd+re << \ rd = 4.4;

cout << rd+re <<\}

答案: 5.5, 5.5 7.7, 7.7

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

A() { a1 = a2 = 0; cout << \

A(int i, int j) { a1 = i; a2 = j; cout << \void print() { cout << \ private:

int a1, a2; };

void main() { A x, y(3,9); x.print(); y.print(); }

答案:Default constructor called.

Constructor called. a1 = 0, a2 = 0 a1 = 3, a2 = 9

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

5.1 定义两个重载函数,分别能求矩形和圆的周长,然后在main函数中对这两个函数进行调用并测试其功能。求矩形的周长时需要输入矩形的长和宽;求圆的周长时需要输入圆的半径。 参考程序:

#include const double PI = 3.14;

double length(double r) { return 2 * r * 3.14; } double length(double l, double w) { return 2*l + 2&w; } void main() { double r, l, w;

cout << \请输入圆的半径:\ cin >> r;

cout << \请输入矩形的长和宽:\ cin >> l >> w;

cout << \圆的周长为:\ cout << \矩形的周长为:\}

5.2 设计一个整型数组类,要求实现以下功能: (1)创建指定大小的数组;

(2)判断数组中的元素个数是否已达到数组的最大元素数; (3)判断数组中是否有元素; (4)输出数组中的各个元素;

参考程序:

#include using namespace std;

const int MAX_LEN = 100; // 默认的数组最大容量 const int NO = -1;

class MyArray { private:

int *a; // 数组元素 int iMaxSize; // 数组最大容量 int iCurrentSize; // 数组中当前元素数 public:

MyArray(int size = MAX_LEN); // 创建大小为size的数组

// 若不给出实参,则按照默认大小创建数组 bool full(); // 判断数组是否达到最大元素数 bool empty(); // 判断数组中是否有元素 void printArray(); // 输出数组中的所有元素 };

MyArray :: MyArray(int size) { a = new int[size];

iMaxSize = size; iCurrentSize = 0; }

bool MyArray :: full() {

if(iCurrentSize == iMaxSize) return true; // 数组已满 else return false; // 数组未满 }

bool MyArray :: empty() {

if(iCurrentSize == 0) return true; // 数组为空 else return false; // 数组不为空 }

void MyArray :: printArray() {

for(int i = 0; i < iCurrentSize; i++) {

cout << \ if(i % 5 == 0) cout << endl; } }

联系合同范文客服:xxxxx#qq.com(#替换为@)