高级语言程序设计2-1_第1页
高级语言程序设计2-1_第2页
高级语言程序设计2-1_第3页
高级语言程序设计2-1_第4页
高级语言程序设计2-1_第5页
已阅读5页,还剩60页未读, 继续免费阅读

付费下载

下载本文档

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

文档简介

1、1高级语言程序设计高级语言程序设计2-12-1 课程简介:学习一门必须熟练掌握的、用来与计课程简介:学习一门必须熟练掌握的、用来与计算机进行算机进行“沟通沟通”、指挥计算机为我们做事情的程序、指挥计算机为我们做事情的程序设计语言,是其他多门必修课程的前导课程。该学期设计语言,是其他多门必修课程的前导课程。该学期主要学习主要学习C+C+语言非面向对象部分的内容,其中包括语言非面向对象部分的内容,其中包括表达式、各种语句、分支与循环处理、数组与结构、表达式、各种语句、分支与循环处理、数组与结构、函数及其应用等。函数及其应用等。 本课程非常重要!一定要下功夫学好!本课程非常重要!一定要下功夫学好!2

2、课时安排课时安排 本学期:每周上课本学期:每周上课2 2课时,上机课时,上机3 3课时。课时。 总成绩总成绩100100分分 平时成绩平时成绩 上机实践上机实践成绩期末笔试成绩。成绩期末笔试成绩。 (下学期:高级语言程序设计(下学期:高级语言程序设计2-22-2,每周,每周上课上课3 3课时,上机课时,上机4 4课时?)课时?)3教学用书及参考书教学用书及参考书 教学用书:教学用书:高等教育出版社,高等教育出版社,高级语高级语言言C+C+程序设计程序设计,刘,刘璟璟 编著,(编著,(p1-306p1-306,17.317.3元)。元)。 参考书:参考书: (1 1)清华大学出版社,)清华大学出

3、版社,C+C+程序设计教程序设计教程程,钱能,钱能 主编,(主编,(p1-468p1-468,39.539.5元)。元)。4参考书参考书 (2 2)电子工业出版社,)电子工业出版社,C+C+语言程序设计语言程序设计,吕,吕风翥风翥 编著,(编著,(p1-415p1-415,3333元)。元)。 (3 3)高等教育出版社,)高等教育出版社,高级语言高级语言C+C+程序设计编程序设计编程范例与精解程范例与精解,周玉龙,周玉龙 刘刘璟璟 编著,(编著,(p1-561p1-561,3939元,元,20032003年年4 4月第月第1 1版)。版)。 (4 4)南开大学出版社,)南开大学出版社,C+C+

