【精品】C语言程序设计的精品ppt课件.ppt
《【精品】C语言程序设计的精品ppt课件.ppt》由会员分享,可在线阅读,更多相关《【精品】C语言程序设计的精品ppt课件.ppt(81页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语言程序设计的1.1程序与程序设计语言1.1.1常量常量一提起计算机,人们就会联想到键盘、显示器和主机。一提起计算机,人们就会联想到键盘、显示器和主机。其实,应用要早得多、并一直流传至今的计算机工具是算其实,应用要早得多、并一直流传至今的计算机工具是算盘(见图盘(见图1.1)。那么,现代电子计算机与算盘的最大区别)。那么,现代电子计算机与算盘的最大区别在哪里呢?关键在于现代计算机可以自动完成计算过程,在哪里呢?关键在于现代计算机可以自动完成计算过程,而算盘进行的计算过程是在人的拨动下才能进行。而算盘进行的计算过程是在人的拨动下才能进行。图图1.1算盘算盘那么,为什么现代计算机可以自动完成计算
2、过程呢?这那么,为什么现代计算机可以自动完成计算过程呢?这首先要从程序说起。程序实际上是一个非常普通的概念:按首先要从程序说起。程序实际上是一个非常普通的概念:按照一定的顺序安排的工作步骤。可以说,做任何事情都有相照一定的顺序安排的工作步骤。可以说,做任何事情都有相应的程序。做的事情不同,要求的效果不同,程序就不同。应的程序。做的事情不同,要求的效果不同,程序就不同。例如,用同样的原料,采用不同的程序,会做出不同的菜肴例如,用同样的原料,采用不同的程序,会做出不同的菜肴来。来。一种工具能够自动工作,一是要有记忆功能,能够记住一种工具能够自动工作,一是要有记忆功能,能够记住程序;二是具有按照程序
3、控制相关部件操作的能力。如果能程序;二是具有按照程序控制相关部件操作的能力。如果能让算盘记住做某种计算的口诀和计算的数据,并且有能按照让算盘记住做某种计算的口诀和计算的数据,并且有能按照口诀控制算珠自动运动的机制,则只要发出开始执行的命令,口诀控制算珠自动运动的机制,则只要发出开始执行的命令,算盘就会自动完成计算。算盘就会自动完成计算。可惜这样的机制并没有在算盘中实现。但是,却有另外可惜这样的机制并没有在算盘中实现。但是,却有另外一种机器却在这方面向前推进了一步。这就是明朝末年宋应一种机器却在这方面向前推进了一步。这就是明朝末年宋应星在其天工开物中记载的中国古代提花机(见图星在其天工开物中记载
4、的中国古代提花机(见图1.2)。)。图图1.2中国古代的提花机中国古代的提花机中国提花机大约出现于西汉末年(公元前)。它采用用中国提花机大约出现于西汉末年(公元前)。它采用用丝线结成的丝线结成的“花本花本”(花版)控制经线起落,以织成要求的图(花版)控制经线起落,以织成要求的图样。这是最早的程序控制思想。后来,提花机沿着丝绸之路样。这是最早的程序控制思想。后来,提花机沿着丝绸之路传到欧洲,历经改进,传到欧洲,历经改进,1805年法国人年法国人JosephJacquard制造制造成功用穿孔卡片(见图成功用穿孔卡片(见图1.3)控制连杆(横针)控制连杆(横针),用有孔和无用有孔和无孔进一步控制经线
5、起落的提花机。孔进一步控制经线起落的提花机。图图1.3穿孔卡片穿孔卡片1.1.2计算机程序设计语言计算机程序设计语言程序要需要用某种形式(语言)来描述。例如,用算盘进行计算,程序要需要用某种形式(语言)来描述。例如,用算盘进行计算,程序是用口诀描述的,珠算的语言是口诀。现代计算机的程序则是用程序是用口诀描述的,珠算的语言是口诀。现代计算机的程序则是用计算机程序设计语言来描述的。从计算机诞生到今天,程序设计语言计算机程序设计语言来描述的。从计算机诞生到今天,程序设计语言也在伴着计算机技术的进步不断升级换代。也在伴着计算机技术的进步不断升级换代。1.机器语言机器语言一种一种CPU的指令系统,也称该
6、的指令系统,也称该CPU的机器语言,它是该的机器语言,它是该CPU可以可以识别的一组由识别的一组由0和和1序列构成的指令码。下面是某序列构成的指令码。下面是某CPU指令系统中的两指令系统中的两条指令:条指令:10000000(进行一次加法运算)(进行一次加法运算)10010000(进行一次减法运算)(进行一次减法运算)用机器语言编程序,就是从所使用的用机器语言编程序,就是从所使用的CPU的指令系统中挑选合适的指令系统中挑选合适的指令,组成一个指令系列。这种程序虽然可以被机器直接理解和执的指令,组成一个指令系列。这种程序虽然可以被机器直接理解和执行,却由于它们不直观,难记、难认、难理解、不易查错
7、,只能被少行,却由于它们不直观,难记、难认、难理解、不易查错,只能被少数专业人员掌握,同时编写程序的效率很低,质量难以保证。这种繁数专业人员掌握,同时编写程序的效率很低,质量难以保证。这种繁重的手工方式与高速、自动工作的计算机极不相称。这种方式仅使用重的手工方式与高速、自动工作的计算机极不相称。这种方式仅使用于计算机出现的初期于计算机出现的初期(使用穿孔纸带的时期使用穿孔纸带的时期)的编程(用有孔、无孔,分的编程(用有孔、无孔,分别代表别代表1、0),现在已经不再使用),现在已经不再使用2.汇编语言汇编语言为减轻人们在编程中的劳动强度,为减轻人们在编程中的劳动强度,20世纪世纪50年代中期人们
8、开年代中期人们开始用一些始用一些“助记符号助记符号”来代替来代替0,1码编程。如前面的两条机器指令码编程。如前面的两条机器指令可以写为可以写为A+BA或或ADDA,BA-B个样个样A或或SUBA,B这种用助记符号描述的指令系统,称为符号语言或汇编语言。这种用助记符号描述的指令系统,称为符号语言或汇编语言。用汇编语言编程,程序的生产效率及质量都有所提高。但是用汇编语言编程,程序的生产效率及质量都有所提高。但是汇编语言指令是机器不能直接识别、理解和执行的。用它编写的汇编语言指令是机器不能直接识别、理解和执行的。用它编写的程序经检查无误后,要先翻译成机器语言程序才能被机器理解、程序经检查无误后,要先
9、翻译成机器语言程序才能被机器理解、执行。这个翻译转换过程称为执行。这个翻译转换过程称为“代真代真”。代真后得到的机器语言程。代真后得到的机器语言程序称为目标程序序称为目标程序(objectprogram),代真以前的程序,称为源程,代真以前的程序,称为源程序序(sourceprogram)。由于汇编语言指令与机器语言指令基本上。由于汇编语言指令与机器语言指令基本上具有一一对应的关系,所以汇编语言源程序的代真可以由汇编系具有一一对应的关系,所以汇编语言源程序的代真可以由汇编系统以查表的方式进行。统以查表的方式进行。汇编语言与机器语言,都是依汇编语言与机器语言,都是依CPU的不同而异,它们都称为的
10、不同而异,它们都称为面向机器的语言。用面向机器的语言编程,可以编出效率极高的面向机器的语言。用面向机器的语言编程,可以编出效率极高的程序。但是程序员用它们编程时,不仅要考虑解题思路,还要熟程序。但是程序员用它们编程时,不仅要考虑解题思路,还要熟悉机器的内部结构,并且要悉机器的内部结构,并且要“手工手工”地进行存储器分配。这种编程地进行存储器分配。这种编程的劳动强度仍然很大,给计算机的普及推广造成很大的障碍。的劳动强度仍然很大,给计算机的普及推广造成很大的障碍。2.高级语言高级语言汇编语言和机器语言是面向机器的,不同类型的计算机汇编语言和机器语言是面向机器的,不同类型的计算机所用的汇编语言和机器
11、语言是不同的。所用的汇编语言和机器语言是不同的。1954年出现的年出现的FORTRAN语言以及随后相继出现的其它高级语言,开始语言以及随后相继出现的其它高级语言,开始使用接近人类自然语言的、但又消除了自然语言中的二义使用接近人类自然语言的、但又消除了自然语言中的二义性的语言来描述程序。这些高级语言使人们开始摆脱进行性的语言来描述程序。这些高级语言使人们开始摆脱进行程序设计必须先熟悉机器的桎梏,把精力集中于解题思路程序设计必须先熟悉机器的桎梏,把精力集中于解题思路和方法上。和方法上。第一种高级语言是第一种高级语言是1954年问世的年问世的FORTRAN语言。此后语言。此后不久,不同风格、不同用途
12、、不同规模、不同版本的面向不久,不同风格、不同用途、不同规模、不同版本的面向过程的高级语言便风涌而起。据统计,全世界已有过程的高级语言便风涌而起。据统计,全世界已有2500种种以上的计算机语言,其中使用较多的有近百种。图以上的计算机语言,其中使用较多的有近百种。图1.5为几为几种广泛流行的高级语言的发展变迁情况。种广泛流行的高级语言的发展变迁情况。20042000199619921988198419801976197219681964196019561952JavaC+CPLBCPLBCPASCALModula-2AdaALGOL68ALGOL60FORTRANBASICQBASICVisua
13、l BASICFORTRAN 77FORTRAN 90PL/1LISPPROLOGCOBOLSimula 67Smalltalk 80C89C99C#图图1.5几种广泛流行的高级语言的发展变迁情况几种广泛流行的高级语言的发展变迁情况1.1.3高级语言程序的开发过程高级语言程序的开发过程一般来说,程序开发的一般过程有如图一般来说,程序开发的一般过程有如图1.6所示几个所示几个步骤。步骤。图图1.6高级语言程序的开发过程高级语言程序的开发过程1.分析问题,建立模型分析问题,建立模型一般来说,一个具体的问题要涉及许许多多的方面,一般来说,一个具体的问题要涉及许许多多的方面,这是问题的复杂性所在。为了
14、便于求解,往往要忽略一这是问题的复杂性所在。为了便于求解,往往要忽略一些次要方面。这种通过忽略次要方面,而找出解题规律,些次要方面。这种通过忽略次要方面,而找出解题规律,就称为建立模型。就称为建立模型。2.表现模型表现模型表现模型就是用一种符号表现模型就是用一种符号-语言系统来描述模型。一语言系统来描述模型。一般来说,模型的表现会随着对问题抽象程度的加深和细般来说,模型的表现会随着对问题抽象程度的加深和细化,不断由领域特色向计算机可解释、执行靠近,中间化,不断由领域特色向计算机可解释、执行靠近,中间也可能采用一些其他的符号系统,如流程图等,直到最也可能采用一些其他的符号系统,如流程图等,直到最
15、后用一种计算机程序设计语言描述出来。后用一种计算机程序设计语言描述出来。3.源程序的编辑源程序的编辑源程序的编辑就是在某种字处理环境下,用具体的源程序的编辑就是在某种字处理环境下,用具体的程序设计语言书写并修改的过程。为此就要掌握一种计程序设计语言书写并修改的过程。为此就要掌握一种计算机程序设计语言。还要应用一种专用程序编辑器或通算机程序设计语言。还要应用一种专用程序编辑器或通用的文字编辑器进行。用的文字编辑器进行。4.程序的编译(或解释)与链接程序的编译(或解释)与链接写出一个高级语言程序后,并不是就可以立即拿来执行。写出一个高级语言程序后,并不是就可以立即拿来执行。要让机器直接执行,还要将
16、它翻译成由机器可以直接辨认并要让机器直接执行,还要将它翻译成由机器可以直接辨认并可以执行的机器语言程序。为区别它们,把用高级语言写的可以执行的机器语言程序。为区别它们,把用高级语言写的程序(文件)称为源程序(文件),把机器可以直接辨认并程序(文件)称为源程序(文件),把机器可以直接辨认并执行的程序(文件)称为可执行程序(文件)。这一过程一执行的程序(文件)称为可执行程序(文件)。这一过程一般分为两步:般分为两步:第第1步步:在程序编辑过程中输入到源文件中的是一些字符:在程序编辑过程中输入到源文件中的是一些字符码,但是机器可以直接处理的是码,但是机器可以直接处理的是0、1信息。为此,首先要将信息
17、。为此,首先要将源程序文件翻译成源程序文件翻译成0、1码表示的信息,并用相应的文件保存。码表示的信息,并用相应的文件保存。这种保存这种保存0、1码信息的文件称为目标程序文件。由源文件翻码信息的文件称为目标程序文件。由源文件翻译成目标文件的过程称为编译。在编译过程中,还要对源程译成目标文件的过程称为编译。在编译过程中,还要对源程序中的语法和逻辑结构进行检查。编译任务是由称做编译器序中的语法和逻辑结构进行检查。编译任务是由称做编译器(compiler)的软件完成的。目标程序文件还不能被执行,)的软件完成的。目标程序文件还不能被执行,它们只是一些目标程序模块。它们只是一些目标程序模块。第第2步步:将
18、目标程序模块以及程序所需的系统中固有的:将目标程序模块以及程序所需的系统中固有的目标程序模块(如执行输入输出操作的模块)链接成一个完目标程序模块(如执行输入输出操作的模块)链接成一个完整的程序。经正确链接所生成的文件才是可执行文件。完成整的程序。经正确链接所生成的文件才是可执行文件。完成链接过程的软件称为链接器(链接过程的软件称为链接器(linker)。)。图图1.7为编译和链接过程的示意图。为编译和链接过程的示意图。程序在编译、链接过程中,也可能发现错误。这时要重程序在编译、链接过程中,也可能发现错误。这时要重新进入编辑器进行编辑。新进入编辑器进行编辑。#include int add(in
19、t,int);int main(void)int s;s=add(2,3);printf(“The sum is:%d”,s);return 0;int add(int a,int b)int sum;sum=a+b;return sum;编译器0101100101110101101010001010001000110010101111010001000101000100011001010111101000100111011101链接程序源文件1源文件2目标文件1目标文件21100011010111000101000100011001010111101000100111011101100100
20、10010000000000可执行文件10001000101000100011001010111101000100111011101100110011其他目标文件图图1.7编译和链接过程的示意图编译和链接过程的示意图5.程序的测试与调试程序的测试与调试经编译、链接的程序文件,生成可执行文件,就可以让经编译、链接的程序文件,生成可执行文件,就可以让计算机执行了。但是,并不是就可以得到预期的结果而交付计算机执行了。但是,并不是就可以得到预期的结果而交付用户使用了,因为程序仍然会存在某些错误。因此,每一个用户使用了,因为程序仍然会存在某些错误。因此,每一个人编写出一个程序后,在正式交付使用前,总要试
21、通一下。人编写出一个程序后,在正式交付使用前,总要试通一下。“试通试通”就是试运行程序,也就是对程序进行测试。就是试运行程序,也就是对程序进行测试。测试是以程序通过编译、没有语法和链接上的错误为前测试是以程序通过编译、没有语法和链接上的错误为前提,目的是找出程序中可能存在的错误并加以改正。因此,提,目的是找出程序中可能存在的错误并加以改正。因此,应该测试程序在不同情况下运行的情况,输入不同的数据可应该测试程序在不同情况下运行的情况,输入不同的数据可以检测出程序在不同情况下运行的情况。测试的数据应是以以检测出程序在不同情况下运行的情况。测试的数据应是以“程序是会有错误的程序是会有错误的”为前提精
22、心设计出来的,而不是随心所欲为前提精心设计出来的,而不是随心所欲地乱凑而成的。它不仅应含有被测程序的输入数据,而且还地乱凑而成的。它不仅应含有被测程序的输入数据,而且还应包括程序执行它们后预期的结果。每次测试都要把实际的应包括程序执行它们后预期的结果。每次测试都要把实际的结果与预期的结果相比较,以观察程序是否出错。结果与预期的结果相比较,以观察程序是否出错。6.编写程序文档编写程序文档经过了问题分析、设计、程序编码、测试后,程序开发的经过了问题分析、设计、程序编码、测试后,程序开发的工作基本上结束了。但是,这时还不能交付使用。因为,随着工作基本上结束了。但是,这时还不能交付使用。因为,随着程序
23、规模的增大和日益复杂化,程序的使用和运行也越来越不程序规模的增大和日益复杂化,程序的使用和运行也越来越不那么直接,用户要运行程序,还需要知道许多信息,如:那么直接,用户要运行程序,还需要知道许多信息,如:程序的功能程序的功能需要输入的数据类型、格式和取值范围需要输入的数据类型、格式和取值范围需要使用的文件数量、名称、内容以及存放位置等需要使用的文件数量、名称、内容以及存放位置等程序运行需要的软、硬件环境程序运行需要的软、硬件环境程序的装入、启动方法以及交互方式等程序的装入、启动方法以及交互方式等。为此,程序开发者需要向用户提供这些资料为此,程序开发者需要向用户提供这些资料称为程序称为程序使用说
24、明书或用户文档。需要说明的是,在许多软件中,这些使用说明书或用户文档。需要说明的是,在许多软件中,这些内容已经部分或全部地以内容已经部分或全部地以“readme”或或“help”的形式提供。的形式提供。目前,程序文档已经成为软件开发产品的必要部分。文档目前,程序文档已经成为软件开发产品的必要部分。文档在程序使用和维护中的重要性也改变了软件的概念,使之由早在程序使用和维护中的重要性也改变了软件的概念,使之由早期的期的“软件是计算机程序的总称软件是计算机程序的总称”演化为演化为“软件是计算机的程序软件是计算机的程序连同计算机化的文档的总称。连同计算机化的文档的总称。”7.程序的维护程序的维护程序交
25、付用户使用之后,并不是万事大吉了。由于程序交付用户使用之后,并不是万事大吉了。由于多种原因,还可能要对程序进行修改。交付之后对程序多种原因,还可能要对程序进行修改。交付之后对程序的修改称为程序的维护。维护程序的原因主要有:的修改称为程序的维护。维护程序的原因主要有:原来的程序没有完全满足用户要求;原来的程序没有完全满足用户要求;用户要求的改变;用户要求的改变;程序中遗留有错误,在运行中被发现。程序中遗留有错误,在运行中被发现。程序的维护可以由开发者进行,也可能是由别人进程序的维护可以由开发者进行,也可能是由别人进行。为能便于程序的维护,开发者应当提供必要的技术行。为能便于程序的维护,开发者应当
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 语言程序设计 ppt 课件
限制150内