面向对象程序设计C++模拟试卷 联系客服

发布时间 : 星期日 文章面向对象程序设计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 void main() { int a = 7;

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 class Sample { int n; public:

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 const double PI = 3.14159; class Area { private: int radius; float area; public:

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. 随机数