4、实用编程技术百例精实用编程技术百例精编与妙解编与妙解,周玉龙编著,(,周玉龙编著,(p1-461p1-461,4141元,元,20042004年年1 1月第月第1 1版)。版)。 5第第 1 1章章 C+C+语言概述语言概述 1.0 1.0 计算机基础知识(补充)计算机基础知识(补充) 1.1 1.1 计算机程序设计语言的发展计算机程序设计语言的发展 1.2 1.2 面向对象语言及其特点面向对象语言及其特点 1.3 1.3 C+C+简单程序实例简单程序实例 1.4 1.4 简单实例程序中的语法点简单实例程序中的语法点 1.5 1.5 执行执行C+C+程序程序61 10 0 计算机基础知识(补充

5、)计算机基础知识(补充) 1 10 01 1 计算机组成(硬件)计算机组成(硬件) 1 10 02 2 数的进制(二进制、八进制、十六进数的进制(二进制、八进制、十六进制)制)1 10 03 3 不同数制间的转换不同数制间的转换1 10 04 4 存储器单元与机器指令存储器单元与机器指令71 10 01 1 计算机组成计算机组成(硬件,(硬件,HardwareHardware) 1 1存储器存储器(RAM RAM Random Access Random Access MemoryMemory):):存储程序指令和数据。存储程序指令和数据。 2 2 中 央 处 理 器中 央 处 理 器 ( C

6、 P U C P U C e n t r a l C e n t r a l Processing UnitProcessing Unit):):又可细分为控制器(又可细分为控制器(CUCU)和运算器(和运算器(ALUALU),),即,即,CPU = CU + ALUCPU = CU + ALU。 3 3输入输出设备输入输出设备(I/O I/O Input / Input / OutputOutput):):也称外部设备,负责对数据和程序也称外部设备,负责对数据和程序进行输入与输出进行输入与输出。8附注:附注: (1 1)控制器控制器(CU CU Control Unit Control Un

7、it):):控控制和协调各个部件正常运行。制和协调各个部件正常运行。 (2 2)运算器运算器(ALU ALU Arithmetic Logic Arithmetic Logic UnitUnit):):进行算术和逻辑运算。进行算术和逻辑运算。另外:相对应的另外:相对应的计算机软件计算机软件(SoftwareSoftware)包括包括系统软件(如,操作系统、编译程序等)和应系统软件(如,操作系统、编译程序等)和应用软件。用软件。硬件硬件 - - “看得见,摸得着看得见,摸得着”;软件软件 - - “看不见,摸不着看不见,摸不着”。 91 10 02 2 数的进制(二进制、八进数的进制(二进制、八

8、进制、十六进制)制、十六进制) 1 1二进制数(逢二进制数(逢 2 2 进进 1 1) 每个每个二进制数位(二进制数位(BitBit)只有只有 0 0 和和 1 1。每位的每位的权(权(weightweight)从右往左依次为:从右往左依次为:2 2n n(n = 0n = 0,1 1,2 2,3 3 )。)。 例如例如, ,具有具有4 4位的二进制数位的二进制数10111011(2 2): :10111011(2 2) = 1 = 12 23 3 + 0 + 02 22 2 + 1 + 12 21 1 + 1 + 12 20 0 = 8 + 0 + 2 = 8 + 0 + 2 + 1 = 1

9、1+ 1 = 11(1010)。)。 最小的具有最小的具有4 4位的二进制数为位的二进制数为0 0,而最大的,而最大的4 4位二进制数位二进制数为为1515。10 与具有与具有4 4位的十进制数位的十进制数10111011进行比对:进行比对: 1011 = 11011 = 110103 3 + 0 + 010102 2 + 1 + 110101 1 + + 1 110100 0 = 1000 + 0 + 10 + 1 = 1011 = 1000 + 0 + 10 + 1 = 1011。十进制数十进制数5216052160: 52160 = 5 52160 = 510104 4 + 2 + 21

10、0103 3 + 1 + 110102 2 + + 6 610101 1 + 0 + 010100 0。 112 2八进制数(逢八进制数(逢 8 8 进进 1 1) 每位只能够出现:每位只能够出现:0 0、1 1、2 2、7 7。 每位的每位的权(权(weightweight)从右往左依次为:从右往左依次为:8 8n n(n = 0n = 0,1 1,2 2,3 3 )。)。 例如例如, ,具有具有4 4位的八进制数位的八进制数10111011(8 8): :10111011(8 8) = 1 = 18 83 3 + 0 + 08 82 2 + 1 + 18 81 1 + + 1 18 80

11、0 = 512 + 0 + 8 + 1 = 521 = 512 + 0 + 8 + 1 = 521(1010)。)。 12 3 3十六进制数(逢十六进制数(逢 16 16 进进 1 1) 每位只能够出现:每位只能够出现:0 0、1 1、2 2、9 9、A A、B B、C C、D D、E E、F F。 每位的每位的权(权(weightweight)从右往左从右往左依次为:依次为:1616n n(n = 0n = 0,1 1,2 2,3 3 )。)。 例如,具有例如,具有4 4位的十六进制数位的十六进制数10111011(1616):): 1011 1011(1616) = 1 = 116163

12、3 + 0 + 016162 2 + 1 + 116161 1 + + 1 116160 0 = 4096 + 0 + 16 + 1 = 4113 = 4096 + 0 + 16 + 1 = 4113(1010)。)。 13注意:注意:4 4个个BitBit位恰好表示位恰好表示 0 0 F F,共共1616个状态:个状态: 0 0、1 1、2 2、3 3、4 4、5 5、6 6、7 7、8 8、9 9、A A、B B、C C、D D、E E、F F,相当于十六进制数的一个位;而相当于十六进制数的一个位;而3 3个个BitBit位可表示位可表示 0 0 7 7,共,共8 8个状态,相当于八进制个

