当前位置:首页 > 面向对象程序设计C++模拟试卷
if( i < j ) j -= i; }
return k / i; }
int f2(int i, int j) { while (i != j) { if( i > j ) i -= j; if( i < j ) j -= i; } return i; }
void main() { int a, b;
cout << \ cin >> a >> b; int m = f1(a, b); int n = f2(a, b);
cout << m << \}
(1)说明该程序的功能。
(2)若从键盘输入6和9,给出该程序的输出结果。
答案:程序的功能:求两个正整数的最小公倍数和最大公约数。
运行结果:18,3
4.3 给出下述源程序的运行结果。 #include
do {
switch (a % 2) {
case 1: a--; break; case 0: a++; break; } a--;
cout << a << endl; }while(a > 0) }
答案:5 3 1 -1
4.4 指出下列程序中有错误的语句,并说明错误原因。 #include
Sample(int i) { n = i; } void setValue(int i) { n = i; }
void display() { cout << \};
void main() {
const Sample a(10); a.setValue(5); a.display(); }
答案:错误语句:a.setValue(5)
原因:a是常量对象,其数据成员的值不能改变
五.编程题(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 定义一个类Area求圆的面积,该类有两个私有数据成员radius和area,两个公有成员函数:get_radius()(用来输入radius的值,并计算area的值)和disp_area()(用来输出圆的面积)。
参考程序:
#include
void get_radius() { cout << \请输入半径:\ cin >> radius;
area = PI * radius * radius; }
void dip_area() {
cout << \圆的面积为:\ } };
面向对象程序设计C++模拟试卷
考试时间:90分钟
一.简答题(10分,每题2分)
1.1(3分) 运算符new和delete的功能分别是什么?
答案:运算符new的功能是创建动态对象;delete的功能是释放由new创建的动态对象。
1.2(3分)分别给出至少三种C++的基本数据类型、组合数据类型。
答案:基本数据类型:整型、浮点型、字符型、布尔型、空值型(给出3种即可) 组合数据类型:指针类型、引用类型、数组类型、枚举类型、结构类型(给出3种即
可)。
1.3(4分)什么是内联函数?为什么要引进内联函数?
答案:用inline关键字说明的函数被称为内联函数。
引入内联函数的目的是提高调用频繁、但代码又不大的函数的工作效率。
二.填空题(20分,每空2分)
2.1 C++中的重载函数至少要在 、 或 上有所不同。 答案:参数个数;参数类型;参数顺序
2.2 在C++中,类A的每一个非静态成员函数都有一个隐藏的指针类型的形参 ,它指向当前正在操作的对象,其类型为 。 答案:this,A* const
2.3 对于双目运算符,以成员函数方式重载时,有 个参数;以友元函数方式重载时,有 个参数。 答案:1,2
2.4派生类对基类的继承有三种方式: 、 和 。 答案:私有继承、公有继承、保护继承(答案顺序可以打乱)
三.单项选择题(20分,每题2分)
3.1 在“int a = 10, *p = &a;”语句中,p的值是 。 A. 10 答案:C
3.2 在一个被调用函数中,关于return语句使用的描述, 是错误的。 A.被调用函数中可以不使用return语句 B. 被调用函数中可以使用多个return语句
C. 被调用函数中如果有返回值,就一定要有return语句 D. 被调用函数中,一个return语句可返回多个值给调用函数 答案:D
3.3下列程序段中,不是死循环的是 。
A. int j = 100; while (1) { j = j % 100 + 1;
B. for(;;)
B. 变量p的地址 C. 变量a的地址 D. 随机数
共分享92篇相关文档