C语言程序设计概述.ppt
《C语言程序设计概述.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计概述.ppt(91页珍藏版)》请在三一办公上搜索。
1、第1章 C语言程序设计概述,1.1 程序设计的基本概念1.2 结构化程序及设计步骤1.3 C程序的构成和书写格式1.4 C程序的上机操作习题1,1.1 程序设计的基本概念,1.1.1 程序 计算机是一种以二进制数据形式在内部存储信息、以程序存储为基础、由程序自动控制的电子设备。人们需要计算机所做的任何工作,都必须以计算机所能识别的指令形式送入计算机内存中。一条条有序指令的集合称为程序。,一个程序通常包含两个方面的内容。(1)数据的描述:指定数据的类型和组织形式(数据结构)。(2)操作的描述:编程的操作步骤,也称算法。数据是操作的对象,操作的目的是对数据进行加工处理,以便得到结果。打个比方,程序
2、设计就像厨师做菜肴时需要菜谱,菜谱上一般包括两个方面。(1)配料:制作菜肴所需的原料(类似于程序设计中的数据结构)。(2)操作步骤:制作某项菜肴时将原料按规定的步骤加工成所需的菜肴(类似于程序设计中的算法)。因此,计算机科学家沃思指出:数据结构+算法=程序,1.1.2 计算机语言 程序设计语言是实现程序设计,以便人与计算机进行信息交流的必备工具,又称计算机语言。目前,社会上广泛使用的是高级语言,是一种接近人们习惯的程序设计语言,它使用人们所熟悉的文字、符号及数学表达式来编写程序,使程序的编写和操作都显得十分方便。由高级语言编写的程序称为“源程序”。在计算机内部,源程序必须翻译为机器能够接受的二
3、进制代码所表示的“目标程序”(也称机器语言)。其中,具有这种翻译功能的程序称为“编译程序”。源程序编译过程如图1.1所示。,图1.1 源程序编译过程,每一种高级语言都有与其相应的编译程序。在计算机内运行编译程序,才能运行相应的高级语言所编写的源程序。本书所介绍的C语言是目前国内外广泛流行的高级程序设计语言,是面向过程的较好的结构化程序设计语言。它不仅可以用来编写系统软件,也可以用来编写应用软件,同时也是面向对象程序设计技术的主要工具。,1.1.3 程序设计 下面介绍设计简单程序时的操作步骤。如果进行系统工程开发,则操作步骤比较复杂。对于程序设计人员来说,必须掌握更多的知识,比如软件工程方面的知
4、识等。程序设计的一般步骤如下:1)确定数据结构 依据所需要处理的任务要求,规划输入的数据和输出的结果,确定存放数据的数据结构。由于在C语言中数据结构集中体现在数据类型上,因此,在进行C语言程序设计时,应统筹规划程序中所使用的变量、数组、指针以及它们的类型等。这是很重要的,如果在此期间选择了不合适的变量或者数组,将来修改起来就会比较困难。,2)确定算法算法是指为解决某一特定问题而采取的确定的有限的步骤。对同一个问题,每一个人确定的算法都不应该完全相同。算法有优有劣,其评判的标准本书不做介绍。对于程序设计人员来说,应该学习比较优秀和比较经典的算法,本书实例中介绍的均为一些常用的算法。3)编写程序
5、在充分论证数据结构和算法以后才能考虑编写程序,编写程序需要结合程序设计方法(面向过程的或是面向对象的)和程序设计语言(C语言、C+、Delphi等),当然即使是C语言,还有许多集成开发环境,例如Turbo C或是Microsoft C等,不同的集成开发环境写出的程序代码是有所区别的。,4)程序调试 程序开发人员编写的程序称为源程序或源代码,源代码不能直接被计算机执行。源代码要经过编译程序编译,生成目标程序,然后链接其他相应的代码,最后生成可被计算机执行的可执行文件(.EXE或.COM文件)。Turbo C 2.0集成开发环境提供了相应的编译程序。一个源代码有时要经过多次的修改才能编译通过,因此
6、这一步有时是很困难的。程序在编译时,如果不能通过,则会有错误提示信息,程序员要根据错误提示信息调试程序。,5)整理源程序并总结资料 有人以为程序调试成功就万事大吉了,其实这种思想是错误的。对于程序设计人员来说,平时的归纳和总结是很重要的。程序员应将平时的源程序进行归类保存,以方便今后查找,同时一定要注意保留文字资料。1.1.4 算法 日常生活中做任何事情都有其方法和步骤,这些方法、步骤就是算法,它要求过程合理而有序。不同的问题,有不同的方法和步骤;同一问题,不同的人也可能有不同的方法和步骤。下面介绍一下衡量算法步骤优劣的标准、算法的分类和算法设计准则的常用方法。,1)衡量算法步骤优劣的标准 衡
7、量一个算法步骤是否优劣的标准主要有以下三个方面。(1)思路:清晰、正确。(2)过程:简单、明了、扼要。(3)算法:合适。例如:计算1+2+3+4+5+99+100的值。算法1:1+2=3,3+3=6,6+4=10,10+5=15,15+6=21,4851+99=4950,4950+100=5050,算法2:100+(1+99)+(2+98)+(3+97)+(48+52)+(49+51)+50=100+49100+50=5050 相对而言,算法2简洁明了、易算。2)算法分类 按数据的处理方式,计算机中的算法可分为两类。(1)数值运算:求数值的解,如求解方程的根,求函数的定积分等。这类算法研究较深
8、入、成熟,如数学程序库中的有关数学问题的求解,已编制成了标准的子程序供人们使用。,(2)非数值运算:目前使用的范围广泛,如办公自动化处理、图书情报检索等。此类算法一般没有固定的模式,由编程者自己编制,或参考已有类似的算法重新设计解决特定问题的专门算法。其中,排序是非数值运算算法中研究较为深入的一种。3)算法设计准则 在算法设计中应遵循以下五个准则。(1)有穷性:在合理的范围内操作步骤是有限的,而不能是无限的。一个算法必须在有限的操作步骤完成后,得出正确结果,能够使算法结束。,(2)确定性:算法中的每一步骤都应是惟一的和确定无误的,不能出现含糊而产生歧义性。也就是说,该操作对于相同的输入必能得出
9、相同的结果。(3)有零个或多个输入:在执行算法时,需从外界得到的必要信息就是输入。一个算法,可以有零个、一个或多个特定对象的输入。(4)有一个或多个输出:算法的目的是为了求解,算法得到的结果就是该算法的输出,没有输出的算法是没有意义的。一个算法可以有一个或多个与输入相关的输出。(5)有效性:算法是编写程序代码的主要依据,算法设计中的每一个步骤,都必须是所使用的高级语言能够描述的操作。算法中每一步骤都应有效地执行,并得到确定的结果。例如,b=0时,a/b是不能有效执行的。,1.1.5 算法的描述 描述算法常用的方法有自然语言、传统流程图和N-S结构化流程图等。1)自然语言 自然语言是指人们日常使
10、用的语言,可以是英文、中文或中英文结合。优点:通俗易懂。缺点:文字冗长,易出现歧义性。2)传统流程图 使用ANSI规定的流程图符号表示算法,其特点是:直观形象、易于理解。在用传统流程图表示算法时使用以下常用的符号。,起止框:输入输出框:判别框:处理框:流程线:注释框:连接点:,【例1-1】求S=1+2+3+99+100的值的算法可以用下面的方式描述。(1)用自然语言描述。设一整型变量i,并令i=1(这里的“=”不同于数学里的等号,它表示赋值,这里把1赋给i,以下类同)。设一整型变量s,用其存放累加和;每次将i与s相加后存入s;使i值增1,取得下次的加数。重复执行上步,直到i的值大于100时,执
11、行下一步。将累加和s的值输出。,图1.2 传统流程图,(2)用传统流程图描述,如图1.2所示。3)N-S结构化流程图N-S结构化流程图(简称N-S流程图)是将算法的每一个步骤,按序连接成一个大的矩形框来表示,从而完整地描述一个算法。N-S流程图更适合对结构化程序设计的描述,其描述方法将在下一节介绍。,1.2 结构化程序及设计步骤,1.2.1 结构化程序设计的概念 结构化语言比非结构化语言更易于程序设计,用结构化语言编写的程序的清晰性使得它们更易于维护,这已是人们普遍接受的观点了。结构化语言的显著特征是代码和数据的分离。这种语言能够把执行某个特殊任务的指令和数据从程序的其余部分分离出去。获得隔离
12、的一个方法是调用使用局部变量的子程序。通过使用局部变量,可以写出对程序其他部分没有副作用的子程序。,这样,就使得编写共享代码段的程序变得短小简单。如果开发了一些分离较好的函数,在引用时就可以只需知道函数做什么,而不必知道它是如何做的。(切记:过度使用全局变量会由于意外的副作用而在程序中引入错误。)在C语言中,函数是完成程序功能的基本构件。使用函数可以将一个程序的诸任务分别定义和编码,使程序模块化。可以确信,一个好的函数不仅能正确工作,还不会对程序的其他部分产生副作用。,1.2.2 三种基本结构 结构化程序由三种基本结构组成:顺序结构、选择结构和循环结构。已经证明,这三种基本结构组成的算法可以解
13、决任何复杂的问题。使用这三种基本结构编写的程序,称为结构化程序。下面通过简单的实例说明结构化程序设计的三种基本结构。1.顺序结构 顺序结构程序中的语句按先后顺序逐条执行。【例1-2】顺序结构示例。求s=a+b的值。其流程图如图1.3所示,图(a)是传统流程图,图(b)是N-S流程图。,图1.3 顺序结构流程图(a)传统流程图;(b)N-S流程图,程序如下:#include stdio.hmain()/*主函数*/int a,b,s;/*定义a,b,s为整型变量*/a=6;b=8;s=a+b;printf(s=%dn,s);/*输出s的值*/,2选择结构在执行程序中的选择结构语句时,该语句的执行
14、将根据不同的条件执行不同分支的语句。【例1-3】选择结构示例。求a、b两数中的较大数。其流程图如图1.4所示,图(a)是传统流程图,图(b)是N-S流程图。,图1.4 选择结构流程图(a)传统流程图;(b)N-S流程图,程序如下:#include stdio.hmain()int a=6,b=8,max;/*定义变量a,b,max,并给a和b赋值*/if(ab)max=a;/*如果a大于b,将a赋给max*/else max=b;/*否则将b赋给max*/printf(max=%d,max);,3.循环结构 在执行程序中的循环结构语句时,该语句将根据各自的条件,对循环结构所限定的语句(即循环体
15、)重复执行多次或零次。循环结构又分为当型循环和直到型循环两种情况。1)当型循环 当型循环的特点是:先进行判断,当条件满足时,就执行循环体,否则就退出循环体。,【例1-4】循环结构示例。计算n!。其流程图如图1.5所示,图(a)是传统流程图,图(b)是N-S流程图。,图1.5 当型循环流程图(a)传统流程图;(b)N-S流程图,程序如下:#include stdio.hmain()int i,n,t;/*i用来存放阶乘中的项,t存放阶乘*/i=1;t=1;scanf(%d,2)直到型循环 直到型循环的特点是:先执行循环体,再判断循环条件,直到条件不满足时,就退出循环结构。【例1-5】用直到型循环
16、求解n!的流程图(见图1.6)和程序段。程序如下:#include stdio.hmain()int i,n,t;/*i用来存放阶乘中的项,t存放阶乘*/i=1;t=1;scanf(%d,do,t=t*i;i=i+1;while(i=n);printf(t=%dn,t);,图1.6 直到型循环流程图(a)传统流程图;(b)N-S流程图,1.2.3 结构化程序设计步骤 结构化程序设计步骤与前面一般程序设计步骤大体相同,其步骤如图1.7所示。,图1.7 结构化程序设计步骤,1分析问题 首先正确地分析所要解决的问题,整体上得出程序设计要实现的功能。2确定数学模型和数据结构 对于一般问题,可根据所使用
17、的高级语言,确定数据结构。在处理较复杂的有关专业方面的问题时,需要把实际问题抽象成数学模型的形式,以便确立程序中使用何种数据结构,为下一步的算法设计提供依据。,3算法设计 结构化算法设计的方法如下。(1)自顶向下,逐步求精。所谓自顶向下,就是首先从全局出发进行整体设计,然后,依据整体设计向下层逐层分解。所谓逐步求精,就是对上层任务逐层进行细化。一般来说,一个大的任务可以分解为若干个子任务,而每个子任务又可以继续分解为若干个更小的子任务,这样向下逐层细化直至每个子任务仅处理一个简单的容易实现的问题。,(2)模块化设计。所谓模块化,就是在程序设计时,由自顶向下、逐步求精所得出的一个个子任务的处理程
18、序,称为“功能模块”。一个大的程序,就是由若干个这样的功能模块组成的,在整体设计部署下,编程实际上成为对若干个小问题的处理。每一个模块可以分配给不同的程序设计者去完成,这样,编程不再是一件十分复杂、困难的事情。,由结构化算法得出的功能模块应具备下述特点:(1)一个模块处理一个特定的小问题。(2)每一个模块仅用顺序、选择和循环三种基本结构描述。(3)每一个模块可以独立地进行编程和调试。(4)除最上层外,每层功能模块可接受上层调用。4编写程序 编写程序即编写“源程序”。依据算法设计,用高级语言对算法进行描述。,5.程序编译链接和运行编译:在高级语言环境下,对源程序进行编译以检查是否存在语法错误,以
19、便修改。链接:编译过后,C语言还要经过链接才能生成可执行文件。运行:调试该程序,以检查程序是否存在逻辑错误,直至程序运行成功。1.2.4 C语言的特点 C语言是近年来较流行的高级程序设计语言,许多大型软件就是用C语言编写的。许多专业方面的教科书中的应用程序也是用C语言描述的。C语言之所以能够存在且持续发展,是因其较之其他程序设计语言有其自身的特点。,前面所举简单的程序实例,只是对C语言的初步尝试,待到C语言学完之后,会有更加深刻的体会。C语言的主要特点如下:(1)C语言是一种模块化程序设计语言。用C语言编写的程序由函数组成,每个函数完成一个特定的任务,由函数作为模块来实现程序的模块化。由函数组
20、成层次结构,程序由主函数开始,函数间可实现相互调用。(2)语言简洁,结构紧凑,程序书写方便、实用灵活。C语言仅有32个具有特定意义的关键字,宽松的语法检查,比较符合人们书写的习惯。C语言较其他高级程序设计语言来说,程序书写自由,程序简练,效率高,功能强。,(3)运算符丰富,数据处理能力强。C语言有34种运算符,其独特之处是:把括号、赋值号、强制类型转换等作为运算符处理;还有其他高级语言从未有过的自增、自减、逗号等运算符;加上运算符本身所具有的优先级及结合性,使C语言运算符类型丰富、新颖、灵活、多样。C语言既可以实现汇编语言的许多功能,又可以实现其他高级语言难以实现的功能。(4)数据类型丰富。在
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 概述

链接地址:https://www.31ppt.com/p-6504114.html