当前位置:首页 > 面向对象程序设计C++模拟试卷
4.4给出下列程序的运行结果。 #include
Point(int i, int j) { x = i; y = j; }
void Print() { cout << '(' << x << ','<< y << ')' << endl; } void operator += (Point p) { x += p.x; y += p.y; } void operator -= (Point p) { x -= p.x; y -= p.y; } private: int x, y; };
void main() {
Point P1(5, 7), P2(4, 3); P1.Print(); P2.Print(); P1 += P2; P1.Print(); P2 -= P1; P2.Print(); }
答案:(5,7)
(4,3) (9,10) (-5,-7)
五、编程题(30分,每题15分)
5.1定义并实现一个类Myst,使下列语句能够正常运行。
Myst x(3.2), y(5,5), z(0.0); z = 8.9 – y; y = x – 6.3; 参考程序:
#include
double v; public:
Myst(double d) { v = d; }
Myst operator – (double d) { v = v - d; return v;} friend Myst operator - (double d, Myst m); };
Myst operator – (double d, Myst m) { return d - m.v; }
5.2 编写能统计某个字符在字符串中出现次数的函数,该函数能利用引用的方式将统计结果带回给主调函数。编写该函数,利用main函数调用并测试它。 参考程序:
#include
void cal(char *s, char ch, int &rp) { while (*s)
if( *s++ == ch) rp++; }
void main() {
char *string = new char[MAX]; char ch;
int result = 0;
cout << \请输入一个字符串:\ cin >> string;
cout << \请输入一个字符:\ cin >> ch;
cal(string, ch, result);
cout << \该字符在串中出现的次数为:\}
面向对象程序设计C++模拟试卷
考试时间:90分钟
一.简答题(10分)
1.1(3分) 派生类与基类之间是什么关系?类与对象之间是什么关系? 答案:派生类和基类之间是继承关系,派生类继承了基类。(2分) 类和对象之间是实例化关系,对象是类的实例。(1分)
1.2(3分) 构造函数的作用是什么?在创建派生类的对象时,应按照怎样的顺序调用构造函数?
答案:构造函数的作用是创建对象并对其进行必要的初始化。(1分)
构造函数调用顺序:基类构造函数、子对象类构造函数(如果有)、派生类构造函数。(2分)
1.3 (4分)C++提供了哪些循环语句?它们各自的特点是什么? 答案:C++提供了三种循环语句for、while和do-while。(1分)
while循环语句先判断是否满足循环条件,如果满足循环条件,则执行一次循环体,
再判断是否执行下一次循环,否则退出循环。(1分)
do-while循环语句先执行一次循环体后再判断是继续执行循环体还是退出循环。(1
分)
for循环先设置循环变量的初值,再判断是执行循环体还是退出循环体。如果执行了
循环体,再改变循环变量值后,判断是执行下一次循环体还是退出循环,依此类推。(1分)
二.填空题(20分,每空2分)
2.1 表示逻辑关系“a大于等于8或者a小于等于5”的C++表达式是 。 答案:a >= 8 || a <= 5
2.2 break语句在循环结构中的功能是 ,continue语句的功能是 。 答案:退出其所在的循环,结束本次循环
2.3 友元可以是 ,也可以是 。 答案:类,函数(答案顺序可以交换)
2.4 有如下程序: #include
char s1[20], s2[20]; int i = 0, j = 0; cin >> s1 >> s2;
while (s1[i] != '\\0') i++; do {
s1[i] = s2[j]; i++; j++;
} while (s2[j-1] != '\\0'); cout << s1 << endl; }
如果为程序输入:abcdef 1234567,执行程序后的输出结果是: 。 答案:abcdef1234567
2.5 是用来初始化类的数据成员的一种特殊的成员函数;对象消失时自动执行的成员函数称为 。 答案:构造函数,析构函数
2.6 如果类A继承了类B,则类A称为 ,类B称为 。 答案:派生类,基类
三.选择题(20分,每题2分)
3.1 下列常量中, 是C++语言的浮点型常量。
A.0x12
B. -12345e-3
C. 1e0.5
D. e-5
答案:B
3.2 字符串常量\的字符个数是 。
A. 3
B. 4
C. 5
D. 6
答案:D
3.3 下列有关设置函数参数默认值的描述中, 是正确的。
A.对设置函数参数默认值的顺序没有任何规定 B.函数具有一个参数时不能设置默认值
C.默认参数要设置在函数的定义语句中,而不能设置在函数说明语句中 D.设置默认参数可使用表达式,但表达式中不可用局部变量
共分享92篇相关文档