




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 第第1章章 C+的初步知识的初步知识*1.1 1.1 从从C C到到C+C+* *1.2 1.2 最简单的最简单的C+C+程序程序 1.3 C+1.3 C+程序的构成和书写形式程序的构成和书写形式 1.4 C+1.4 C+程序的编写和实现程序的编写和实现 1.5 1.5 关于关于C+C+上机实践上机实践 C+语言发展历史语言发展历史 自从自从1946年第一台电子数字计算机年第一台电子数字计算机ENIAC问世以来,问世以来,随着计算机应用领域的不断扩大,促进了计算机技术随着计算机应用领域的不断扩大,促进了计算机技术的高速发展,尤其是近年来计算机的硬件和软件都是的高速发展,尤其是近年来计算机的硬
2、件和软件都是日新月异。作为应用计算机的一种工具日新月异。作为应用计算机的一种工具程序设计语程序设计语言,得到不断的充实和完善。每年都有新的程序设计言,得到不断的充实和完善。每年都有新的程序设计语言问世,老的程序设计语言不断地更新换代。语言问世,老的程序设计语言不断地更新换代。 *1.1 从从C到到C+1972年,贝尔实验室的年,贝尔实验室的Dennis Ritchie和和Brian kernighan设计出了设计出了C语言。当时,语言。当时,设计设计C语语言是为了编写言是为了编写UNIX操作系统的。操作系统的。以后以后,C语言经过多次改进语言经过多次改进,并开始流行。并开始流行。 为了克服为了
3、克服C语言本身存在的缺点,并保持语言本身存在的缺点,并保持C语言语言简洁、高效,与汇编语言接近的特点,简洁、高效,与汇编语言接近的特点,1980年,贝年,贝尔实验室对尔实验室对C语言进行了改进和扩充,主要体现在语言进行了改进和扩充,主要体现在将将“类类”的概念引入到的概念引入到C+中,并在中,并在1983年正式命年正式命名为名为C+(C Plus Plus)。)。 1988年正式通过并发布年正式通过并发布C+的国际标准。的国际标准。 C C+ 面向过程面向过程 面向对象面向对象总结总结:C是吸收了其它语言的优点并逐步成为了实用性很强是吸收了其它语言的优点并逐步成为了实用性很强的语言。的语言。C
4、+是在是在C语言的基础上发展和完善的语言的基础上发展和完善的.第第1 1篇篇 基基 本本 知知 识识第第2 2篇篇 面向过程的程序设计面向过程的程序设计第第3 3篇篇 基于对象的程序设计基于对象的程序设计第第4 4篇篇 面向对象的程序设计面向对象的程序设计C的部分C+新增的部分例例1.1 输出一行字符:输出一行字符: “This is a C+ program.”。程序如下:程序如下: #include /包含头文件包含头文件iostreamusing namespace std; /使用命名空间使用命名空间stdint main( ) coutThis is a C+ program.; r
5、eturn 0;在运行时会在屏幕上输出以下一行信息在运行时会在屏幕上输出以下一行信息:This is a C+ program. *1.2 最简单的最简单的C+程序程序 用用main代表代表“主函数主函数”的名字。每一个的名字。每一个C+程程序都必须有一个序都必须有一个 main 函数。函数。main前面的前面的int的作的作用是声明函数的类型为整型。程序第用是声明函数的类型为整型。程序第6行的作用是行的作用是向操作系统返回一个零值。如果程序不能正常执行,向操作系统返回一个零值。如果程序不能正常执行,则会自动向操作系统返回一个非零值,一般为则会自动向操作系统返回一个非零值,一般为-1。 函数体
6、是由大括号函数体是由大括号 括起来的。本例中主函数括起来的。本例中主函数内只有一个以内只有一个以cout开头的语句。注意开头的语句。注意C+所有语句所有语句最后都应当有一个分号。最后都应当有一个分号。 程序的第程序的第1行行“#include ”,这不是,这不是C+的语句,而是的语句,而是C+的一个预处理命令,它以的一个预处理命令,它以“#”开头以与开头以与C+语句相区别,行的末尾没有分号。语句相区别,行的末尾没有分号。 #include 是一个是一个“包含命令包含命令”,它,它的作用是将文件的作用是将文件iostream的内容包含到该命令所的内容包含到该命令所在的程序文件中,代替该命令行。文
7、件在的程序文件中,代替该命令行。文件iostream的作用是向程序提供输入或输出时所需要的一些信的作用是向程序提供输入或输出时所需要的一些信息。息。 iostream是是i-o-stream 3个词的组合,从它的形个词的组合,从它的形式就可以知道它代表式就可以知道它代表“输入输出流输入输出流”的意思,由于的意思,由于这类文件都放在程序单元的开头,所以称为这类文件都放在程序单元的开头,所以称为“头文头文件件”(head file)。 在程序进行编译时,先对所有的预处理命令进行在程序进行编译时,先对所有的预处理命令进行处理,将头文件的具体内容代替处理,将头文件的具体内容代替 #include命令行
8、,命令行,然后再对该程序单元进行整体编译。然后再对该程序单元进行整体编译。 程序的第程序的第2行行“using namespace std; ” 的意的意思是思是“使用命名空间使用命名空间std”。C+标准库中的类和函标准库中的类和函数是在命名空间数是在命名空间std中声明的,就需要用中声明的,就需要用“using namespace std; ”作声明,表示要用到命名空间作声明,表示要用到命名空间std中的内容。中的内容。 在初学在初学C+时,对本程序中的第时,对本程序中的第1,2行可以不必行可以不必深究,只需知道:深究,只需知道: 如果程序有输入或输出时,必如果程序有输入或输出时,必须使用
9、须使用“#include ”命令以提供必要的命令以提供必要的信息,同时要用信息,同时要用“using namespace std;” ,使,使程序能够使用这些信息,否则程序编译时将出错。程序能够使用这些信息,否则程序编译时将出错。例例1.2 求求a和和b两个数之和。两个数之和。/ 求两数之和求两数之和 (本行是注释行本行是注释行)#include /预处理命令预处理命令using namespace std; /使用命名空间使用命名空间stdint main( ) /主函数首部主函数首部 /函数体开始函数体开始 int a,b,sum; /定义变量定义变量 cinab; /输入语句输入语句 s
10、um=a+b; /赋值语句赋值语句 couta+b=sumendl; /输出语句输出语句 return 0; /如程序正常结束,向操作系统返回一个零值如程序正常结束,向操作系统返回一个零值 /函数结束函数结束第第1行行“/求两数之和求两数之和”是一个注释行,是一个注释行,C+规定在规定在一行中如果出现一行中如果出现“/”,则从它开始到本行末尾之间,则从它开始到本行末尾之间的全部内容都作为注释。的全部内容都作为注释。如果在运行时从键盘输入如果在运行时从键盘输入 123 456 则输出为则输出为a+b=579例例1.3 给两个数给两个数x和和y,求两数中的大者。,求两数中的大者。在本例中包含两个函
11、数。在本例中包含两个函数。#include using namespace std;int max(int x,int y) /定义定义max函数,函数值为整型,形式参数函数,函数值为整型,形式参数x,y为整型为整型 /max函数体开始函数体开始 int z; /变量声明,定义本函数中用到的变量变量声明,定义本函数中用到的变量z为整型为整型 if(xy) z=x; /if语句,如果语句,如果xy,则将,则将x的值赋给的值赋给z else z=y; /否则,将否则,将y的值赋给的值赋给z return(z); /将将z的值返回,通过的值返回,通过max带回调用处带回调用处 /max函数结束函数结
12、束int main( ) /主函数主函数 /主函数体开始主函数体开始 int a,b,m; /变量声明变量声明 cinab; /输入变量输入变量a和和b的值的值 m=max(a,b); /调用调用max函数,将得到的值赋给函数,将得到的值赋给m coutmax=mn; /输出大数输出大数m的值的值 return 0; /如程序正常结束,向操作系统返回一个零值如程序正常结束,向操作系统返回一个零值 /主函数结束主函数结束本程序包括两个函数本程序包括两个函数:主函数主函数main和被调用的函数和被调用的函数max。程序运行情况如下程序运行情况如下: 18 25 (输入输入18和和25给给a和和b)
13、max=25 (输出输出m的值的值) 注意注意:输入的两个数据间用一个或多个空格间隔,不能以逗号输入的两个数据间用一个或多个空格间隔,不能以逗号或其他符号间隔。或其他符号间隔。例例1.4 包含类的包含类的C+程序。(暂不做要求)程序。(暂不做要求)C+程序的结构和书写格式归纳如下:程序的结构和书写格式归纳如下: (1) 一个一个C+程序可以由一个程序单位或多个程序程序可以由一个程序单位或多个程序单位构成。每一个程序单位作为一个文件。在程序单位构成。每一个程序单位作为一个文件。在程序编译时,编译系统分别对各个文件进行编译,因此,编译时,编译系统分别对各个文件进行编译,因此,一个文件是一个编译单元
14、。一个文件是一个编译单元。(2) 在一个程序单位中,可以包括以下几个部分:在一个程序单位中,可以包括以下几个部分: 预处理命令预处理命令。上节。上节4个程序中都包括个程序中都包括#include命命令。令。 全局声明部分全局声明部分(在函数外的声明部分在函数外的声明部分)。在这部分。在这部分中包括对用户自己定义的数据类型的声明和程序中中包括对用户自己定义的数据类型的声明和程序中所用到的变量的定义。所用到的变量的定义。1.3 C+程序的构成和书写形式程序的构成和书写形式 函数函数。函数是实现操作的部分,因此函数是程。函数是实现操作的部分,因此函数是程序中必须有的和最基本的组成部分。每一个程序必序
15、中必须有的和最基本的组成部分。每一个程序必须包括一个或多个函数,其中必须有一个须包括一个或多个函数,其中必须有一个(而且只而且只能有一个能有一个)主函数主函数(main函数函数)。但是并不要求每一个程序文件都必须具有以上但是并不要求每一个程序文件都必须具有以上3个个部分,可以缺少某些部分部分,可以缺少某些部分(包括函数包括函数)。(3) 一个函数由两部分组成一个函数由两部分组成: 函数首部函数首部,即函数的第一行。包括函数名、函,即函数的第一行。包括函数名、函数类型、函数属性、函数参数数类型、函数属性、函数参数(形参形参)名、参数类型。名、参数类型。一个函数名后面必须跟一对圆括号,一个函数名后
16、面必须跟一对圆括号, 函数参数可函数参数可以缺省,如以缺省,如int main( )。 函数体函数体,即函数首部下面的大括号内的部分。,即函数首部下面的大括号内的部分。如果在一个函数中有多个大括号,则最外层的一对如果在一个函数中有多个大括号,则最外层的一对 为函数体的范围。为函数体的范围。函数体一般包括函数体一般包括:局部声明部分局部声明部分 (在函数内的声明部分在函数内的声明部分)。包括对本函。包括对本函数中所用到的类型、函数的声明和变量的定义。数中所用到的类型、函数的声明和变量的定义。执行部分执行部分。由若干个执行语句组成,用来进行有关。由若干个执行语句组成,用来进行有关的操作,以实现函数
17、的功能。的操作,以实现函数的功能。(4) 语句包括两类。一类是语句包括两类。一类是声明语句声明语句,另一类是,另一类是执行执行语句语句。 C+对每一种语句赋予一种特定的功能。语对每一种语句赋予一种特定的功能。语句是实现操作的基本成分,显然,没有语句的函数句是实现操作的基本成分,显然,没有语句的函数是没有意义的。是没有意义的。C+语句必须以分号结束。语句必须以分号结束。(5) 一个一个C+程序总是从程序总是从main函数开始执行的函数开始执行的,而,而不论不论main函数在整个程序中的位置如何。函数在整个程序中的位置如何。(6) 类类(class)是是C+新增加的重要的数据类型,是新增加的重要的
18、数据类型,是C+对对C的最重要的发展。有了类,就可以实现面的最重要的发展。有了类,就可以实现面向对象程序设计方法中的封装、信息隐蔽、继承、向对象程序设计方法中的封装、信息隐蔽、继承、派生、多态等功能。派生、多态等功能。(7)C+程序书写格式自由,一行内可以写几个语句,程序书写格式自由,一行内可以写几个语句, 一个语句可以分写在多行上。一个语句可以分写在多行上。 (8) 一个好的、有使用价值的源程序都应当加上必要一个好的、有使用价值的源程序都应当加上必要的注释,以增加程序的可读性。的注释,以增加程序的可读性。对对C+程序中的任何部分作注释。在程序中的任何部分作注释。在“/*”和和“*/”之之间的
19、全部内容作为注释。间的全部内容作为注释。有效有效范围为多行。范围为多行。,有效范围只有一行,即本行有效,有效范围只有一行,即本行有效,不能跨行。不能跨行。一般习惯是:一般习惯是: 内容较少的简单注释常用内容较少的简单注释常用“/”,内容,内容较长的常用较长的常用“/*/ ”。一个程序从编写到最后得到运行结果要经历的步骤:一个程序从编写到最后得到运行结果要经历的步骤:1. 用用C+语言编写程序语言编写程序用高级语言编写的程序称为用高级语言编写的程序称为“源程序源程序”(source program)。)。C+的源程序是以的源程序是以.cpp作为后缀的作为后缀的(cpp是是c plus plus
20、的缩写的缩写)。2. 对源程序进行编译对源程序进行编译为了使计算机能执行高级语言源程序,必须先用一为了使计算机能执行高级语言源程序,必须先用一种称为种称为“编译器编译器(complier)”的软件的软件(也称编译程序也称编译程序或编译系统或编译系统),把源程序翻译成二进制形式的,把源程序翻译成二进制形式的“目标目标程序程序(object program)”。1.4 C+程序的编写和实现程序的编写和实现编译是以源程序文件为单位分别编译的。目标程序一编译是以源程序文件为单位分别编译的。目标程序一般以般以.obj为后缀。编译的作用是对源程序进行词法检为后缀。编译的作用是对源程序进行词法检查和语法检查
21、。编译时对文件中的全部内容进行检查,查和语法检查。编译时对文件中的全部内容进行检查,编译结束后会显示出所有的编译出错信息。编译结束后会显示出所有的编译出错信息。一般编译系统给出的出错信息分为两种:一般编译系统给出的出错信息分为两种: 错误错误(error)和警告和警告(warning) 。3. 将目标文件连接将目标文件连接在改正所有的错误并全部通过编译后,得到一个或多在改正所有的错误并全部通过编译后,得到一个或多个目标文件。此时要用系统提供的个目标文件。此时要用系统提供的“连接程序连接程序(linker)”将一个程序的所有目标程序和系统的库文件将一个程序的所有目标程序和系统的库文件以及系统提供的其他信息连接起来,最终形成一个可以及系统提供的其他信息连接起来,最终形成一个可执行的二进
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 劳动合同实施明确承诺书9篇范文
- 电子商务法律法规及合同模板汇编
- 解除劳动合同申请范本
- 从刘某诉朱某房屋租赁合同纠纷案透视债务加入的法律适用与实践
- 绿色环保污水处理厂项目第一阶段可行性研究报告
- 绿色5000平方米绿色办公楼绿色办公可行性研究报告
- 可持续绿色建筑群规模效应可行性研究报告
- 绿色5000亩生态养殖农业可持续发展可行性研究报告
- 考研复试辅导合同
- 环保监测合同
- 反洗钱可疑交易识别课件
- 人教部编版小学三年级语文上册课后习题参考答案
- 光伏运维安全培训总结课件
- 2025年第九届全国中小学“学宪法、讲宪法”活动知识竞赛题库及答案
- 土石方运输居间合同范本土石方运输居间合同格式-仅供参考8篇
- 2025-2026学年人教版(PEP)三年级上册英语教学计划(三篇)
- 室外消火栓埋地施工方案
- 电源老化知识培训课件
- 施工质量月课件
- 2025年辅警笔试考试题库题库与答案
- 心血管疾病患者血糖波动管理的专家共识解读 8
评论
0/150
提交评论