13、状态,相当于八进制数的一个位。数的一个位。141 10 03 3 不同数制间的转换不同数制间的转换1 1二进制、八进制、十六进制数化为十进制二进制、八进制、十六进制数化为十进制 转换方法:各转换方法:各数位值数位值乘以该位的乘以该位的权值权值(2 2n n、8 8n n、1616n n),),而后累加到一起。而后累加到一起。 15 2 2十进制数化为二进制十进制数化为二进制除二求余法除二求余法(“逐次除以逐次除以2 2,倒着排余数,倒着排余数”)举例:举例:1919(1010) = = ?(?(2 2)19 19 2 = 9 2 = 9 1 1 (第一个余数)(第一个余数)9 9 2 = 4

14、2 = 4 1 1 (第二个余数)(第二个余数)4 4 2 = 2 2 = 2 0 0 2 2 2 = 1 2 = 1 0 0 1 1 2 = 0 2 = 0 1 1 (最后一个余数)(最后一个余数)所以:所以:1919(1010)= 10011= 10011(2 2)16常用做法常用做法 除二求余法( “逐次除以除二求余法( “逐次除以2 2,倒着排余数” ),倒着排余数” ) 举例:举例:1919(1010) = = ?(?(2 2) = 10011= 10011(2 2) 注意:逐次除以注意:逐次除以 2 2,直到商为,直到商为 0 0 时为止。时为止。 2 2 2 2 2 0 0 19

15、 9 4 2 1 1 1 1 0 0 余数余数 17 3 3八进制与二进制数之间的转换八进制与二进制数之间的转换 上面提到过:上面提到过:3 3个个BitBit位可表示位可表示 0 0 7 7,共,共8 8个状态个状态,相当于八进制数的一个位。,相当于八进制数的一个位。 八化二八化二:“一位化三位,按序连一起一位化三位,按序连一起”。527527(8 8)= (101)(010)(111) = 101010111= (101)(010)(111) = 101010111(2 2) 二化八二化八:“三位化一位,按序连一起三位化一位,按序连一起”。101010111101010111(2 2)=

16、(101)(010)(111) = 527= (101)(010)(111) = 527184 4十六进制与二进制数之间的转换十六进制与二进制数之间的转换 上面提到过:上面提到过:4 4个个BitBit位恰好表示位恰好表示 0 0 F F,共共1616个个状态:状态: 0 0、1 1、2 2、9 9、A A、B B、C C、D D、E E、F F,相当于相当于十六进制数的一个位。十六进制数的一个位。 十六化二十六化二:“一位化四位,按序连一起一位化四位,按序连一起”。9 9F2(16) =(1001)(1111)(0010) =100111110010(2)F2(16) =(1001)(111

17、1)(0010) =100111110010(2) 二化十六二化十六:“四位化一位,按序连一起四位化一位,按序连一起”。100111110010(2) =(1001)(1111)(0010) =9100111110010(2) =(1001)(1111)(0010) =9F2(16) F2(16) 195 5十进制转换为十进制转换为R R进制进制(“逐次除以逐次除以R R,倒着排余数倒着排余数”) 例例1 1: 4805 4805(1010) ?(?(1616)48054805(1010) 12 12C5C5(1616) 注:也可先注:也可先“十化二十化二”,而后再,而后再“四位化四位化一位一

18、位”。 例例2 2:40194019(1010) ?(?(8 8)40194019(1010) 7663 7663(8 8) 注:也可先注:也可先“十化二十化二”,而后再,而后再“三位化三位化一位一位”。20 1 10 04 4 存储器单元与机器指令存储器单元与机器指令1 1字节(字节(ByteByte) 8 8 个二进制数位个二进制数位(8 8 BitBit)定为定为 1 1 个字节。个字节。 1 1 个字节可以表示十进制数个字节可以表示十进制数 0 0 255 255。 可表示的最大数:可表示的最大数:1111111111111111(2 2) 255 255(1010)。)。 21数据和

19、指令均使用字节(序列)来存储数据和指令均使用字节(序列)来存储 计算机只认二进制数计算机只认二进制数(以二进制形式存(以二进制形式存储的代码或数据)。就是说,在计算机中,数储的代码或数据)。就是说,在计算机中,数据和指令均使用字节(序列)来存储。据和指令均使用字节(序列)来存储。 不同的计算机系统、不同类型的数据、或不同的计算机系统、不同类型的数据、或不同的指令所使用的字节数以及表达形式可能不同的指令所使用的字节数以及表达形式可能互不相同。互不相同。 22 2 2存储器单元(也称存储单元)存储器单元(也称存储单元) 存储单元存储单元:按字节安排。:按字节安排。 存储地址存储地址:顺序号,为每个

20、存储单元指定:顺序号,为每个存储单元指定一个序码(号码)。一个序码(号码)。233 3机器指令机器指令 计算机设计者把计算机可以完成的动作计算机设计者把计算机可以完成的动作编辑成一个机器指令表,并为每种动作赋予编辑成一个机器指令表,并为每种动作赋予一个二进制代码,通常由指令码(操作码)一个二进制代码,通常由指令码(操作码)和内存地址(操作数)来构成。通过和内存地址(操作数)来构成。通过机器指机器指令令来编写的程序称为来编写的程序称为机器语言程序机器语言程序。 24机器语言程序示例机器语言程序示例 例如,使用例如,使用“机器语言机器语言”编出的做一次加法编出的做一次加法“TOTAL = PRIC

21、E + TAX”TOTAL = PRICE + TAX”的程序为:的程序为: 156 156C / C / 取取6 6C C内容送寄存器内容送寄存器5 5 166 166D / D / 取取6 6D D内容送寄存器内容送寄存器6 65056 5056 / / 把二值相加,结果送寄存器把二值相加,结果送寄存器0 0 306 306E / E / 把寄存器把寄存器0 0中的结果送地址中的结果送地址6 6E E C000 / C000 / 停机停机254 4、内存中机器指令的执行内存中机器指令的执行 计算:计算:5+15=5+15=? (1 1)将)将00100010H H存储单元的数据(存储单元的

22、数据(5 5)取出,存放在)取出,存放在ALUALU。 (2 2)将将00110011H H存储单元的数据(存储单元的数据(1515)取出,与)取出,与 ALU ALU 的数据相加,运算结果存放在的数据相加,运算结果存放在ALUALU。 (3 3)将将 ALU ALU 中的数据(中的数据(2020)存放到)存放到00120012H H存储单存储单元。元。 (4 4)停止执行)停止执行 计算机依赖机器指令运行,机器指令以及各种被计算机依赖机器指令运行,机器指令以及各种被处理的数据都以二进制形式存储。处理的数据都以二进制形式存储。26 1.1 1.1 计算机程序设计语言的发展计算机程序设计语言的发

23、展1.1.1 1.1.1 机器语言与汇编语言机器语言与汇编语言1.1.2 1.1.2 高级语言高级语言1.1.3 1.1.3 面向对象的语言面向对象的语言271.1.1 1.1.1 机器语言与汇编语言机器语言与汇编语言 计算机刚问世时,它的计算机刚问世时,它的“能耐能耐”还比较小,还比较小,只能只能“看懂看懂”或或“理解理解”程序员用原始的程序员用原始的机器机器指令指令书写的所谓书写的所谓机器语言程序机器语言程序。 汇编语言汇编语言将机器指令映射为一些易于看将机器指令映射为一些易于看懂、易于记忆的助记符,如懂、易于记忆的助记符,如ADDADD,SUBSUB,MOVMOV等。等。但若要运行但若要

24、运行( (执行执行) )用汇编语言写成的源程序时,用汇编语言写成的源程序时,必须先运行一个叫做必须先运行一个叫做汇编程序系统汇编程序系统( (Assembler)Assembler)的软件,由它首先把汇编语言源程序转换为具的软件,由它首先把汇编语言源程序转换为具有相同功能的机器指令程序,然后再运行机器有相同功能的机器指令程序,然后再运行机器指令程序,得到所需的结果。指令程序,得到所需的结果。 28 1.1.2 1.1.2 高级语言高级语言 之所以称其为高级语言,是相对于机器语之所以称其为高级语言,是相对于机器语言与汇编语言来说,言与汇编语言来说,编程人员对它们的理解、编程人员对它们的理解、记忆

25、以及使用都要容易记忆以及使用都要容易的多。高级语言屏蔽了的多。高级语言屏蔽了诸多的机器细节问题,提高了语言的抽象层次,诸多的机器细节问题,提高了语言的抽象层次,更加接近于人们的思维方式以及自然语言。更加接近于人们的思维方式以及自然语言。 应用较广泛的几种高级语言是:应用较广泛的几种高级语言是:FORTRANFORTRAN、ALGOLALGOL、COBOLCOBOL、BASICBASIC、PASCALPASCAL、C C、LISPLISP、PROLOGPROLOG等。等。29编译程序系统编译程序系统( (Compiler)Compiler)的作用的作用 与对待汇编语言源程序相同,用高级语与对待汇

26、编语言源程序相同,用高级语言写成的源程序也不能被计算机去直接执行,言写成的源程序也不能被计算机去直接执行,也必须先运行一个叫做也必须先运行一个叫做编译程序系统编译程序系统( (Compiler)Compiler)的软件,由它首先把高级语言源程的软件,由它首先把高级语言源程序编译转换为目标程序,然后再经过连接而成序编译转换为目标程序,然后再经过连接而成为具有相同功能的可执行程序为具有相同功能的可执行程序( (机器指令程序机器指令程序) ),最后再运行该可执行程序最后再运行该可执行程序( (机器指令程序机器指令程序) ),方,方可得到所需的结果。可得到所需的结果。30 1.1.3 1.1.3 面向

27、对象的语言面向对象的语言 上述高级语言上述高级语言( (非面向对象的语言非面向对象的语言) )存在的存在的主要问题是程序中的数据与操作分离,从而不主要问题是程序中的数据与操作分离,从而不能有效地组成与自然界中的具体事物紧密对应能有效地组成与自然界中的具体事物紧密对应的程序成分。而的程序成分。而面向对象的编程语言将客观事面向对象的编程语言将客观事物看作是具有属性和行为的一个统一的整体物看作是具有属性和行为的一个统一的整体 - - - 对象对象。通过抽象找出同一类对象的共同属性。通过抽象找出同一类对象的共同属性和行为,从而形成类和行为,从而形成类( (class)class);通过类的继承通过类的

28、继承与派生,可以方便地描述客观世界中存在的事与派生,可以方便地描述客观世界中存在的事物物( (即对象即对象) )间的那种间的那种“父类父类”与与“子类子类”属性属性和行为的继承关系,从而能够很方便地实现程和行为的继承关系,从而能够很方便地实现程序代码的可重用问题。序代码的可重用问题。31目前常用的面向对象语言目前常用的面向对象语言 目前,应用最广的面向对象语言是在目前,应用最广的面向对象语言是在C C语语言基础上扩充出来的言基础上扩充出来的C+C+语言语言,而科研前沿目,而科研前沿目前用的最多的要属前用的最多的要属MicrosoftMicrosoft公司的公司的Visual Visual C+

29、 6.0C+ 6.0(简称简称VC6.0VC6.0),它是基于它是基于WindowsWindows窗窗口规范的一个口规范的一个C+C+的具体实现版本。的具体实现版本。 其它面向对象的编程语言还有其它面向对象的编程语言还有SmalltalkSmalltalk语言、语言、Simula67Simula67语言、以及语言、以及LISPLISP家族的面向对家族的面向对象语言等等。象语言等等。 32 1.2 1.2 面向对象语言及其特点面向对象语言及其特点1.2.1 1.2.1 面向过程的面向过程的SPSP结构化程序设计方法和结构化程序设计方法和面向对象的面向对象的OOPOOP程序设计方法程序设计方法1.

30、2.2 1.2.2 C+C+语言对面向对象方法的支持语言对面向对象方法的支持331.2.1 1.2.1 面向过程的面向过程的SPSP结构化程序设计方法和面向结构化程序设计方法和面向对象的对象的OOPOOP程序设计方法程序设计方法 1. 1. 面向过程的面向过程的SPSP结构化程序设计方法结构化程序设计方法 结构化程序设计结构化程序设计的基本思想是:采用自顶向下、的基本思想是:采用自顶向下、逐步求精的设计方法和单入口单出口的控制结构;其逐步求精的设计方法和单入口单出口的控制结构;其程序结构是按功能划分为若干个程序结构是按功能划分为若干个基本模块(函数)基本模块(函数),各模块的功能相对独立,而且

31、模块之间的关系尽可能各模块的功能相对独立,而且模块之间的关系尽可能地简单,另外通过使用参数机制来规范程序模块间的地简单,另外通过使用参数机制来规范程序模块间的调用接口;每一模块的内部均由顺序、选择和循环三调用接口;每一模块的内部均由顺序、选择和循环三种基本结构来组成。种基本结构来组成。 面向过程的面向过程的SPSP结构化程序设计方法存在着一个主结构化程序设计方法存在着一个主要缺点:数据和处理数据的操作过程要缺点:数据和处理数据的操作过程( (处理函数处理函数) )是相是相互独立的实体,当数据结构改变时,所有相关的处理互独立的实体,当数据结构改变时,所有相关的处理过程过程( (函数函数) )都要

32、进行相应的修改,从而使程序的可重都要进行相应的修改,从而使程序的可重用性明显变差。用性明显变差。 34 2. 2. 面向对象的面向对象的OOPOOP程序设计方法程序设计方法 面向对象程序设计面向对象程序设计正是要弥补面向过程的正是要弥补面向过程的SPSP结构结构化程序设计方法的那一主要缺点,它将数据以及对这化程序设计方法的那一主要缺点,它将数据以及对这些数据进行操作的方法些数据进行操作的方法( (处理过程处理过程) )放在一起,形成一放在一起,形成一个相互依存、不可分离的整体个相互依存、不可分离的整体 - - 对象。通过对事物对象。通过对事物的抽象找出同一类对象的共同属性的抽象找出同一类对象的

33、共同属性( (静态特征静态特征) )和行为和行为( (动态特征动态特征) ),从而形成类。,从而形成类。类是面向对象程序设计方类是面向对象程序设计方法中的程序主体法中的程序主体,即是说,即是说,程序结构将划分为若干类程序结构将划分为若干类的基本模块的基本模块,类中的大多数数据只能用本类的方法进,类中的大多数数据只能用本类的方法进行处理,以保障程序模块的独立性以及数据的安全性。行处理,以保障程序模块的独立性以及数据的安全性。类通过一个简单的公共对外接口与外界发生联系,对类通过一个简单的公共对外接口与外界发生联系,对象与对象之间通过消息进行通讯。象与对象之间通过消息进行通讯。 面向对象程序设计的三

34、大特征面向对象程序设计的三大特征是:封装性、继承是:封装性、继承性、多态性。性、多态性。 35 1.2.2 1.2.2 C+C+语言对面向对象方法的支持语言对面向对象方法的支持 C+C+语言是一种面向对象的程序设计语言,语言是一种面向对象的程序设计语言,它对面向对象的程序设计方法进行了较全面的它对面向对象的程序设计方法进行了较全面的支持。支持。 1. 1. 支持数据封装支持数据封装 C+C+语言中的类语言中的类( (class)class)是支持数据封装的是支持数据封装的工具。通过类工具。通过类( (class)class)类型对所要处理的问题类型对所要处理的问题进行抽象描述,从而将逻辑上相关

35、的数据与函进行抽象描述,从而将逻辑上相关的数据与函数进行封装。数进行封装。36 2. 2. 支持继承性支持继承性 C+C+语言允许单继承和多继承。所谓多继承,就语言允许单继承和多继承。所谓多继承,就是从多个父类是从多个父类( (基类基类) )那儿继承属性和行为特征。另外,那儿继承属性和行为特征。另外,如有必要,派生类还可以生成它自己的派生类。即是如有必要,派生类还可以生成它自己的派生类。即是说,根据需要,类之间可形成多层次的派生以及继承说,根据需要,类之间可形成多层次的派生以及继承关系。关系。 3. 3. 支持多态性支持多态性 允许对函数和运算符进行重载体现出一种多态性。允许对函数和运算符进行

36、重载体现出一种多态性。通过在基类及其派生类间对虚函数进行使用体现出另通过在基类及其派生类间对虚函数进行使用体现出另一种多态性。一种多态性。 37 1.3 1.3 C+C+简单程序实例简单程序实例1. 1. 在屏幕上显示一句话在屏幕上显示一句话 # #include include .h void main(void)void main(void) coutcoutHello world!Hello world!endlendl; ; 程序执行后的输出结果为程序执行后的输出结果为: :Hello world! Hello world! 38 2. 2. 求两个数的和与积求两个数的和与积# #in

37、clude include .h void main()void main()intint a,b,sum,prod; a,b,sum,prod;a=3;a=3;b=15;b=15;sum=a+b;sum=a+b;prod=aprod=a* *b;b;coutcoutThe sum is sumThe sum is sumendlendl; ; coutcoutThe prod is prodThe prod is prodendlendl; ; 39程序执行后的输出结果为程序执行后的输出结果为: :The sum is 18The sum is 18The prod is 45The pro

38、d is 45 40 3. 3. 计算圆面积与周长计算圆面积与周长# #include include .h void main()void main()const float const float paipai=3.14; =3.14; float radius;float radius;coutcoutEnter radius:;radius;radius;float area=float area=paipai* *radiusradius* *radius; radius; coutcoutnThenThe area of circle is ; area of circle is

39、; coutcoutareaareaendlendl; ; float circum=2float circum=2* *paipai* *radius; radius; coutcoutThe circum of circle is circumThe circum of circle is circumendlendl; ; 41程序执行后的输出结果为程序执行后的输出结果为: :Enter radius:Enter radius:2.52.5The area of circle is 19.625The area of circle is 19.625The circum of circl

40、e is 15.7The circum of circle is 15.742 1.4 1.4 简单实例程序中的语法点简单实例程序中的语法点 1.1. mainmain函数函数是所有是所有C+C+程序所必须的。最简单的程序所必须的。最简单的合法合法C+C+程序是:程序是:main()main()它没有错误,但什么事都不做。它没有错误,但什么事都不做。 2.2. 以双斜杠以双斜杠(/)(/)开头直到行末的全体开头直到行末的全体( (符号符号) )称称为为注解注解。注解将被当作空格处理。注解将被当作空格处理。C+C+还允许使用第二还允许使用第二种注解方式:以有序双符号种注解方式:以有序双符号 /

41、/* * 开始开始( (往后往后), ), 直到直到第一次遇见有序双符号第一次遇见有序双符号 * */ / 为止的全体为止的全体( (符号符号) )也称也称为注解。第二种注解方式可以占一行至任意多行。为注解。第二种注解方式可以占一行至任意多行。43 3.3. 程序中涉及的数据,以程序中涉及的数据,以常量和变量常量和变量的的形式出现,变量的值在程序执行中可以被改变。形式出现,变量的值在程序执行中可以被改变。常量又分为字面常量和有名常量,如常量又分为字面常量和有名常量,如3 3与与1515等等都为字面常量,而通过都为字面常量,而通过“const float const float paipai=3

42、.14;”=3.14;”说明的说明的paipai则被称为有名常量则被称为有名常量, , 它它们的值在程序中均不可改变。们的值在程序中均不可改变。 常量和变量都具有各自的数据类型常量和变量都具有各自的数据类型。C+C+的四种基本数据类型为:的四种基本数据类型为:intint、floatfloat、charchar、voidvoid,它们分别代表整型它们分别代表整型( (intint) ),浮点型浮点型( (float)float),字符型字符型( (char)char),以及无值型以及无值型( (void)void)。 44 程序中用到的所有程序中用到的所有变量以及有名常量都必须在使变量以及有名

43、常量都必须在使用前先说明其数据类型用前先说明其数据类型。通过如下格式的语句来说明。通过如下格式的语句来说明一批一批( (如如n n个个) )变量的数据类型:变量的数据类型: , . , , . , ;n; 变量名由用户任起,但要求满足以下变量名由用户任起,但要求满足以下C+C+标识符的标识符的语法:语法:标识符标识符是由字母或下划线开头的后跟是由字母或下划线开头的后跟0 0到任意多到任意多个字母、数字或下划线所组成的符号串。除变量名外,个字母、数字或下划线所组成的符号串。除变量名外,程序员为有名常量、用户自定义类型、函数及其参数、程序员为有名常量、用户自定义类型、函数及其参数、类、对象等各种成

44、分所起的名字也都必须是一个标识类、对象等各种成分所起的名字也都必须是一个标识符。符。 45 4. 4. 每个每个C+C+程序都是一个符号的序列。程序都是一个符号的序列。C+C+语言的基本符号由数字语言的基本符号由数字(0-9)(0-9)、大小写英、大小写英文字母文字母( (A-ZA-Z,a-z)a-z)、以及包括空格在内的特以及包括空格在内的特殊符号组成。殊符号组成。 由由符号符号构成构成单词单词,由单词构成,由单词构成语句语句,由语句构成,由语句构成程序程序( (相当于文章相当于文章) )。 特殊符号可充当运算符特殊符号可充当运算符( (如:如:+ - + - * * / / = ! 等等)

45、 )、分割符、分割符( (如:,如:, ; : 等等) )。另外,下划线、空格、句点等也属于特。另外,下划线、空格、句点等也属于特殊符号。殊符号。 46 5. 5. C+C+语言的单词主要分为以下五种:语言的单词主要分为以下五种:关键字关键字( (也称保留字,如,也称保留字,如,intint、floatfloat、constconst等等) ),标识符标识符 ( (如,变量名及有名常量名等各种名字如,变量名及有名常量名等各种名字) ),字面常量字面常量( (如,如,4343、3.143.14等等) ),运算符运算符( (如,如,+ +、= =、* * 等等) ),分割符分割符( (如,如, 、

46、 、;等、;等) )。 每一个每一个C+C+关键字关键字( (保留字保留字) )都具有自己特定的使都具有自己特定的使用含义,用户程序中不可再将它们用作自定义标识符。用含义,用户程序中不可再将它们用作自定义标识符。C+C+预定义的关键字均由小写字母构成,今后将在不同预定义的关键字均由小写字母构成,今后将在不同章节陆续用到那些关键字章节陆续用到那些关键字( (注意,对于某一个具体的编注意,对于某一个具体的编译实现来说,可能还会再扩充一些不同的关键字,使译实现来说,可能还会再扩充一些不同的关键字,使用时请留意用时请留意) )。请参看书。请参看书p33p33的表的表2.22.2(其中列出了(其中列出了

47、C+C+基本关键字)。基本关键字)。 47 6. 6. C+C+语言的语言的基本语句基本语句主要分为以下几种:主要分为以下几种:数据说明数据说明( (定义定义) )语句、赋值语句、表达式语句、语句、赋值语句、表达式语句、流程控制语句、复合语句等。流程控制语句、复合语句等。 如,语句如,语句“intint a,b,sum,prod;” a,b,sum,prod;”为为数据数据说明说明( (定义定义) )语句语句,它说明,它说明a a、b b、sumsum及及prodprod为为4 4个个intint型型( (整型整型) )变量,程序中可将它们当作变量,程序中可将它们当作4 4个个整型数据来使用。

48、而语句整型数据来使用。而语句“sum=a+b;”sum=a+b;”则为则为赋赋值语句值语句,负责算出,负责算出a+ba+b之值并把结果值赋给变之值并把结果值赋给变量量sumsum。48 7. 7. 数据的数据的输入输出输入输出是每个实用程序必不是每个实用程序必不可少的组成部分。可少的组成部分。“输入输入”向程序提供要加工向程序提供要加工的初始数据,而的初始数据,而“输出输出”则将运算结果显示则将运算结果显示( (或保存或保存) )到某个指定文件中。到某个指定文件中。 C+C+含有两个特殊文件,一个为标准流对含有两个特殊文件,一个为标准流对象象cincin,它代表键盘它代表键盘,是,是C+C+的

49、标准输入设备;的标准输入设备;而另一个为标准流对象而另一个为标准流对象coutcout,它代表屏幕它代表屏幕,是,是C+C+的标准输出设备。的标准输出设备。 49 往往coutcout( (即屏幕即屏幕) )上输出信息时,通过上输出信息时,通过“插插入入”运算符运算符“” (“” (也称输出运算符也称输出运算符) ) 来实现,来实现,如,语句如,语句“coutcoutThe sum is sum;” The sum is ”(“”(也称抽取或输入运算符也称抽取或输入运算符) )来来实现,如,语句实现,如,语句“cincinradius;”radius;”的执行将等的执行将等待用户从键盘输入一个

50、浮点数,而后系统将该待用户从键盘输入一个浮点数,而后系统将该数赋值给变量数赋值给变量radiusradius。 50 8. 8. 字符串常量字符串常量( (简称为字符串简称为字符串) )是由双引号括起来是由双引号括起来的字符序列。双引号为定界符的字符序列。双引号为定界符, , 不属于字符串常量的不属于字符串常量的一部分。虽然字符串中的每个字符在内存中只占一部分。虽然字符串中的每个字符在内存中只占1 1个字个字节,但整个字符串所占内存的字节数却为字符串的长节,但整个字符串所占内存的字节数却为字符串的长度加一。是因为系统自动在每个字符串常量的末字符度加一。是因为系统自动在每个字符串常量的末字符后加

51、上了一个后加上了一个“空字符空字符”(”(作为结束标志作为结束标志) )。系统使用。系统使用转义字符转义字符00来表示来表示“空字符空字符”。注意,。注意,字符字符AA在内存占在内存占1 1个字节,而字符串个字节,而字符串“A”A”则占则占2 2个字节个字节。 往往coutcout( (即屏幕即屏幕) )上输出字符串常量可以对用户起上输出字符串常量可以对用户起到提示作用。对字符串的处理通常与字符数组和指针到提示作用。对字符串的处理通常与字符数组和指针有关。有关。 51 1.5 1.5 执行执行C+C+程序程序一一. . 一般步骤一般步骤 每一个每一个C+C+程序从输入计算机到执行(运行)都要程

52、序从输入计算机到执行(运行)都要按照如下的步骤来进行:按照如下的步骤来进行: = = 编辑编辑 = = 编译编译 = = 连接连接 = = 运行。运行。 1. 1. 编辑编辑 : : 借助某个编辑器把程序代码输入到计借助某个编辑器把程序代码输入到计算机中。算机中。 2. 2. 编译编译 : : 借助编译器把源程序编译成目标程序,借助编译器把源程序编译成目标程序,通常生成扩展名为通常生成扩展名为. .objobj的目标文件。的目标文件。 3. 3. 连接连接 : : 用连接器将编译成功的目标文件与库用连接器将编译成功的目标文件与库文件等连接成为一个可执行文件。可执行文件的扩展文件等连接成为一个可

53、执行文件。可执行文件的扩展名为名为. .exeexe。 4. 4. 运行运行 : : 执行上述连接成功的执行上述连接成功的. .exeexe可执行文件。可执行文件。 52书书P51P51的图的图2.22.2 运行 图 2.2 源程序编译为目标程序 源程序 (C+语言) 目标程序 (机器语言) 编译系统 (Compiler) 53书书P52P52的图的图2.32.3 图 2.3 C+程序的编写,编译,运行过程 54 二二. . 在在VC6.0VC6.0集成开发环境下执行集成开发环境下执行C+C+程序的最简单程序的最简单步骤步骤 - - 详细用法请参看书详细用法请参看书p288p288的附录的附录

54、A A 首先启动并运行首先启动并运行VC6.0VC6.0,进入到它的进入到它的集成开发环集成开发环境境窗口。接着创建窗口。接着创建工程工程并输入源程序代码。其操作步并输入源程序代码。其操作步骤为:骤为:“File” “New” “Projects” File” “New” “Projects” “Win32 Console Application” “Win32 Console Application” (右上处第二行)右上处第二行)“Location”Location”文本框中填入如文本框中填入如“d:d:mydirmydir”(右上右上处第一行)处第一行)“Project name”Pro

