C++程序设计资料.docx
- 文档编号:4776609
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:24
- 大小:23.68KB
C++程序设计资料.docx
《C++程序设计资料.docx》由会员分享,可在线阅读,更多相关《C++程序设计资料.docx(24页珍藏版)》请在冰豆网上搜索。
C++程序设计资料
C++程序设计
考试题型:
1)单选题5个,15分
2)填空题10个,30分
3)程序阅读题4个,24分
4)程序填题10空,20分
5)编程题1个,11分
1.填空选择需要掌握的知识要点
1)在C++中,mutable也是为了突破const的限制而设置的。
被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。
2) volatile关键字是一种类型修饰符,这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。
3)const_cast转换符是用来移除变量的const或volatile限定符。
4)C++用到string类来处理字符串
5)typedef声明,简称typedef,为现有类型创建一个新的名字。
6)声明是将一个名称引入程序。
定义提供了一个实体在程序中的唯一描述。
7)流是C++语言流库用继承方法建立起来的一个输入/输出类库(I/O流类库),它具有两个平行基类:
streambuf和ios,所有的流类都是由它们派生出来的。
8)标准流为用户常用的外部设备提供与内存之间的通信通道,对数据进行解释和传输,提供必要数据缓冲。
9)四个标准I/O流对象:
cin、cout、cerr、clog
10)通过重载输入运算符“>>”来实现用户自定义类型的输入,定义格式如下:
istream&operator>>(istream&in,user_type&obj)
{
in>>obj.item1;
in>>obj.item2;
in>>obj.item3;
//……
returnin;
}
11)各文件流类的功能如下:
ofstream类:
输出流类,用于向文件中写内容。
ifstream类:
输入流类,用于从文件中读内容。
fstream类:
输入输出流类,用于既要读又要写的文件的操作。
12)文件流对象定义格式:
流类对象名(文件名,打开方式,保护方式);
第一个参数指文件路径及文件名字符串,第二个参数说明文件打开方式,第三个参数说明文件保护方式。
13)文件流的构造函数和open()函数用于打开文件,析构函数在流对象被删除之前关闭文件。
14)每一个文件都有两个指针,一个是读指针,说明输入操作在文件中当前位置;另一个是写指针,说明写操作在文件中的当前位置。
每次执行输入或输出操作时,相应的读写指针将自动后移。
15)一个类有多个直接基类的继承关系称为多继承
16)多个基类的派生类构造函数用初始化列表调用基类构造函数,执行顺序与单继承构造函数情况类似。
17)多个直接基类构造函数执行顺序取决于定义派生类时指定的各个继承基类的顺序。
按基类在被继承时所声明的次序从左到右依次调用。
18)当派生类从多个基类派生,而这些基类又从同一个基类派生,则在访问此共同基类中的成员时,将产生二义性——采用虚基类来解决。
19)虚基类声明:
以virtual修饰说明基类
例:
classB1:
virtualpublicB
20)虚基类对象是由最直接派生类的构造函数通过调用虚基类的构造函数进行初始化的。
21)异常处理可以增加系统的鲁棒性
22)关键字try:
出错时产生异常的代码放在try块中
23)关键字throw:
throw语句可以抛出任意类型的异常,包括自定义类型
24)关键字catch:
catch块(异常处理器)捕捉和处理异常
25)catch(…)能匹配成功所有的数据类型的异常对象,包括C++语言提供所有的原生数据类型的异常对象
26)可以在函数的声明中列出这个函数可能抛掷的所有异常类型。
例如:
voidfun()throw(A,B,C,D);
27)堆对象:
通过new运算符动态产生的对象
28)所谓模板是一种使用无类型参数来产生一系列函数或类的机制。
29)模板通过参数实例化可以构建具体的函数或类,称为模板函数和模板类。
30)如同函数模板一样,类模板是参数化的类,即用于实现数据类型参数化的类。
31)容器:
可容纳各种数据类型的数据结构。
32)迭代器:
可依次存取容器中元素的东西
33)算法:
用来操作容器中的元素的函数模板。
例如,STL用sort()来对一个vector中的数据进行排序,用find()来搜索一个list中的对象。
34)容器分为三大类:
1)顺序容器
vector:
后部插入/删除,直接访问
deque:
前/后部插入/删除,直接访问
list:
双向链表,任意位置插入/删除
2)关联容器
set:
快速查找,无重复元素
multiset:
快速查找,可有重复元素
map:
一对一映射,无重复元素,基于关键字查找
multimap:
一对一映射,可有重复元素,基于关键字查找
前2者合称为第一类容器
3)容器适配器
stack:
LIFO
queue:
FIFO
priority_queue:
优先级高的元素先出
2.程序阅读题
1)#include
usingnamespacestd;
classClxTest{
public:
ClxTest();
~ClxTest();
voidOutput()const;
intGetOutputTimes()const;
private:
mutableintm_iTimes;
};
ClxTest:
:
ClxTest()
{m_iTimes=0;}
ClxTest:
:
~ClxTest()
{}
voidClxTest:
:
Output()const
{cout<<"Outputfortest!
"< m_iTimes++; } intClxTest: : GetOutputTimes()const {returnm_iTimes;} voidOutputTest(constClxTest&lx) { cout< lx.Output(); cout< } voidmain(){ ClxTestts1; OutputTest(ts1); } 2)#include #include usingnamespacestd; intmain(){ stringstrinfo="//*---HelloWord! ......------"; stringstrset="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; intfirst=strinfo.find_first_of(strset); if(first==string: : npos){ cout<<"notfindanycharacters"< } intlast=strinfo.find_last_of(strset); if(last==string: : npos){ cout<<"notfindanycharacters"< } cout< } 3)#include #include usingnamespacestd; voidstring_replace(string&strBig,conststring&strsrc,conststring&strdst){ string: : size_typepos=0; string: : size_typesrclen=strsrc.size(); string: : size_typedstlen=strdst.size(); while((pos=strBig.find(strsrc,pos))! =string: : npos){ strBig.replace(pos,srclen,strdst); pos+=dstlen; } } intmain(){ stringstrinfo="ThisisWinter,Winterisaprogrammer.DoyouknowWinter? "; cout<<"Orignstringis:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 程序设计 资料