当前位置:首页 > 面向对象程序设计C++模拟试卷
int getx() { return x; } int gety() { return y; } };
class Circle : public Point { private: int r; public:
Circle(int a, int b, int c) : Point(a,b) { r = c; } int getr() { return r; }
float area() { return 3.14.159 * r * r; } };
面向对象程序设计C++模拟试卷
考试时间:90分钟
一.简答题(10分)
1.1 (3分)在C++中什么可以充当友元?友元是否可以继承,为什么? 答案:在C++中函数和类都可以充当友元,分别称为友元函数和友元类。(1分) 友元不可以继承,因为友元不是类的成员。(2分)
1.2(3分) 什么是纯虚函数?什么是抽象类?
答案: 纯虚函数是一种没有实现体的虚函数,该函数的实现要在定义它的类的派生类中实
现。(2分)
具有纯虚函数的类称为抽象类。抽象类是一种特殊的类,该类不能创建对象。(1分)
1.3 (4分)运算符重载有哪两种形式?这两种形式有何区别? 答案:运算符重载有两种形式:成员函数形式和友元函数形式。(1分)
区别:使用成员函数形式时,对单目运算符没有参数,对双目运算符仅有一个参数;使用友元函数形式时,对单目运算符有1个参数,对双目运算符有2个参数。成员函数方式可以继承,友元函数方式不能继承。(3分)
二.填空题(20分,每空2分)
2.1定义如下变量和数组
int i;
int x[3][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; 则下面语句的输出结果是 。
for(i = 0; i < 3; i++) cout << x[i][1] << '\\t'; 答案:2 5 8
2.2 若要把类bClass定义为类aClass的友元类,则应在类 的定义中加入语句 。
答案:aClass,friend class bClass
2.3 在C++中,模板可以分为 和 。 答案:函数模板,类模板
2.4 在公有继承中,派生类的对象可以访问基类中的 ;派生类的成员函数可以访问基类中的 。 答案:公有成员;公有成员和受保护成员
2.5 流程控制语句的基本控制结构有三种: 、 和 。 答案:顺序结构,循环结构,选择结构
三.单项选择题(20分,每题2分)
3.1 下列程序段的循环次数为 次。
int x = -10; while( ++x ) { }
A. 9
B. 10
C. 11
D. 无限
答案:A
3.2 已知枚举类型enum Day {Monday, Tuesday, Wednesday, Friday = 2}; 下列语句中, 是合法的。 A. Wednesday == Friday ? 1 : 0 C. Day day; day = Monday + 3; 答案:A
3.3 能正确表示逻辑关系“a大于等于10或a不大于0”的C++表达式是 。
B. Day day; day = 3; D. Tuesday = 4;
A. a >= 10 or a = 0 C. a >= 10 && a <= 0 答案:D
B. a >= 10 | a <= 10 D. a >= 10 || a <= 0
3.4 在函数定义前加上关键字inline,表示该函数被定义为 。 A. 重载函数 答案:B
3.5 在下面的类定义中,错误的语句是 。 class Sample { public:
Sample (int val); ~Sample(); private:
int a = 2.5; Sample(); }; 答案:C
3.6 下列对派生类的描述中,错误的是 。 A. 一个派生类可以作为另一个派生类的基类 B. 派生类至少有一个基类
C. 派生类的缺省继承方式为private
D. 派生类只继承了基类的公有成员和受保护成员 答案:D
3.7 实现运行时的多态性要使用 。 A. 重载函数 答案:D
3.8 下列C++变量定义语句中, 是合法的。
A. short _a = 1 - .1e-1; C. long do = 0xfdaL;
B. double b = 1 + 5e2.5; D. float 2_and = 1 – e-3;
B. 析构函数
C. 构造函数
D. 虚函数
// C // D
// A // B
B. 内联函数
C. 成员函数
D. 友元函数
答案:B
3.9 下列对类的构造函数和析构函数的描述中,正确的是 。
A. 构造函数可以重载,析构函数不能重载 B. 构造函数不能重载,析构函数可以重载 C. 构造函数和析构函数都可以重载 D. 构造函数和析构函数都不能重载 答案:A
3.10下列各函数的说明中,表示纯虚函数的是 。
A. virtual int vf(int);
B. void vf(int) = 0; D. virtual void vf(int) {}
C. virtual int vf(int) = 0; 答案:C
四.读程题(20分,每题5分)
4.1 给出下述源程序的运行结果。 #include
struct abc a[] = {20, x, 30, y}; p = a;
cout << *p->b << \ cout << (*p).a << \ cout << (++p)->a << \ cout << ++(*p).a << endl; }
答案:6, 20, 30, 31
4.2 阅读下列源程序: #include
共分享92篇相关文档