C++期末考试复习题汇总.doc
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《C++期末考试复习题汇总.doc》由用户(金钥匙文档)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 期末考试 复习题 汇总
- 资源描述:
-
1、 1 C+语言程序设计语言程序设计 期末考试试题及答案期末考试试题及答案 姓名 _ 学号 _ 班号 _ 题 号 一 二(1) 二(2) 三 总 分 成 绩 一、填空一、填空 1在类中必须声明成员函数的 原型 ,成员函数的 实现 部 分可以写在类外。 2如果需要在被调函数运行期间,改变主调函数中实参变量的值,则 函数的形参应该是 引用 类型或 指针 类型。 3 抽象 类只能作为基类使用,而不能声明它的对象。 4进行函数重载时,被重载的同名函数如果都没有用 const 修饰,则 它们的形参 个数 或 类型 必须不同。 5通过一个 常 对象只能调用它的常成员函数,不能调用其他成员 函数。 6函数的递
2、归调用是指函数直接或间接地调用 自身 。 7拷贝构造函数的形参必须是 本类对象的引用 。 2 二、阅读下列程序,写出其运行时的输出结果二、阅读下列程序,写出其运行时的输出结果 如果程序运行时会出现错误,请简要描述错误原因。 1 请在以下两题中任选一题, 该题得分即为本小题得分。如两题都答, 则取两题得分之平均值为本小题得分。 (1)程序: #include #include class Base private: char msg30; protected: int n; public: Base(char s,int m=0):n(m) strcpy(msg,s); void output(
3、void) coutListEmpty() la-DeleteAt(); else 第 8 页 共 109 页 lc-InsertRear(lb-Data(); lb-DeleteAt(); while ( !la-ListEmpty() ) lc-InsertRear(la-Data(); la-DeleteAt(); while ( !lb-ListEmpty() ) lc-InsertRear(lb-Data(); lb-DeleteAt(); int main() LinkedList la, lb, lc; int item, i; /读如数据建立链表 la for (i=0;i i
4、tem; la.InsertRear(item); la.Reset(); /读如数据建立链表 lb for (i=0;i item; lb.InsertRear(item); lb.Reset(); MergeList(/合并链表 lc.Reset(); / 输出各节点数据,直到链表尾 while(!lc.EndOfList() cout DisPoint(); delete p; return 0; 上面程序的输出结果为: 3若有以下程序: #include class Base public: 第 21 页 共 109 页 void Fun() cout = 1 ; i- ) for(
5、j = 1; j 1 5.友元关系不能( ) A.继承 B.是类与类的关系 C.是一个类的成员函数与另一个类的关系 D.提高程序的运行效率 6.语句ofstream f(SALARY.DAT,ios:appios:binary)的功能是建立流对象f,试图打开文 件SALARY.DAT 并与之连接,并且( ) A.若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件 B.若文件存在,将其置为空文件;若文件不存在,打开失败 C.若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件 D.若文件存在,打开失败;若文件不存在,建立一个新文件 7.下面说法正确的是( ) A.内
6、联函数在运行时是将该函数的目标代码插入每个调用该函数的地方 B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方 C.类的内联函数必须在类体内定义 D.类的内联函数必须在类体外通过加关键字inline 定义 8.可以用p.a 的形式访问派生类对象p 的基类成员a,其中a 是( ) A.私有继承的公有成员B.公有继承的私有成员 C.公有继承的保护成员D.公有继承的公有成员 9.在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是( ) A.派生类的对象可以赋给基类的对象 B.派生类的对象可以初始化基类的引用 C.派生类的对象可以直接访问基类中的成员 D.派生类的对象的地址
7、可以赋给指向基类的指针 10.对于类定义 class A public:virtual void func1( ) void func2( ) 第 56 页 共 109 页 class B:public A public:void func1( )cout是() pa-push(7075461); coutfilename; ifstream input(filename);/() coutnumber)/() outputnext = NULL; ; template void CLinkList:AppendNode( D data) Node * p = pHead; while( p-
8、next ) p = p-next; p-next = new Node; p-next-data = data; p-next-next = NULL; template void CLinkList:PrintList() Node * p; p = pHead-next; while( p ) cout Fun(); 第 95 页 共 109 页 pb-Print (); pd-Print (); pb = pb-Fun(); pb-Print(); /* D:Fun B:Fun D:Fun nBVal=2 nBVal=24 nDVal=8 B:Fun nBVal=12 */ 6)(4
9、分) class Base public: int val; Base() cout show(); 执行结果: A A A A 6-2 #include using namespace std; class A 第 102 页 共 109 页 public: virtual void show()coutshow(); 执行结果: B B C C 7全局对象在执行主函数前创建,静态对象只创建一次,他们均在程序结束时释放。 #include using namespace std; class name int a; public: name(int i)coutshow();r-show()
10、; p=q;p-show();p=r;p-show();q=r;r-show(); 执行结果: A B C B C C 10 #include using namespace std; class B int a; public: B(int i)a=i; void show()cout统称成员运算,均是左结合。 结构体成员可作为普通变量使用。 7.8 结构体成员的调用格式中有成员运算,因此,它参与运算(或操作)时,要适当加括号。 7.9 结构体成员可与普通变量、其它结构体的成员同名,也可与其上、下层结构体的成员同名。 7.10 元素为结构体的数组称作结构体数组, 以结构体为基类型的指针称作结
11、构体指针, 它们的定义和使用与普通 数组和普通指针基本相同。 7.11 共用体与结构体相似,主要区别有:定义共用体的保留字为 union;同一共用体数据中各成员的基址相 同,整体存储量为其成员的存储量之最大者。共用体中最后一次赋值的成员将覆盖之前赋值的所有成员,因此,只 有最后一次赋值的成员有意义。共用体变量初始化时,数据表中只有一个数据或数据表,它被赋给第一个成员。 7.12 定义枚举类型的一般语句格式和功能: 格式 enum 标识符枚举元素表变量表; 功能 指定枚举类型名,指定枚举元素的值,定义枚举型变量。第一个枚举元素的默认值为 0,其它枚举元素的 默认值为其前者加 1。 上述“标识符”
12、和枚举“变量表”可缺省。 7.13 枚举元素属只读变量,其值不可修改。 7.14 枚举型数据与 int 型兼容,存储量相同,但是,把 int 数据赋给枚举变量需强制转换类型。 7.15 typedef 语句的一般格式和功能为: 格式 typedef 数据类型名 别名表; 功能 给指定数据类型增加一组别名。 7.16 定义指针类型别名的格式为: 格式 typedef 类型名 *别名,*别名; 7.17 定义数据类型别名的格式为: 格式 typedef 元素类型名 别名第 1 维大小第 n 维大小,; 7.18 typedef 语句可在定义结构体、共同体、枚举类型的同时给它增加一组别名。 第 8
13、章 类和对象 8.1 面向对象程序设计方法可简单地定义为:以类为核心、以对象为基本操作单元、以消息传递为基本操作、具 有继承机制的程序设计方法。 8.2 面向对象中的对象是对具体客观事物的抽象,包括属性抽象和行为抽象两个方面。 8.3 属性是对象的静态特征,被抽象为成员变量,又称数据、数据结构等。 8.4 行为是对象的动态特征,被抽象为成员函数,又称操作、运算、功能、方法、算法等。 8.5 属性和行为是对象的两个要素, 对象是由其属性和行为组成的有机体。 把对象的数据(属性)和操作代码(行为) 第 105 页 共 109 页 封装成相对独立的基本单位称作封装或封装性。即,对象=数据结构+算法。
14、 8.6 类是具有相同属性和行为的一组对象的模板,是一组对象的共性之抽象。 8.7 定义类的一般语句格式和功能为: 格式 class 类名访问权限:成员变量和成员函数对象表; 功能 指定类名,指定类中成员及其访问权限。 8.8 类的成员访问权限分为三种: private: 私有的不对外(不可见)。 public: 公有的对外(可见)。 protected: 保护的仅对子类(可见)。 8.9 成员的默认访问权限是 private,新规定的访问权限取代之前的访问权限。 8.10 定义类的关键字 class 可改用 struct,后者规定,成员的默认访问权限是 public。 8.11 定义对象的一
15、般语句格式和功能为: 格式 类名 对象名(实参表或对象) 功能 创建指定对象,并初始化。 注意:省略全部实参时,要连同()一起省略。 8.12 由类创建对象称作类的实例化,对象又称类的实例。同类对象具有相同数据结构和操作。 8.13 类的成员可在类体外定义,但必须在类体中作相应声明,定义时必须在函数名前声明所在的类“类名:”, 此“:”称作作用域限定符。 8.14 类的成员函数只占一份存储空间,同类对象其享成员函数,对象只存储其成员变量。 8.15 访问对象中成员的一般格式为: 格式 对象名.公有成员变量名 格式 对象名.公有成员函数名(实参表) 格式 对象指针-公有成员变量名 格式 对象指针
16、-公有成员函数名(实参表) 8.16 在定义类时,其成员没有访问权限,均可访问。 8.17 在定义类时,当前对象的指针为 this,未被形参屏蔽的成员可省略前缀。 8.18 对象与外界交流信息又称传递消息,形式上表现为调用成员函数。 8.19 对象中的公用成员又称对外接口,只要接口不变,对类的内部修改不影响类外程序。 8.20 在定义类时,通常,把所有数据和不提供给外界使用的操作指定为私有的,使它们在外界只能被公有的操作 访问。这种做法称作信息隐蔽或隐蔽性。 第 9 章 关于类和对象的进一步讨论 9.1 构造函数是一个特殊成员函数。从形式上说,构造函数与类同名。从机制上说,构造函数在创建对象时
17、被自 动调用,通常用于初始化对象。 9.2 每个类都有其构造函数。无形参且函数体为空的构造函数可省略,此时称作隐式构造函数。 9.3 类中的成员变量不占内存,在定义类时,不允许给成员变量赋初值。 9.4 对象的初始化有以下几种格式: 格式一 类名 对象名=数据表 功能 把数据表中数据依次赋给对象的成员变量。 注意:此格式要求,成员变量均是公有的。 格式二 类名 对象名=对象 或 类名 对象名(对象) 功能 把右侧对象的成员变量依次赋给左侧对象的成员变量。 注意:此格式要求,右侧对象必须已存在,且与左侧对象属于同一类。 格式三 类名 对象名(初值表) 功能 以初值表为实参调用构造函数。 9.5
18、构造函数返回一个该类对象,其成员变量取构造函数结束时的值。但是,构造函数不允许定义返回值的类型, 不允许用带有返回值的 return 语句。 9.6 调用构造函数不允许加前缀(“对象.”或“对象指针-”)。构造函数应当定义为 public,除非该类不创建 对象。 9.7 定义构造函数可采用下述格式: 构造函数名(形参及类型、默认值表):成员变量(初值),成员变量(初值) 第 106 页 共 109 页 其中,成员变量不允许重复。 9.8 函数允许同名,称作函数的重载,它们的形参个数或类型必须有所区别,具体调用哪个函数由实参个数和类 型确定。构造函数也可重载。 9.9 允许指定函数形参的默认值,
展开阅读全文