55、ject name”文本框中填入如文本框中填入如“proj1” “OK” “Finish” “OK” proj1” “OK” “Finish” “OK” “Project” “Add To Project” “New” “Project” “Add To Project” “New” “C+ Source File” “C+ Source File” (右中处)右中处)“File”File”文本框文本框中填入如中填入如“exe1”exe1”的文件名(此时系统将使用的文件名(此时系统将使用exe1.exe1.cppcpp的文件来保存所键入的源程序)的文件来保存所键入的源程序) “ “OK” OK

56、” 键入具体程序。键入具体程序。 55 例如:例如:# #include include .h void main()void main()coutcoutHello world!Hello world!endlendl; ; 注意:在注意:在“Location”Location”文本框中填入如文本框中填入如“d:d:mydirmydir”,这这是假设准备在是假设准备在d d磁盘的磁盘的mydirmydir文件夹即子目录下存放与文件夹即子目录下存放与工程工作区工程工作区相关的所有文件及其相关信息(当相关的所有文件及其相关信息(当d d磁盘上不存在磁盘上不存在mydirmydir文件夹时,文件夹

57、时,系统将自动创建出该名字的文件夹。若准备指定其他位置,则要系统将自动创建出该名字的文件夹。若准备指定其他位置,则要在此处填入其相关在此处填入其相关“路径路径”),当然也可通过点击其右部的),当然也可通过点击其右部的“”按钮去选择并指定另外的已存在文件夹位置。按钮去选择并指定另外的已存在文件夹位置。56 最后对所输入的程序进行最后对所输入的程序进行编译编译、链接链接而后而后运行运行(得(得出结果)。此出结果)。此3 3个步骤所使用的菜单命令依次为:个步骤所使用的菜单命令依次为: “Build”“Compiler Build”“Compiler ”; “Build”“Build “Build”“

