C++测试卷2参考答案_第1页
C++测试卷2参考答案_第2页
免费预览已结束,剩余3页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 5/5C+测试卷2参考答案 C+程序设计测试卷 学号 _ 姓名 _ 成绩_ 一、单项选择(每小题1分,共15分) 1.下列代码中不符合语法的是: A) int i(5) B) int(5) C) const int D) int* const p(nullptr); p = new int(5); 2.有8层楼梯,你每次可以走1层或2层,问总共可以有几种走法: A) 34 B) 41 C) 49 D) 都不对 3.派生类的成员函数不可以访问: A) 公有继承的基类公有成员B) 公有继承的基类私有成员 C) 公有继承的基类保护成员D) 私有继承的基类公有成员 4.关于虚函数的描述中,正确的是:

2、 A) 虚函数是一个static类型的成员函数 B) 虚函数是一个非成员函数 C) 基类中说明了虚函数后,派生类中对同名函数的重定义时可不必说明为virtual,其虚特性保 持不变 D) 派生类的虚函数与基类的同名虚函数具有不同的参数个数和类型 5.关于虚基类的描述,正确的是: A) 虚基类的唯一副本只被初始化一次 B) 无论是虚基类还是普通基类,其构造函数的调用的次序取决于基类在声明时的次序 C) 类中对象成员的初始化先于虚基类副本的初始化 D) 虚基类的析构函数最先调用 6.设运行环境中int类型长度为2字节,且ptr是一个int类型的指针,且ptr的值是2400,ptr 指向的整数变量的

3、值是24,那么*ptr+1的值是: A) 2401 B) 2402 C) 25 D) 26 7.In_, the only element that can be deleted or removed is the one that was inserted most recently. A) a line B)a queue C)an array D)a stack 8.若在一个类中用成员函数重载了某种二元运算符,而obj1和obj2都是该类的对象,则表达式 obj1obj2 被C+编译器解释为: A) obj1.operator(obj2) B) obj2.operator(obj1) C

4、) operator(obj1,obj2) D) operator(obj2,obj1) 9.在C+语言中,以下哪个表达式采用了十六进制表示整型常量: A) k = 0123; B) k = 123;C) k = 123; D) k = 0 x123; 10.对以下声明的类A,sizeof(A)的值为: class A float std; static float max, min; ; A) 4 B) 8 C) 12 D) 16 11.下列将类A说明为类B的虚基类的语句中,正确的是: A) class B: private A virtual B) class B: private vir

5、tual A C) class B: virtual private A D) virtual class B: private A 12.编译程序在对函数调用进行静态绑定时,根据以下因素决定调用哪一个函数,不正确的是: A) 函数类型B) 函数名C) 实际参数个数D) 实参相应位置的类型 13.不能重载的运算符是: A) : ?: B) : ?: . C) () ?: # D) . : - 14.关于构造函数不正确的说法是: A) 构造函数可以有返回值B) 一个类可以有多个构造函数 C) 构造函数名与类名相同D) 构造函数用于初始化新创建的类对象 15.template using name

6、space std; class simpleInt /成员函数应为public,添加这句:public: void SetValue(int value); int GetValue(); private: int m_value(0);/此处m_value不能赋初值,改为 int m_value; ; int main() simpleInt myInt; cout class WINDOW public: WINDOW() count = count + 1; WINDOW() count = count - 1; int getwin() return count; private:

7、static int count; ; int WINDOW:count = 0; class WORKWIN: public WINDOW public: WORKWIN() cout insert(10,2); list-find(100); list-remove(100); return 0; 请设计LinkedList类。 struct Node int data; Node *next; ; class LinkedList private: _ head;/ Node* const head; public: _; /void insert(int key); _; /void

8、insert(int key, int index); _; /Node* find(int key) const; _; /Node* remove(int key); ; 3.在以下程序中,函数fill(int squareMAX_LENMAX_LEN, int max_num) 将数字1, 2, ., max_num, ., max_num2按逆时针填入max_nummax_num的矩阵中,下面是max_num = 5和max_num = 6时主程序的输出结果 max_num = 5 max_num = 6 1 16 15 14 13 1 20 19 18 17 16 2 17 24 2

9、 3 12 2 21 32 31 30 15 3 18 25 22 11 3 22 33 36 29 14 4 19 20 21 10 4 23 34 3 5 28 13 5 6 7 8 9 5 24 25 26 27 12 6 7 8 9 10 11 请完成该函数中的空白,使程序运行能得到正确结果。 #include #include const int MAXLEN = 20; void fill(int squareMAXLENMAXLEN, int maxNum) int currNum; int currLevel; int row, col; /row是行号,col是列号 curr

10、Num = 1; currLevel = 1; do /逆时针生成一圈的矩阵数据 row = currLevel; col = currLevel; do squarerowcol = currNum; row+; currNum+; while ( ); /rowcurrLevel; do squarerowcol = currNum; col-; currNum+; while ( ); colcurrLevel; while (currLevel maxNum; fill(square, maxNum); print(square, maxNum); /略 五、程序设计(21分) 1 阅

11、读下列说明、图和C+代码,回答问题1至问题3(16分)。 说明 已知四个类之间的关系如图5-1所示,分别对每个类的方法进行编号,例如Shape的perimeter()方法为1号,表示为“1:perimeter()”,Rectangle类的perimeter()为2号,表示为“2:perimeter()”,依此类推,其中,每个类的perimeter方法都为虚函数且方法签名相同。 图5-1 类图 C+代码 Triangle *tr = new Triangle(); Square *sq = new Square(); Shape *sh = tr; 问题1 关于上述C+代码中sh 和 tr的以下

12、叙述中,哪两个是正确的(写出编号)。 sh 和 tr分别引用同一个对象; sh 和 tr分别引用同一类型的不同的对象; sh 和 tr分别引用不同类型的不同对象; sh 和 tr分别引用同一个对象的不同拷贝; sh 和 tr所引用的内存空间是相同的。 问题2)。 问题3不考虑内存释放问题,下列赋值语句中哪两个是合法的(写出合法赋值语句的编号)。 sq = sh; sh = tr; tr = sq; sq = tr; sh = sq; 六附加题(若完成,额外计10分) 2程序设计(15分)。 给定任意一整数N,N=0,我们一般可以将N分解为多对两个整数因子的乘积。请求出多对两个整数因子差最小的那

13、一对。如:24可以分解为4*6,3*8,2*12,1*24.那么4*6这一对差为2是所有对中最小的,答案就是4*6。 请用一个函数实现此功能,函数声明如下: void findIntPair(unsigned int number,unsigned int其中,number表示N,结果通过outPartOne outPartTwo引用返回。 /略 请编写这样的一个类,此类只能产生一个对象实例(称为单例类)。类名为SingletonClass。实现该类的成员函数。 class Singleton private: Singleton();/注意:构造方法私有 virtual Singleton(); static Singleton* instance;/惟一实例 int var;/成员变量(用于测试) public: static Singleton* GetInstance(); int getVar();/获得var的值 void setVar(int);/设置var的值

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论