C期末考试试卷及参考答案.docx_第1页
C期末考试试卷及参考答案.docx_第2页
C期末考试试卷及参考答案.docx_第3页
C期末考试试卷及参考答案.docx_第4页
C期末考试试卷及参考答案.docx_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

学院 _班级_姓名_学号_考 试 科 目面 向 对 象 程 序 ( C+)考 试 成 绩考 试 对 象XX 计 本 1 、 2、 3 班装订线一、是非题(每小题 1. 5 分,共 15 分) 说明:判断各小题说法的正确性,在下面表格中对应的题号下填入是非选择,若正确,则打钩();否则,打叉()。题号12345678910是/否1. 说明函数原型时不需要指明每个函数参数的名字,只需要说明每个参数的类型和返回值类型就可以了。2. 函数定义中的形参的作用域是该函数的函数体。3. 用 new 动态申请的内存空间,必须用 delete 来释放。 4. 构造函数和析构函数都可以声明为虚函数。5. 在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的。6. 类的静态数据成员需要在定义每个类的对象时进行初始化。7. 使用关键字 class 定义的类中缺省的访问权限是私有(private)的。8. 在基类中被说明为虚函数的类的成员函数必须在每个派生类中说明为虚函数,才 能具有多态的特征。9. C+程序中,程序将流对象看作是文件的化身。10如果程序中有多处要抛掷异常,应该用不同的操作数类型来相互区别,操作数 的值不能用来区别不同的异常。二、填空题(每小题 1. 5 分,共 15 分)1 变 量 名是 变 量的 标识 , 由 组 成 , 而 且必 须 以 开头。2有了函数原型,函数的作用域就不是从 开始,而是从 开始。3获取一个变量的地址所采用的操作符是 。4使用 const 语句定义一个标识符常量时,则必须对它同时进行 。5假定类 AB 中有一个公用属性的静态数据成员 bb,在类外不通过对象名访问该成 员 bb 的写法为 。6typedef 语句的作用为。7平时所提到的使用 MFC 编程,这里的 MFC 是 的缩写。8若要在程序文件中进行标准输入输出操作,则必须在开始的 # include 命令中 使用 头文件。9C+中,若将 操作符插入到输出流中,则以十六进制格式输出。10C+程序中,异常处理程序的主要任务是 。 三、单选题(在备选答案中选出一个正确答案填入括号内,每小题 2 分,共20 分)1C+对 C 语言作了很多改进,下列描述中使得 C 语言发生质变,从面向过程变成 了面向对象的是()。本试卷共 8 页本页为第 9 页A增加了一些新的运算符B. 允许函数重载,并允许设置缺省参数 C规定函数说明必须用原型D. 引进了类和对象的概念2当一个函数无返回值时,定义它的函数的类型是()。A. voidB. intC. 无D. long 3下列不是构造函数特征的是()。A. 构造函数的函数名与类名相同B. 构造函数可以重载C. 构造函数可以设置缺省参数D. 构造函数必须指定返回类型 4关于成员函数特征的下列描述中,错误的是()。A成员函数一定是内联函数B成员函数可以重载 C成员函数可以设置缺省参数值D成员函数可以是静态的5关于 new 运算符的下列描述中,错误的是()。A. 它可以用来动态创建对象和对象数组B. 使用它创建的对象或对象数组可以使用运算符 delete 删除C. 使用它创建对象时要调用构造函数D. 使用它创建对象数组时必须指定初始值 6派生类的对象对它的基类成员中可以访问的是()。A. 公有继承的公有成员B. 公有继承的私有成员C. 公有继承的保护成员D. 私有继承的公有成员 7下列描述中,正确的是().A. 虚函数是一个static 类型的成员函数B. 虚函数是一个非成员函数 C. 抽象类是指具有纯虚函数的类D. 抽象类可以说明其对象8假定要对类 AB 定义加号操作符重载成员函数,实现两个 AB 类对象的加法,并返 回相加结果,则该成员函数的声明语句为 ()。A.ABoperator+(AB & a, AB & b)B. ABoperator+(AB& a)C.operator+(ABa)D. AB& operator+( ) 9下列不属于VC消息映射内容的是()。A. 通过将 DECLARE_MESSAGE_MAP 添加到类声明,声明消息映射 B. 改写MFC相关类的虚函数C. 放置标识消息的宏来执行消息映射D. 添加成员函数来处理消息 10下列关于 VC+编程描述中,错误的是()。A. Windows 是一个基于事件驱动、基于消息的操作系统。 BWindows 程序始终是程序而不是操作系统决定何时调用哪个函数。C对于使用 VC 向导生成的程序框架,我们也可以用手工的方式写出。 DMFC 类库其实是对 windows API 函数的封装。四、根据下面各小题题目要求进行简单回答(第 1 小题 6 分,第 2 小题 3 分,第 3 小题 6 分,共 15 分)(1)已知类 B 和类 D,它们的类关系如下。请以类对象 b1,d1 和指针 pb1 为例 简要说明 C+赋值兼容规则。(本小题 6 分)classB ;class D :pubic B ;Bb1, * pb1; Dd1;答:a)b)C)(2) 下列的程序定义了一个交换两个浮点数的函数 swap,并在主函数中调用这个函数进行两个浮点数的交换(本小题 3 分)void swap (floata , floatb)float temp=a; a=b; b=temp;void main( )float a=1,b=2; swap ( a, b );错误为: 改正方法为: (3) 写出下面程序运行结果。(本小题 6 分)#include class Apublic:virtual void act1() coutA:act1() called. endl; void act2() act1(); ;class B : public Apublic:void act1() coutB:act1() called. act1();p-act2 ();答:五、下面的程序共有 17 行,程序的每行前面加上了行号。程序中变量 num、i 、temp、 对象 cout 和函数 func()的作用域范围分别是什么?在程序的下面用行号来回答。(每 小题 1 分,共 10 分)1. #include 2. int num;3. void func();4. void main() 5. 6. char name20;7. int i;8.for(i=0; i20; i+)9.10. char temp;11. temp=namei;12. couttemp;13. 14. 15. void func() 16.17. cout”A function!”;18. 回答:num 的作用域为从第 行到第 行。 i 的作用域为从第 行到第 行。 temp 的作用域为从第 行到第 行。 cout 的作用域为从第 行到第 行。 func 的作用域为从第 行到第 行。六、程序回答题(每小题 1 分,共 5 分) 说明:读懂程序,为便于提问,程序每行前面加有行号,请对所提的问题做出准确解答。1#include 2int CircleArea()34double *pd=new double; 5if(!pd)6 7coutError Memory Allocation!endl; 8return 1;9 10 double &rd=*pd;11coutrd;13 coutThe Area of Circle is: rd*rd*3.14endl;14 delete &rd;15return 0; 1617void main()1819 if(CircleArea()20coutThe programn failed!endl; 21else22 coutThe programn successed!endl;23请写出下列问题答案:a)第 4 行起何作用?答:b)第 5-9 行可否省去?并说明原因。 答:c)第 14 行起何作用? 答:d)此程序功能是什么? 答:e)解释 14 行中&符号的意义? 答:七、请完成下面 2 个运算符重载函数,并对程序最后一行分析错误原因并改正(本题运算符重载函数各 3 分,分析错误原因并改正 4 分,共 10 分) 给定整数类:class Integerpublic:void Set ( int ii=0 ) i=ii; Integer operator + ( int c ); Integer operator + (Integer & c); void Display() coutiendl;private:int i;请完成上面 2 个运算符重载函数,并以下面的主函数进行测试。void main()IntegerA, B, C; ASet(20); CSet(10); B=A+4;BDisplay(); B=A+C;BDisplay();B=4+A; / 此行代码有误,请分析错误原因并改正八、编程题。声明一个 shape 抽象类,在此基础上派生出 Rectangle 和 Circle 类,二 者都有 GetArea ( ) 函数计算对象的面积,按下面的要求完成程序的编制工作。( 1 ) Rectangle 类有 m_Width, m_Height 属性;( 2 ) Circle 类有 m_Radius 属性;( 3 ) 分别编写 Rectangle 类和 Circle 类带默认参数的构造函数;( 4 ) 编写主函数对 Rectangle、Circle 类进行测试,使它们以统一的操作界面输出面 积;(提示:利用 for 循环进行输出)( 5 ) 回答将 Shape 类声明为抽象类的方法及意义。(每小题 2 分,本题共 10 分)答案和评分标准(A 卷):一、是非题(每小题 1.5 分,共 15 分)评分标准:选对者得 1.5 分,否则不得分题号12345678910对错二、填空题(每小题 1. 5 分,共 15 分)评分标准:每题与参考答案相同者得 1.5 分,否则不得分。1、字母数字下划线,字母或下划线2、函数定义函数声明3、&4、 初始化5、AB:bb6、 将一个标识符声明成某个数据类型的别名7、Microsoft Foundation Classes8、iostream.h9、hex10、允许用户排除环境错误,继续运行程序三、单选题(在备选答案中选出一个正确答案填入括号内,每小题 2 分,共 20 分)评分标准:选对者得 2 分,否则不得分。题号12345678910选项DADADACBBB四、根据下面各小题题目要求进行简单回答(第 1 小题 6 分,第 2 小题 3 分,第 3 小题 6分,共 15 分) 评分标准:每题与参考答案的叙述含义相同者得分,否则酌情给分。(1)a、派生类对象可以赋值给基类对象b1 = d1; b、派生类的对象也可以初始化基类对象的引用B& bb = d1; c、派生类对象的地址也可以赋给指向基类的指针pb1 = & d1;(2)错误为:void swap(float a ,float b );改正方法为:void swap(float & a ,float & b );(3)运行结果为:B:act1() called.B:act1() called.B:act1() called.五、下面的程序共有 17 行,程序的每行前面加上了行号。程序中变量 num、i 、temp、 对象 cout 和函数 func()的作用域范围分别是什么?在程序的下面用行号来回答。(每小题 1 分,共 10 分)评分标准:答对者得 1 分,否则不得分。 作用域范围分别为:num 的作用域为从第 2 行到第 18 行。i的作用域为从第 7行到第 14行。 temp 的作用域为从第 10行到第 13行。cout 的作用域为从第 1行到第 18行。 func 的作用域为从第 3行到第 18行。六、程序回答题(每小题 1 分,共 5 分) 评分标准:每题与参考答案的叙述含义相同者得分,否则酌情给分。1、动态分配一个 double 内存空间。2、不可以,此程序段主要用来防止不能分配内存空间。3、释放所分配的内存空间。4、计算圆面积。5、取地址。七、阅读下列程序,回答后面提出的问题。(本题 10 分) 评分标准:见参考程序中的注释。(1) Integer Integer:operator + (int c)(3 分)Integer a; a.i=c+i; return a;(2) Integer Integer:operator + (Integer & c)(3 分)Integer a; a.i=c.i+i; return a;(3) Integer operator + (int m ,Integer & c)(4 分)Integer a; a.i=c.i+m; return a;八、程序回答题。(每小题 2 分,本题 10 分)评分标准:每题与参考答案的叙述含义相同者得分,否则酌情给分。#include class Shapepublic:virtual int GetArea() =0;class Rectangle : public Shapepublic:Rectangle(int width=0,int height=0) m_Width=width,m_Height=height; int GetArea() retur

温馨提示

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

评论

0/150

提交评论