




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
参考答案 第9页 计算机 专业面向对象程序设计C+试卷(C卷)(闭卷)班级 姓名 学号 题号一二三四五总分分值1020202030100得分一、判断题:(10分)(共10小题,每小题1分)1. 构造函数和析构函数都没有返回类型。2. 构造函数可以设置默认参数。3. 可以让派生类指针直接指向基类对象。4. 面向对象中的类与对象之间是一对一的关系。5. 若一个类为抽象类,则不能实例化该类。6. 函数内的局部对象在退出函数后将调用析构函数释放。7. 定义int (*pa)(int); 表示pa是指向具有一个int形参、返回类型为int的函数指针。8. STL中的stack支持迭代器访问。9. 重载函数形参个数必须不同。10. 派生类对象的构造过程是先构造对象成员,再构造自身,最后构造基类。二、单选题:(20分)(共10小题,每小题2分)1. 假设X为一个自定义类且定义其对象a,则语句X b=a; 将调用_函数。A. 析构函数B. 赋值运算符函数C. 拷贝构造函数D. 以上答案都不对2. 下列关于虚继承的说法错误的是_。A. 采用虚继承的目的是为了消除多重继承带来的二义性问题B. 虚基类成员的构造只需在其直接派生类的构造函数初始化列表中进行初始化C. 在同一层次中,虚基类的构造函数在非虚基类之前调用D. 在同一层次中包含多个虚基类,这些虚基类的构造函数按照说明的先后次序调用。3. 有关以下代码的说法正确的是_。string& GetString()string s = Hello, World!;return s;void main()coutGetString() (b) ? (a) : (b) int main() int i = 5, j = 6; printf(%dn, max(i-,j-); A. 4B. 5C. 6D. 程序语法错误7. 关于以下程序块的说法正确的选项是_。int a5 = 1, 2, 3, b3=1, 2, 3, c3=1, 3, 4;if(a=b)coutEqualb) coutLargerendl; /语句2A. 因为a和b数组元素完全一样,因此能输出语句1B. 因为a在b之前定义,因此一定能输出语句2C. 因为a和b的对应不同的内存单元,因此一定不能输出语句1D. 因为b的分配一定在a之后,因此一定不能输出语句28. 关于以下程序块的说法错误的选项是_。char* str;for(int i=0;i10;i+)stri = i+A;coutstrendl;A. str指针是一个野指针,需要分配内存方可使用B. str是一个指针,无法通过下标形式stri来访问C. str需要在末尾加上结束符才可以正常输出D. 对str分配内存的方式可以使用str = new char100;9. 若指针作实参,形参定义为数组,函数调用时实参传递给形参的是_。A. 指针所指向的数组长度B. 指针变量中的地址值C. 指针所指向的数组所有元素的值D. 指针变量所在的内存空间10. 执行以下程序段后s的值是_。string s = 1;s += 23;A. 1B. 123 C. 24 D. 231三、程序填空题:(20分)(共10个空格,每格2分)1. 以下程序自定义了一个整型栈类MyStack,Push具有入栈功能、Pop具有弹栈功能。请将空格部分填写完整,使程序功能正确。#include using namespace std;class MyStack public:void Pop()if( (1) )/判断栈空coutEmpty Stack;return;nTop-;void Push(int e)if( (2) )/判断栈满coutFull Stack;return;nTop+;elemnTop=e;MyStack(const int n) (3) ;/初始化成员elemnTop=nBase=0;maxsize=n;virtual MyStack() (4) ;/释放elem成员private:int* elem;int nTop;int nBase;int maxsize;2. 请在下面程序的横线处填上适当内容,以使程序完整,并使程序的输出为5。#include class Integer int x; public: Integer(int a=0)x=a; void display()coutxendl; (5) ; Integer Max(Integer a,Integer b) if( (6) ) return a; return b; void main() Integer a(3),b(5),c; (7) ;c.display(); 3. 以下swap函数模板用于交换两个元素,请将程序补充完整。#include #include using namespace std; (8) void swap(T *x, T *y) (9) ;temp = *x; (10) ;*y = temp;四、程序分析题:(20分)(共3小题,第1、2题每题5分,第3题10分)1. 写出以下程序的输出结果,并分析原因。(5分)#include int main( )int num=50;int& ref=num;ref=ref+10;cout num= num endl;num=num+40;cout ref= ref endl;return 0;2. 写出以下程序的输出结果,并分析原因。(5分)#include class Apublic: virtual void f() coutIn Aendl; ;class B : public Apublic: void f() coutIn Bendl; ;void Test(A &t) t.f();void main() A a; B b; b.f(); Test(a); Test(b);3. 请分析以下程序的功能,当输入数据为:2 31 2 34 5 63 21 24 27 2时写出输出结果。同时找出程序中出现的一个错误,叙述错误原因并写出解法方案。(10分)#includeint main()int* p;int n, m, i,j;while (cinnm)int s = 0;p = new int*n;for(i=0;in;i+)pi = new intm;for(i=0;in;i+)s = 0;for(j=0;jpij;s += pij;coutsendl;return 0;五、程序设计题:(30分)(共2小题,第1题10分,第2题20分)1. 使用STL中的vector容器以及排序算法对输入的n个整数进行按绝对值从大到小的顺序排序。(10分)比如输入:101 5 3 2 -4 0 9 -8 6 -7则输出9 -8 -7 6 5 -4 3 2 1 02. 设计一个Student类,其中包含姓名属性,请实现该类的构造函数、析构函数、拷贝构造函数、赋值运算符重载函数。class Studentprivate:char *name;public:Student()/请实现构造函数Student(char* n);/请实现构造函数Student(const Student& s);/请实现拷贝构造函数Student& operator=(const Student& s);/请实现赋值运算符重载函数Student();台州学院2 0 10 学年第 1 学期 09 级 计算机 专业面向对象程序设计C+试卷C卷参考答案一、判断题:(10分)(共10小题,每小题1分)12345678910TTFFTTTFFF二、单选题:(20分)(共10小题,每小题2分)12345678910CBBCABCCBB三、程序填空题:(20分)(共10个空格,每格2分)(1)_ nTop=maxsize_(3)_ _elem=new intn;_ (4)_delete elem; _(5)friend Integer Max(Integer a,Integer b)(6)_ a.xb.x_ _(7)_ c=Max(a,b) _(8)_template_ (9)_ _T temp_ _ (10)_ _*x = *y _四、程序分析题:(20分)(共3小题,第1、2题每题5分,第3题10分)1、num=60ref=100Ref的类型为引用,初始化为num变量的引用。第一次ref的改变引起了num的改变,50+10=60;第二次num的改变也引起了ref的改变,60+40=1002、In BIn AIn Bf在基类A中定义为虚函数,在派生类B中重写。通过派生类对象访问f自然调用派生类版本。当通过Test的引用参数调用时则根据引用的对象决定调用的函数,体现了多态性。3、615369该程序读入一个n*m的矩阵,并计算每行的和。程序中因为每次循环都要使用new分配空间,但在循环体内部没有释放空间,因此存在内存泄露问题。修改如下:delete p;for(i=0;in;i+) delete pi;/或delete *(p+i);五、程序设计题:(30分)(共2小题,第1题10分,第2题20分)程序设计基本代码框架50%,程序细节处理50%。(1)参考代码如下:#include #include #include #include using namespace std;bool cmp(int a, int b)return fabs(a)fabs(b);int main()int i,n,a;vector vec;while(cinn)vec.clear();for(i=0;ia;vec.push_back(a);sort(vec.begin(),vec.end(),cmp);vector:iterator it;for(it=vec.begin();it!=vec.end();it+)if(it!=vec.begin()cout ;cout(*it);coutendl;return 0;(2)参考源代码如下:Student:Student()name=new char10;Student:Student(char* n)name=new char10;strcpy(name,n);Student:Student()delete name;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专项培训知识
- 2025合同样本股权质押合同模板
- 专利顾问知识培训内容课件
- 专利知识进阶培训心得课件
- 碳足迹下的会展新生态:从行业现状到未来发展
- 骨科手术机器人耗材包行业分析与投资决策参考报告
- 2025标准股权转让合同样本
- 邮储银行沧州市运河区2025秋招英文群面案例角色分析
- 邮储银行湛江市遂溪县2025秋招笔试思维策略题专练及答案
- 2025标准贸易购销合同范本精粹
- 光电功能材料课程-13-18课件
- 施工现场污水排放方案
- 黔西市中医医院金阳院区环评报告
- 我的家乡-枣阳
- 青春期生理卫生知识讲座男生篇
- 高中期中考试家长会PPT课件 (共51张PPT)
- GB/T 18851.4-2005无损检测渗透检测第4部分:设备
- 全球卫生治理课件
- 实验室生物安全程序文件
- 重症肌无力新斯的明实验的临床评估百度课件
- 幻影桌面云管理平台实践指导手册
评论
0/150
提交评论