C++卷3

2020-05-09 09:21

浙江省高校计算机专业课程统考

《C++程序设计》

考 试 试 卷(2小时)

题类 得分 一 二 三 四 五 总分 学校: 学号: 姓名:

一、 单项选择题(30分,共15题,每小题2分)

1.如果struct中的所有成员在定义时都没有使用关键字public、private或protected,则所有成员缺省定义为____。

A) public B) protected C) private D) static 2. 类的析构函数的作用通常是____

A) 一般成员函数 B) 类的初始化 C) 对象的初始化 D)释放对象占用的资源(空间) 3. 语句 int *p[10]; 的含义是____ 。

A) p 是一个指向函数的指针变量。

B) p 是指针变量,指向一个整型数据 。 C) p 是一个指向一维数组的指针变量 。 D) p 是数组, 数组的元素是指针。

4.下列单词的缩写中,____被用来表示面向对象的编程。

A) OOA B) OBJ C) OOP D) OOT 5.执行完下列语句后,a的值为____。 b=1; b+=2; a=b++;

A) 2 B) 3 C) 4 D) 5

6. 若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字____放在函数原型或函数头的前面。

A) in B) inline C) online D) inliner

7.假定一个类的构造函数为“A(int aa=1, int bb=0) : a(aa), b(bb) { }”, 则执行“A x (2);”语句后,x.a和x.b的值分别为____。

A) 1和0 B) 1和2 C) 2和0 D) 2和1 8. 下列运算符中, ____运算符不能重载。

A) && B) [ ] C) :: D) new 9.拷贝(复制)构造函数的作用是____。

A) 进行数据类型的转换 B) 用对象调用成员函数 C) 用对象初始化对象 D) 用一般类型的数据初始化对象 10.已知类A中一个成员函数说明如下 : void Set (A &a);

其中, A &a的含义是 ____。

A) 指向类A的指针为a;

B) 将a的地址值赋给变量Set

C) a是类A的对象引用, 用来作函数Set()的参数 D) 变量A与a按位相与作为函数Set ()的参数

11. 在公有继承的情况下,基类成员在派生类中的访问权限____。

A) 受限制 B) 保持不变 C) 受保护 D) 不受保护 12. 在类中说明的成员可以使用关键字____进行修饰。

A) public B) extern C) cpu D) register

13. 假定一个类的构造函数为 A(int aa,int bb){a=aa++;b=a*bb++;} ,则执行 A x(2,3); 语句

第 1 页

浙江省高校计算机专业课程统考

后, x.a 和 x.b 的值分别为 ____ 。

A) 2 和 3 B) 3 和 2 C) 2 和 6 D) 3 和 12

14. 类的指针成员的初始化是通过函数完成的,这个函数通常是____。

A) 析构函数 B) 构造函数 C) 其它成员函数 D) 友元函数 15. 说明虚函数的关键字是 ____。 A) virtual B) class C) const D) static

二、是非判断题(10分,共5题,每小题2分)(请在题号上打√或X)

□ 1. 析构函数不能定义任何参数。

□ 2. 指针可以指向数据对象,也可以指向函数。

□ 3. 类的静态数据成员需要在定义每个类的对象时进行初始化。 □ 4. 在C++中,如果函数无返回值,则返回值类型说明为void。 □ 5. 建立派生类对象会调用基类构造函数。

三、读程序,写运行结果(30分)

1. (7分)

#include using namespace std; class AA { public : AA (int i, int j) { A = i; B = j; cout << “Constructor.\\n”; } ~AA () { cout <<”Destructor.\\n”; } void Print (); private : int A, B; };

void AA::Print () { cout <

void main () { AA *a1, *a2; a1 = new AA (1,2); a2 = new AA (3, 4); a1->Print (); a2->Print (); delete a1; delete a2; }

2. (7分)

#include using namespace std; class B { public : B (int i) { b = i + 1; show ();

}

B () {}

