东南大学c++下期末考试笔试卷

上传人:F****n 文档编号:102345239 上传时间:2019-10-02 格式:DOC 页数:11 大小:43.50KB
返回 下载 相关 举报
东南大学c++下期末考试笔试卷_第1页
第1页 / 共11页
东南大学c++下期末考试笔试卷_第2页
第2页 / 共11页
东南大学c++下期末考试笔试卷_第3页
第3页 / 共11页
东南大学c++下期末考试笔试卷_第4页
第4页 / 共11页
东南大学c++下期末考试笔试卷_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《东南大学c++下期末考试笔试卷》由会员分享,可在线阅读,更多相关《东南大学c++下期末考试笔试卷(11页珍藏版)》请在金锄头文库上搜索。

1、一、选择题(每题1分,共 10 题,共 10 分)1、在数组int b4=1,3,4,4,7,9,10,8,5,6中,b22的值是 D 。A0 B 4 C 7 D92、以下关于this指针描述正确的是 C 。A使基类公有成员在子类中可以被访问。Bthis指针必须写成显式的。Cthis指针总指向要调用的其成员函数的对象。D静态成员函数也存在this指针。3、如果通过new运算符动态分配失败,返回结果是 B 。A-1 B0 C1 D不确定4、 D 是一种限制存取位置的线性表,元素的存取必须服从先进先出的规则。A顺序表B链表 C栈D队列5、下列关于指针运算的描述,错误的是 D 。A可将一个空指针赋给

2、某个指针。B两个指针在一定条件下,可以进行相等和不等运算。C一个指针可以加上一个整数,指向当前元素后面的若干个位置的元素。D两个指针在一定条件下可以相加。6、实现深复制,下面的类成员函数中, A 不是必须自定义的。A 构造函数 B 复制构造函数C 析构函数D 复制赋值操作符函数7、 设数组int fibon10,int *pfib=fibon; 则访问fibon数组第二个元素,以下写法错误的是 B 。A fibon1 B*+fibon C*+pfib D*(pfib+1)8、 假设Person类包含公有成员name,私有成员id和受保护成员GetID,而Student类私有继承了Person类

3、,那么Student类的成员函数可以直接访问 C 。APerson类的所有成员B仅有Person类的公有成员nameC仅有Person类的公有成员name和受保护成员GetIDDPerson类的任何成员都不能访问9、 实现多态的派生类函数不必 D 。A与基类虚函数同名 B与基类虚函数同参数表C与基类虚函数同返回类型 D用virtual修饰10、分析下列代码是否存在问题,选择合适的选项: B 。int main(void)int *p = new int 10; p = new int 10; delete p; p = NULL;return 0;A没有问题 B有内存泄漏 C存在空悬指针 D存

4、在重复释放同一空间二、填空题(每空 1 分,共 20 空,共 20 分)1、有序数组int B17中存放17个元素,用对半查找法查找B11元素,则进行比较的数组下标值依次是 8,12,10,11 。2、设整数型指针P1,P2分别指向整数型数组A10=1,2,0,4,5,9,7,8,6,4的第2和第5个元素,则P2-P1= 3 ,A5-A2= 9 。3、单链表的结点分为 指针 域和 数据 域两部分。4、标明为无具体实现的虚函数是 纯虚函数 。包含该函数的类称为 抽象类 ,不能用来定义对象。5、C+文件流采用两种格式访问文件:文本格式和二进制格式。前者按 字符 存取,后者按 字节 存取。6、重载提

5、取运算符和插入运算符实现对象的输入和输出,需要将重载的运算符函数声明为该类的 友元函数 。7指针类型变量用于存贮 地址 , 在内存中它占有4个存贮单元。8. 设有说明:int a, k, m, *p1=&k, *p2=&m; 执行a=p1=&m;后a的值是 0 。9若有:int i,&j=i;i=1;j=i+2;则 i= 3 。10 构造函数 是一种特殊的成员函数,它主要用来为对象分配内存空间,对类的数据成员进行初始化并执行对象的其他内部管理操作。11一般情况下,使用系统提供的默认析构函数就可以了,但当对象的成员中使用了 new 运算符动态分分配内存空间时,就必须定义析构函数以正确释放对象空间

6、。为了对象间能正确赋值,还必须要 重载运算符= 。12在类的派生过程中,要实现动态多态性,首先在类中必须要定义 虚函数 ,还要在使用对象的函数中定义 基类 指针,使该指针指向不同类的对象。13 . 利用成员函数对双目运算符重载,其有 1 个参数,该参数为运算符的 右操作函数 。三、阅读程序题(每空1-2分,共 40 分)1、以下程序的输出结果是:(本题6分,每空2分)#include using namespace std;void main(void) int a,b,k=4,m=6,*p1=&k,*p2=&m; int arr=30,25,20,15,10,5,*p=arr; p+; co

7、ut*(p+3)endl; a=(p1=&m); b=(*p1)/(*p2)+7; couta=aendl; coutb=bendl;程序运行结果: 10 a=0 b=7 2、改正以下程序的错误:(本题8分,每空2分)#include using namespace std;class Sample int value; public: void Sample( int a ) value =a;int Max (int x,int y) return xy?x:y;int Max (int x,int y,int z=0) if (xy) return xz?x:z; else return

8、 yz?y:z; Sample (int a) value =0;void main(void)Sample s(4);couts.valueendl;s.Max(10,20);以上程序中的错误有: Void去掉 重载产生二义性 析构函数不能有参数 私有数据成员不可类外访问 3、指出程序的运行结果:(本题8分,每空2分)#include using namespace std;class Vectorint x,y;public:Vector() ;Vector(int i,int j) x=i;y=j;void disp() cout (x,y)endl;void operator+=(Ve

9、ctor D) x+=D.x; y+=D.y;void operator-=(Vector D) x-=D.x; y-=D.y;void main(void)Vector A(1,2),B(4,2);coutA:;A.disp( );coutB:;B.disp( );A+=B;coutA+=B:;A.disp( );A-=B;coutA-=B:;A.disp( );程序运行结果: A(1,2) B(4,2) A+=B(5,4) A-=B(1,2) 4、下面是一个实现类的继承与派生的程序,请写出程序运行结果,并根据主函数中编程者的原意(调用派生类的成员函数),修改类的成员定义,然后写出修改后的运

10、行结果(本题10分)#include using namespace std;class Apublic: virtual void fun1()cout A fun1endl; virtual void fun2()cout A fun2endl; void fun3()cout A fun3endl;class B:public Apublic: void fun1()cout B fun1endl; void fun2(int x)cout B fun2endl; void fun3()cout B fun3fun1( ); p-fun2( ); p-fun3( );修改前输出结果如下(

11、每空1分): B fun1 B fun2 A fun3 纠正错误:(每空2分) Fun3改为虚函数 Fun2参数X去掉 修改后的输出结果如下(每空1分): B fun1 B fun2 B fun3 5、指出程序的运行结果:(本题8分,每空1分)#include using namespace std;class B1public:B1()coutB1:Constructorendl;B1()coutB1:Destructorendl;class B2public:B2()coutB2:Constructorendl;B2()coutB2:Destructorendl;class B3public:B3()coutB3:Constructorendl;B3()coutB3:Des

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号