《C++程序设计》期末考试及答案_第1页
《C++程序设计》期末考试及答案_第2页
《C++程序设计》期末考试及答案_第3页
全文预览已结束

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上函授站: 姓名: 专业: 学号: 座位号: 密封线C+程序设计期末考试试卷 考生注意:1本试卷共有四道大题,满分100分。2考试时间90分钟。3卷面整洁,字迹工整。4填写内容不得超出密封线。总分题号一二三四核分人题分30212425复查人得分一、单项选择题(每小题2分,共30分)1. C+是一种( )的程序设计语言。A. 面向对象 B. 即可面向过程,又可面向对象 C. 面向过程 D. 面向系统2. 在下面有关析构函数特征的描述中,正确的是( )。A. 一个类中可以定义多个析构函数 B. 析构函数名与类名完全相同C. 析构函数不能指定返回类型 D. 析构函数可以有一个

2、或多个参数3. 下面对于友元函数描述正确的是( )。A. 友元函数的实现必须在类的内部定义 B. 友元函数是类的成员函数C. 友元函数破坏了类的封装性和隐藏性 D. 友元函数不能访问类的私有成员4. 下面描述中,表达错误的是( )。 A. 公有继承时基类中的public成员在派生类中仍是public的 B. 公有继承时基类中的private成员在派生类中仍是private的 C. 公有继承时基类中的protected成员在派生类中仍是protected的 D. 保护继承时基类中的public成员在派生类中是private的5. 所谓多态性是指( )A. 不同的对象调用不同名称的函数 B. 不同

3、的对象调用相同名称的函数 C. 一个对象调用不同名称的函数 D. 一个对象调用不同名称的对象6. 重载赋值操作符时,应声明为( )函数。A. 友元 B. 虚 C. 成员 D. 多态7. 下列对模板的声明错误的是( )。A. template <class T1,typename T2> B. template <class T1, T2>C. template < typename T> D. template <class T1,class T2,class T3>8. 下列类中( )不是输入流类istream的派生类。A. ifstream

4、B.istrstream C. iostream D. ofstream9. ( )不是构造函数的特征。A. 构造函数的函数名与类名相同 B 构造函数可以重载C. 构造函数可以设置缺省参数 D构造函数必须指定类型说明10. 下列语句中错误的是( )。 A. int *p=new int (10); B. int *p=new int10; C. int *p=new int; int *p=new int40(0)11. 下列关于虚基类的描述,错误的是( )A. 设置虚基类的目的是为了消除二义性 B. 虚基类的构造函数在非虚基类之后调用C. 若同一层中包含多个虚基类,这些虚基类的构造函数按它们

5、说明的次序调用D. 若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数12. 已知:print( )函数是一个类的常成员函数,它无返回值,下列表示中,( )是正确的。A. void print( ) const; B. const void print( ); C. void const print( ); D. void print(const);13. 在下面有关静态成员函数的描述中,正确的是( )。A. 在静态成员函数中可以使用this指针 B. 在建立对象前,就可以为静态数据成员赋值C. 静态成员函数在类外定义时,要用static前缀 D. 静态成员函数只能在

6、类外定义14. 在下列关键字中,用于说明类中公有成员的是( )。A. public B. private C. protected D. friend15. 以下有关继承的叙述正确的是( )。A. 构造函数和析构函数都能被继承 B. 派生类是基类的组合C. 派生类对象除了能访问自己的成员以外,不能访问基类中的所有成员D. 基类的公有成员一定能被派生类的对象访问二、判断题(每题3分,共21分)1. 静态的成员函数没有隐含的this指针 ,所以它们只能访问静态的数据成员。( )2. 通过类对象可以访问类中所有的成员。( )3. 构造函数是可以被派生类继承的。( )4. 构造函数和析构函数都可以是虚

7、函数。( )5. 只有类中全部函数都为纯虚函数时,该类才被称为抽象类。( )6. 对于同一个运算符来说,重载的运算符的优先级比未重载的运算符的优先级高。( )7. 一个类的友元一定是另一个类的成员函数。( )三、简答题(每小题6分,共24分)1. 什么是封装性?请举例说明。2. 什么是函数重载和运算符重载?为什么要使用重载?3. 拷贝构造函数在哪几种情况下被调用?4. 什么是类?什么是对象?对象与类的关系是什么?四、程序分析题(前三小题各6分,第五题7分,共25分)1. 指出下面程序中的1处错误,并说明原因。#include<iostream.h> class Point int

8、X,Y; public: Point( )X=0;Y=0; Point(int x=0,int y=0)X=x;Y=y; void display( )cout<<X<<","<<Y<<endl; ;void main() Point p; p.display();答:2. 指出下面程序中的1处错误,并说明原因。#include<iostream.h>class CTestpublic: CTest() x=20; private: int x; friend void friend_f(CTest fri);vo

9、id friend_f(CTest fri) fri.x=55; void main() CTest c1,c2; c1.friend_f(c2);答:3. 写出下面程序的运行结果。#include<iostream.h>class Test private:int num;public:Test(int n=0)num=n;num+;Test( )cout<<”Destructor is active,number=”<<num<<endl;void main( )Test x2;cout<<”Exiting main”<&l

10、t;endl;答:4. 写出下面程序的运行结果。#include<iostream.h>class Testprivate: static int val; int a;public: static int func(); static void sfunc(Test &r);int Test:val=20;int Test:func() val-; return val; void Test:sfunc(Test &r) r.a=25; cout<<"Result3="<<r.a; void main() cout<

11、;<"Resultl="<<Test:func()<<endl; Test a; cout<<"Result2="<<a.func()<<endl; Test:sfunc(a);答:C+程序设计期末考试答案一、 选择题(15×2)1.B2.C3.C4.D5.B6.C7.B8.D9.D10.D11.B12.A13.B14.A15.B二、 判断题(7×2)1. 2. ×3. ×4. ×5. ×6. ×7. ×三、

12、简答题(4×4)1. 解答要点:所谓数据的封装,就是将数据结构和作用于数据结构上的操作组成一个实体,数据的表示方式和对数据的操作细节被隐藏起来,用户通过操作接口对数据进行操作。对于用户来说,只知道如何通过操作接口对该数据进行操作,而并不知道是如何操作的,也不知道数据是如何表示的,这就是数据的封装。例如我们经常使用的手机,机壳将零件和线路封装了起来,我们在接打电话或收发短信时是通过手机面板上的按键(接口)。2. 解答要点:(1) 函数重载是指一个标识符可同时用于为多个函数命名;(2) 运算符重载是指一个运算符可同时用于多种运算。也就是说,相同名字的函数或运算符在不同的场合可以表现出不同

13、的行为。(3) 使用重载的目的是为了更好地表达行为共享,可以使程序员在只知道操作的一般含义而不知道操作的具体细节的情况下能正确地对某个对象使用一个操作。另外,使用重载的直接益处是减少了程序员记忆操作名字的负担3. 解答要点:(1) 用一个对象初始化另一个对象时;(2) 当用对象作为函数参数传递时;(3) 当程序中需要创建临时对象时(如函数返回对象时)。4. 解答要点:(1) 类是一组具有共同的属性特征和行为特征的对象的抽象;(2) 对象就是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,由一组属性和一组行为构成。(3) 类和对象之间的关系是抽象和具体的关系,类是对多个对象进行抽象的结果,对象是类的具体实现。四、 程序分析题(4×6)1. 错误位置:Point p;错误原因:

温馨提示

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

评论

0/150

提交评论