版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、,自学考试 C+程序设计,第一章 认识+对象,1.动态分配内存 使用new关键字,例如: 指针名 = new 结构名 2.引用 数据类型 则b是对a的引用 3.什么是左值和右值? 左值:必须是能被计算和修改的。也可以是指存储数据的那块地址 右值:是常量,不能被修改和赋值的,但能进行计算的。 4.指向常量的指针 常量指针是在非常量指针声明前面使用const 例如:const int *p 注意:要将指针指向常量必须使用常量指针,常量指针不能作为左值。 5.常量指针 常量指针:把const放在*的右边使指针本身成为一个常量指针。常量指针在声明后必须赋值进行初始化,切在他的真个生存期内他是不可变的。
2、里面的值可以使用间接运算符*来改变他的值。,例如:int x = 5; Int *const p = 7.泛型算法应用于普通数组 对数组进行升幂排序,反转数组内容,复制数组等要包含头文件包 对数组进行降幂排序和检索要包含头文件包 (1)反转数组内容:reverse(a , a+数组长度) (2)复制数组内容 : copy(a,a + 数组长度,b) (3)Severse_copy(a ,a +数组长度 ,b) Severse_copy是将数组的内容从尾到头的逆向复制 (4)数组升幂排序:sort(a , a+数组长度) (5)数组降幂排序 : sort(b , b+ 数组长度 , value)
3、 (6)查找数组内容 : find(a , a+数组长度 ,value),注意: 查找函数返回的是指针的位置,虽然可以使用*运算符,但是更一般的方法是使用判别语句。 例如:Type *x = find(a,a+len , value) If(x = a + len) Cout (cout,字符串); 注意:可将ostream_iyerator理解为输出流控制符,表示数组元素的数据类型。本语句是在屏幕输出数组内容,并把每一个元素和字符串的内容组合在一起 。,8.数据的简单输入输出 C+提高了两种格式控制方式:一种是使用ios_base类提供的接口;另一种是称为操控符的特殊函数,它的特点是可以直接
4、包含在输出和输入表达式中,因此更加方便。 不带参数操控符定义在头文件中,带形式的定义在头文件中 三是无参数的操控符函数不能带有(),1.string 对象 (1)string对象包含于#include头文件包中 (2)计算字符串长度的函数:size(),使用方法是 字符串.size() (3)返回字符串子串的函数:substr(起始位置,结束位置) 注意:给出的起始位置必须位于字符串中,否则出错。如果结束位置大于字符串的长度,则自动截取到字符串尾部。 (4)字符串查找函数:fing(要查找字符串,开始查找的位置) (5)String类有一对用来指示其元素位置在的基本函数成员:begin()和e
5、nd(), Begin()指示第一个元素,end()指示最后一个元素之后。如果begin()不等于end(),则算法首先作用于begin()所指元素,然后指向下一个元素,知道begin()等于end()。所以元素存在于半开区间begin,end)中。 (6)char定义的字符串使用“0”作为结束标记。String不是。,第二章从结构到类的演变,2.使用complex对象 (1)这个对象包含于头文件#include中 。 使用方法:complex 对象名(实部值,虚部值) Complex使用成员函数real()和imag()函数输出实部和虚部值 (2)string类型的数组的swap()成员函数
6、可以交换连个数组分量。,1.函数的参数及其传递方式 (1)对象作为函数参数:将对象作为函数参数,是将实参对象的值传递给形参对象,这种传递是单向的。形参拥有实参的备份,不会影响原来实参的值。改变的是这个备份中的值。 (2)对象指针作为函数参数:将指向对象的指针作为函数参数,形参是对象指针,实参是对象的地址值。虽然参数传递方式仍然是传值方式,因为形参传递的就是实参的本身,所以当在函数中改变形参的值时就是改变实参的值。 (3)引用作为函数参数:使用引用作为函数的参数,这是并没有太对形参对象进行初始化,即没有指定形参对象是哪个对象的别名。在调用函数时实参对象名传递给形参对象名,形参对象名就成为实参对象
7、名的别名。实参对象和形参对象代表同一个对象,所以改变形参对象就是改变实参对象。 注意:虽然系统向形参出阿迪的是实参的地址而不是值,但是参数必须使用对象名。 例如:swap(str1,str2) 不能swap( n = b (4)除静态数据成员的初始化之外,静态成员遵循类得其他成员所遵循的访问限制,虽然还没有建立对象,但是静态成员已经存在。 (5)Static不是函数类型中的一部分,所以在类声明之外定义静态成员函数时,不使用static。在类中定义的静态成员函数时内联的。 (6)类的任何成员函数都可以访问静态成员。因为静态成员函数没有this指针,所以静态成员函数只能通过对象名(或指向对象的指针
8、)访问该对象的非静态成员。,2.友元函数 (1)友元函数可以存取私有成员,公有成员和保护成员。其实友元函数可以是一个类或函数,尚未定义的类也可以作为友元。 (2)友元函数在类中声明,但是他并不属于类得成员函数,所以可以在类得外面想普通函数一样定义这个函数。 (3)将成员函数作为友元:一个类得成员函数(包括构造函数和析构函数)可以通过使用friend说明为另一个类非友元。 (4)将一个类说明为另一个类的友元:可以讲一个类说明为另一个类得友元,这时整个类得成员函数均具有友元函数的性能。声明形式为:friend class 类名;,3.Const对象 (1)可以造类中使用const关键字定义数据成员
9、和成员函数或修饰一个对象。一个const对象只能访问const成员函数。 (2)常量成员:常量成员包括常量数据成员,静态常数据成员和常引用。静态常数据成员仍保留静态成员函数,需要在类外初始化。常数据成员和常引用只能通过初始化列表来获得初值。 (3)常引用作为函数参数:使用引用作为函数参数,传得是地址。有时希望将参数的值传递给函数使用,并不允许函数改变对象的值,这是可以使用常引用作为参数。 例如:void Display(const double /定义type的向量表 Vectorname(length);/定义具有length哥type的向量,元素初始化为0 Vectorname(lengt
10、h a);/定义具有length个type的向量元素初始化为a Vectorname1(name);/使用已定义的向量name定义name1,(3)不能使用列表初始化向量,但可以先初始化一个数组,然后把数组的内容复制给向量。例如:int IA10 = 1,98,1,20,152,20,48,10,14,30; VectorVB(IA,IA+10) IA是数组名,代表数组的起始地址。IA+10是VB的结束标志位,因为向量自动产生 一个结束标志。 (4)泛型指针:向量具有指示第一个元素的标记begin和指示结束的标记end所指元素。当元素部位空是,算法首先会作用于begin所指元素,并将begin
11、前进一个位置。 (5)在向量中,泛型指针是在底层指针的行为之上提供一层抽象化机制,取代程序原来的“指针直接操作方式”。假设用T表示向量的参数化数据类型,iterator在STL里面是一种通用的指针,它在向量中的作用相当于T*.用 iterator什么向量的一般形式: Vector:reverse_iterator 指针名; 逆向向量泛型指针使用reverseiterator,声明方法如下: Vector:reverse_iterator 指针名,(6)使用typedef可以使声明或定义泛型的手续简单易懂,例如下面泛型指针P:iterator p; (7)向量的数据类型向量除了可以使用基本数据类
12、型之外,还可以使用构造类型,只要符合构成法则即可。 3.向量最基本的操作方法 (1)访问向量容量的方法: Size():向量中当前已经存放的对象个数。 Max_Size():返回向量中可以容纳最多对象的个数,一般式寻址空间所容纳的对象的个数。 Capacity():返回无需再次分配内存就能容纳的对象个数。他的初始值就是程序员最开始申请的元素个数。它在原来的基础上自动翻倍扩充空间。 Max_size = capacity() = size() (2)访问向量中对象的方法 Front():返回向量中第一个对象 Back():返回想了中的最后一个对象 Operator(size_type,n):返回
13、向量中第n+1个对象,(3)在向量中插入对象的方法 Push_back(const Tnum+;return i; 使用友元 Int operator+(number ,二、流类库,ios,streambuf,istream,ostream,iostream,一个指针成员指向该类对象,三、文件流 ofstream myFile; /建立输出流myFile myFile.open(myText.txt); /建立输出流myFile和文件myText.txt之间的关联 myFilechi; /将每次读入的1个字符赋给数组的元素chi chi=0; /设置结束标志 getText.close();
14、/关闭文件,2015年10月 C+程序设计 试卷,本试卷共10页,满分100分,考试时间150分钟。 考生答题注意事项: 1本卷所有试题必须在答题卡上作答。答在试卷上无效,试卷空白处和背面均可作草稿纸。 2第一部分为选择题。必须对应试卷上的题号使用2B铅笔将“答题卡”的相应代码涂黑。 3第二部分为非选择题。必须注明大、小题号,使用05毫米黑色字迹签字笔作答o 4合理安排答题空间,超出答题区域无效。 第一部分 选择题 一、单项选择题 (本大题共20小题,每小题1分。共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题卡” 的相应代码涂黑。未涂、错涂或多涂均无分。
15、1在C+语言中用于注释的标识符是 A& B C* D 2编写C+程序一般需经过的几个步骤依次是 A编辑、调试、编译、连接 B编译、调试、编辑、连接 C编译、编辑、连接、运行 D编辑、编译、连接、运行,3要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用 A内联函数 B重载函数 C内部函数 D函数模板 4设x=8,执行语句Y=x+,则y等于 A6 B7 C9 D8 5下列运算符中,优先级最高的是 A. * B一 C& D= 6关于new运算符的下列描述中,错误的是 A它可以用来动态创建对象和对象数组 B使用它创建的对象和对象数组可以使用运算符delete删除 C使用它创建对象时要调
16、用构造函数 D使用它创建对象数组时必须指定初始值 7存储下列数据,占用存储字节最多的是 A. 0 B0 C0 D00 8关于类和对象不正确的说法是 A类是一种类型,它封装了数据和操作 B对象是类的实例 C一个类的对象只有一个 D一个对象必属于某个类,9下列有关构造函数的描述中,正确的是 A构造函数可以带有返回值 B构造函数的名字与类名完全相同 C构造函数必须带有参数 D构造函数必须定义,不能缺省 10假定a为一个整型数组名,则元素a4的字节地址为 A. a+4 Ba+8 Ca+16 Da+32 11类中能访问静态成员的函数是 A虚函数 B静态成员函数 C. 构造函数 D析构函数 12下列说明语
17、句中正确的是 Aint a,&ra=a,&ref=ra Bint&refa10 Cint a,&ra=a,*refp=&ra Dint*pi,*&pref=pi 13关于对象概念的描述中,说法错误的是 A对象就是C语言中的结构体 B对象代表着正在创建的系统中的一个实体 C对象是类的一个变量 D对象之间的信息传递是通过消息进行的,14有关多态性说法不正确的是 AC+语言的多态性分为编译时的多态性和运行时的多态性 B编译时的多态性可通过函数重载实现 C运行时的多态性可通过模板和虚函数实现 D实现运行时多态性的机制称为动态多态性 15关于友元函数的描述中,错误的是 A友元函数不是成员函数 B友元函数
18、只能访问类中私有成员 C友元函数破坏隐藏性,尽量少用 D友元函数说明在类体内,使用关键字friend 16类中定义的成员默认访问属性为 Apublic Bprivate Cprotected Dfriend 17拷贝构造函数的参数是 A某个对象名 B某个对象的成员名 C某个对象的引用名 D某个对象的指针名,18关于类模板的说法正确的是 A类模板的主要作用是生成抽象类 B类模板实例化时,编译器将根据给出的模板实参生成一个类 C在类模板中的数据成员具有同样类型 D类模板中的成员函数没有返回值 19下列有关重载函数的说法中正确的是 A重载函数必须具有不同的返回值类型 B重载函数参数个数必须相同 C重
19、载函数必须有不同的形参列表 D重载函数名可以不同 20当一个类的某个函数被说明为virtual时,在该类的所有派生类中的同原型函数 A都是虚函数 B只有被重新说明时才是虚函数 C都不是虚函数 D只有被重新说明为virtual时才是虚函数,第二部分 非选择题 二、填空题(本大题共20小题,每小题1分,共20分) 请在答题卡上作答。 21C语言中scanf命令在C+中改用:_。 22假定类AB中有一个公用属性的静态数据成员static int bb;在类外不通过对象名给该成 员bb赋值为10的写法:_。 23在类内部定义的公有(public)数据可以在类外进行存取,但_和私有 (private)数
20、据不能在类外直接存取。 24在C+中,虚函数帮助实现了类的_。 25如果要把类B的成员函数void fun( )说明为类A的友元函数,则应在类A中加入语句_. 26执行下列程序double a=31415926,b=314;coutsetprecision(5)a, setprecision(5)bendl;程序的输出结果是_。 27在C+中,访问一个指针所指向的对象的成员所用的指向运算符是_。,28基类的公有成员在派生类中的访问权限由_决定。 29由const修饰的对象称为_。 30如果通过同一个基类派生一系列的类,则将这些类总称为_。 31. 为了实现运行时的多态性,派生类需重新定义基类中的_。 32在C+中有两种参数传递方式:传值和传_。 33C+中ostream的直接基类_。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 考古遗址桥梁保护协议
- 债权转为股权投资协议
- 2025版电子商务供应链金融合作协议3篇
- 高铁建设机械费施工合同
- 联营合作项目管理误区
- 运输企业社会责任与可持续发展
- 临时娱乐市场建设合同
- 雕塑艺术任课教师聘用合同
- 宠物行业经纪人招聘协议
- 招投标项目环境保护要求
- 穿越河流工程定向钻专项施工方案
- 地球物理学进展投稿须知
- 机床精度检验标准 VDI3441 a ISO230-2
- 社会主义新农村建设建筑废料利用探究
- 解析电力施工项目的信息化管理
- 火炬介绍 音速火炬等
- 制剂申请书(共16页)
- 《质量守恒定律》评课稿
- 人教版七年级上册地理《第4章居民与聚落 第3节人类的聚居地——聚落》课件
- 对县委常委班子及成员批评意见范文
- 数据中心IDC项目建议书
评论
0/150
提交评论