58、Build ”; “Build”“Execute “Build”“Execute ”。 程序执行结束后,可通过程序执行结束后,可通过“File” “Close File” “Close Workspace”Workspace”关闭相关的工作区窗口关闭相关的工作区窗口,从而结束了一个,从而结束了一个程序从输入到执行的全过程,而重新回到刚刚启动程序从输入到执行的全过程,而重新回到刚刚启动VC6.0VC6.0时的那一个初始画面(窗口)。时的那一个初始画面(窗口)。57 若要若要打开某个已关闭的工作区打开某个已关闭的工作区WorkspaceWorkspace去去再一次修改或执行其相关程序时,可通过再一

59、次修改或执行其相关程序时,可通过“File” “Open Workspace”File” “Open Workspace”,并在并在“查查找范围找范围”处指定具体的工程文件夹(如,处指定具体的工程文件夹(如,“mydirmydir”下的下的“proj1”proj1”),),而后通过鼠标单而后通过鼠标单击选定击选定“j1.dswdsw”,再单击右下角处的再单击右下角处的“打开打开”。 注:打开某个已关闭工作区注:打开某个已关闭工作区WorkspaceWorkspace的另的另一种常用方法是,通过一种常用方法是,通过“资源管理器资源管理器”找到相找到相关的工程文件夹,如关的工程文

60、件夹,如“mydirmydir”下的下的“proj1”proj1”,选定该文件夹下的选定该文件夹下的“j1.dswdsw”,双击该文双击该文件。件。58例:从编程到运行一个完整程序例:从编程到运行一个完整程序 编程序,从键盘输入整数编程序,从键盘输入整数x x、y y,计算计算出出 x x2 2 + x + x y y 以及以及w = 2x + yw = 2x + y2 2,并将结果显示在屏幕上。并将结果显示在屏幕上。59【程序编制】【程序编制】# #include include .h void main() void main() intint x,y; double w

温馨提示

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

评论

0/150

提交评论