virtual void show () {

第 2 页

浙江省高校计算机专业课程统考

cout <<”B::show() called.”<

protected : int b; }; class D:public B { public : D (int i):B(i) {d = i + 2; show ();}

D () {}

void show () { cout <<”D::show () called.”<

void main () { D d1 (30); }

3. (8分)

#include using namespace std; template class Tclass{ T x,y; public:

Tclass (T a,T b) : x(a) {y=b;} Tclass (T a) {y=(T)0, x=a;} void pr( ){ char c;

c=(y>=(T)0 ? ′+′: ′-′);

cout<(T)0 ? y : -y) <<″i″<

void main( ){

Tclass a (2.5,-5.8); a.pr( );

Tclass b(3); b.pr( ); }

4. (8分)

#include using namespace std; class CTest {

public : CTest ()

{ m_id = m_count ++; cout << “Constructor” << m_id << endl; } ~CTest ()

{ cout << “Destructor” << m_id << endl; }

第 3 页

浙江省高校计算机专业课程统考

static int GetCount () { return m_count; } private : int m_id; static int m_count; };

int CTest::m_count = 0; void FunA (); CTest *FunB (); void FunA () { CTest x, *p; p = FunB (); delete p; } CTest *FunB () { CTest t, *p; p = new CTest; if (CTest::GetCount () > 3) throw 1; return p; } void main () { CTest t; try { while (1) FunA (); } catch (int no) { cout << “Catch Exception” << no << endl; } cout << “Count : “ << CTest::GetCount () << endl; }

四、填空题(10分,共5空,每小空2分)

1.完成点距离Distance函数的定义。 #include #include class Point {

private:

double X,Y; public:

Point(double x=0, double y=0) {X=x;Y=y;}

void Move(double x, double y) { X=x; Y=y; }

friend double Distance(Point &p1, Point &p2); //计算两点间距 };

double Distance(_________①__________) { double dx = _________②________;

double dy = p1.y-p2.y; return sqrt(dx*dx+dy*dy); }

void main() {

第 4 页

浙江省高校计算机专业课程统考

Point a(1,1); Point b(a); b.Move(4,5);

cout << Distance(a,b) << endl;

}

2.类fraction(分数)的定义,其中重载的运算符<<以分数形式输出结果,例如将三分之二输出为2/3。

class fraction{

int den; //分子 int num; //分母

_________①__________ ostream& operator<<(ostream&,fraction); ? };

ostream& operator <<(ostream& os,fraction fr){ _________②________;

return _________③_________; }

五、设计题(20分,共4题,每题10分,选2题做)

1. 声明一个立方体Cube 类,属性为其长 itsLength 、宽itsWidth和高度 itsHeight,请在类中提供计算立方体表面积与体积的方法,实现并测试这个类. 2. 下面是测试字符串类CString的一个程序和输出结果, 请设计并实现符合本例要求的CString类。 #include using namespace std; 。。。//CString类代码 int main () {

CString s1 (“C++ ”), s2 (“Program”); CString s3;

s3 = s1 + s2; CString s4 (s3); s4 [1] = ‘# ’;

s4 [2] = ‘ ’; //空格字符 cout << s3 << endl; cout <

输出结果 : C++ Program C# Program

3.下面是一个使用矩阵类CMatrix的程序实例及结果,请设计并完成矩阵类 (10分) #include //矩阵类代码?

int main () {

int m = 3, n = 4; CMatrix A (m, n); int i, j;

for (i = 0; i < m ;i ++) { for (j = 0; j < n; j ++) A.ElementAt (i, j) = i * n+ j + 1;

第 5 页

浙江省高校计算机专业课程统考

}

A.Display (); CMatrix B = A.Rotate ();//旋转 B.Display (); return 0;

}

执行结果 : 1 2 3 4 5 6 7 8 9 10 11 12 1 5 9 2 6 10 3 7 11 4 8 12

4.编写程序, 输入一个十进制正整数,输出其各位数之和. 例: 程序如果输入1235679, 应该输出33.

第 6 页


C++卷3.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:新版北师大小学数学六年级上册《比的应用》拔高练习

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: