当前位置:首页 > 面向对象程序设计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
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
cout << \}
void fun(int i, int& j)
{ j = i * 3; } 答案: a + b = 39
4.3给出下述源程序的运行结果。 #include
{ 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
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
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
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; } }
共分享92篇相关文档