




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、郑州工程学院计算机科学与技术系刘 东l第一部分 基本要素l第二部分第二部分 流程控制和程序结构流程控制和程序结构l第三部分第三部分 导出数据类型导出数据类型l第四部分第四部分 文件操作文件操作l考试:教师出题:考试:教师出题:50% 河南省等级考试:河南省等级考试:50%C语言程序设计教程,秦友淑,曹化工语言程序设计教程,秦友淑,曹化工 武汉:华武汉:华中科技大学出版社,中科技大学出版社,1996 The C Programming Language Second Edition,Brian W Kernighan,Dennis M Ritchie,N J USA:Prentice-Hall,
2、1998 C语言程序设计典型题解析及自测试题,曹化工,语言程序设计典型题解析及自测试题,曹化工,秦友淑秦友淑 西安:西北工业大学出版社西安:西北工业大学出版社 2000上课要尽量到场,作业要仔细思考,上机要认真上课要尽量到场,作业要仔细思考,上机要认真操作。操作。必须参加河南省计算机等级考试的必须参加河南省计算机等级考试的C语言部分,该语言部分,该成绩占最终考试成绩的一部分,考试通过,绝非成绩占最终考试成绩的一部分,考试通过,绝非易事。易事。师生共同努力,达到较高水平。师生共同努力,达到较高水平。讲课进展较快,平时不复习并加深理解,后面将讲课进展较快,平时不复习并加深理解,后面将听不懂。听不懂
3、。上机:第上机:第3,5,6,7,8周周 周五周五 9,10节节 第第10,11,12,13,14周周 周六周六 7,8节节 每次上机后要交实验报告作为平时成绩。每次上机后要交实验报告作为平时成绩。 考试:闭卷考试,时间为第考试:闭卷考试,时间为第16周。周。作业:平时作业要认真完成,考试时才可以作业:平时作业要认真完成,考试时才可以顺利通过。顺利通过。1.1 C语言出现的历史背景语言出现的历史背景1.2 C语言的特点语言的特点1.3 简单的简单的C程序介绍程序介绍1.4 C程序的上机步骤程序的上机步骤C语言出现的历史背景语言出现的历史背景1 C语言的诞生(语言的诞生(1970年年1973年)
4、年) 最初的最初的C语言是为描述和实现语言是为描述和实现UNIX系系统提供一种工作语言而设计的。统提供一种工作语言而设计的。 1973年,年,K.Thompson和和D.M.Ritchie两人合作把两人合作把UNIX的的90%以上用以上用C编写,编写,形成了形成了UNIX第第5版。版。2 C语言的发展语言的发展 1977年出现了不依赖于具体机器的年出现了不依赖于具体机器的C语言编译文本语言编译文本可移植可移植C语言编译程语言编译程序序,使,使C移植到其他机器时所需做的移植到其他机器时所需做的工作大大简化了,工作大大简化了,C语言迅速得到推广。语言迅速得到推广。3 C语言的成熟语言的成熟 197
5、8年年Brian W Kernighan和和Dennis M Ritchie合著了合著了 The C Programming Language ,成为标准,成为标准C。 1983年,美国国家标准协会根据年,美国国家标准协会根据C语言问语言问世以来各种版本对世以来各种版本对C的发展和扩充,制定了的发展和扩充,制定了新的标准,称为新的标准,称为ANSI C。随后各种组织对其。随后各种组织对其不断进行扩充,不断进行扩充,C语言走向成熟。语言走向成熟。1 语言特点:表达能力强;流程控制结构语言特点:表达能力强;流程控制结构化,程序结构模块化;语言简练;使用化,程序结构模块化;语言简练;使用灵活。灵活。
6、2 应用特点:应用特点:C程序代码质量高,几乎可程序代码质量高,几乎可以与汇编语言媲美;本身可移植性好。以与汇编语言媲美;本身可移植性好。 C语言对程序员要求较高。程序语言对程序员要求较高。程序员使用员使用C语言编写程序会感觉限制少,语言编写程序会感觉限制少,灵活性大,功能强,可以编写出任灵活性大,功能强,可以编写出任何类型的程序。现在,何类型的程序。现在,C语言已不仅语言已不仅用来编写系统软件,也用来编写应用来编写系统软件,也用来编写应用软件。用软件。Mai 一个一个C C程序可由若干个函数构成,其中必须程序可由若干个函数构成,其中必须有且只能有一个以有且只能有一个以mainmain命名的主
7、函数命名的主函数。 下面先介绍几个简单的下面先介绍几个简单的C C程序,然后从中程序,然后从中分析分析C C程序的特性。程序的特性。main()main( )printf(“This is a simple C program.n”);main()int a,b,sum; /* add a and b ,sum is the result */a=123;b=456;sum=a+b;printf(“The sum of %d and %d is %d.n”,a,b,sum);注释注释int max (int x, int y)int z;if(x y)z = x;elsez = y;retur
8、n (z);main( )int a, b, c;scanf(“%d%d”, &a, &b);c = max(a, b);printf(“max=%dn”, c);形式参数形式参数 f ( int x) int y; y = x * x; return y;main( ) int a, b; scanf(%d, &a); b = f( a ); printf(b=%dn, b);函数函数函数名函数名表表参数类型参数类型 参数名参数名声明部分声明部分函函 数数 调调 用用函数函数函数类型函数类型自定义函数自定义函数主函数主函数库函数库函数函函 数数 定定 义义函数首部函数
9、首部函函 数数 体体执行部分执行部分实际参数实际参数变量:先定义,后使用变量:先定义,后使用int源程序源程序 *.c目标程序目标程序*.objCompiler可执行程序可执行程序 *.exeLinker具体的步骤如下:具体的步骤如下:1.建立源程序文件(编辑)建立源程序文件(编辑)2.编译编译3.连接连接4.运行运行第二章第二章 程序的灵魂程序的灵魂算法算法一、一个程序包括两部分内容:一、一个程序包括两部分内容:1、数据结构数据结构:即对数据的描述,在程序中要指定数:即对数据的描述,在程序中要指定数据的类型和数据的组织形式。据的类型和数据的组织形式。2、算法算法:即操作的步骤。:即操作的步骤
10、。 数据是操作的对象,操作的目的是对数据进行数据是操作的对象,操作的目的是对数据进行加工处理,以得到期望的结果。作为程序设计人员,加工处理,以得到期望的结果。作为程序设计人员,必须认真考虑和设计数据结构和操作步骤。必须认真考虑和设计数据结构和操作步骤。 程序程序=算法算法+数据结构数据结构+程序设计方法程序设计方法+语言工具语言工具和环境和环境 在设计一个程序时,要综合运用这几方面的知识。在设计一个程序时,要综合运用这几方面的知识。算法是灵魂,数据结构是加工对象,语言是工具,算法是灵魂,数据结构是加工对象,语言是工具,编程需要采用合适的方法。编程需要采用合适的方法。二、简单的程序设计一般包括:
11、二、简单的程序设计一般包括:1、确定数据结构。、确定数据结构。根据任务书提出的要求、指定的输根据任务书提出的要求、指定的输入数据和输出的结果,确定存放数据的数据结构。入数据和输出的结果,确定存放数据的数据结构。2、确定算法。、确定算法。针对存放数据的数据结构来确定解决问针对存放数据的数据结构来确定解决问题、完成任务的一步一步的步骤。题、完成任务的一步一步的步骤。3、编码。、编码。根据确定的数据结构和算法,使用选定的计根据确定的数据结构和算法,使用选定的计算机语言编写的程序代码,输入到计算机并保存在磁算机语言编写的程序代码,输入到计算机并保存在磁盘上,简称编码。盘上,简称编码。4、调试程序、调试
12、程序。消除由于疏忽而引起的语法错误或逻辑。消除由于疏忽而引起的语法错误或逻辑错误;用各种可能的输入数据对程序进行测试,是指错误;用各种可能的输入数据对程序进行测试,是指对各种合理的数据都能得到正确的结果,对不合理的对各种合理的数据都能得到正确的结果,对不合理的数据能进行适当的处理。数据能进行适当的处理。5、整理并写出文档资料。、整理并写出文档资料。2.1 2.1 算法的概念算法的概念做任何事情都用一定的步骤,例如炒菜有以下几个步骤:做任何事情都用一定的步骤,例如炒菜有以下几个步骤:这些步骤按一定的顺序进行,缺一不可,次序错了也不行。这些步骤按一定的顺序进行,缺一不可,次序错了也不行。从事各种工
13、作和活动,都必须事先想好进行的步骤,然后按从事各种工作和活动,都必须事先想好进行的步骤,然后按部就班地进行,才能不免产生错乱。编程序也是这样。部就班地进行,才能不免产生错乱。编程序也是这样。 学习计算机程序设计语言的目的,是要用语言作为学习计算机程序设计语言的目的,是要用语言作为工具,设计出可供计算机运行的程序。在拿到一个需要工具,设计出可供计算机运行的程序。在拿到一个需要求解的问题之后,怎样才能编写出程序呢?除了选定合求解的问题之后,怎样才能编写出程序呢?除了选定合理的数据结构,一般来说,十分关键的一步是设计算法,理的数据结构,一般来说,十分关键的一步是设计算法,有了一个好的算法,就可以用任
14、何一种计算机高级语言有了一个好的算法,就可以用任何一种计算机高级语言把算法转换成程序。把算法转换成程序。算法:算法: 就是为了解决一个特定问题而采取的确定的有限就是为了解决一个特定问题而采取的确定的有限的步骤。这些步骤是计算机能够完成的。我们编写程序的步骤。这些步骤是计算机能够完成的。我们编写程序主要就是编制计算机各种操作的步骤,这一过程就是主要就是编制计算机各种操作的步骤,这一过程就是算算法设计法设计。计算机算法可分为:计算机算法可分为:数值运算算法和非数值运算算法数值运算算法和非数值运算算法。数值运算的目的是求数值解;非数值运算常用于事务管数值运算的目的是求数值解;非数值运算常用于事务管理
15、领域,如图书检索、人事管理、行车调度管理等。理领域,如图书检索、人事管理、行车调度管理等。 2.2 简单算法举例简单算法举例例:求例:求1*2*3*4*5的值。的值。步骤步骤1:先求:先求1*2,得到结果,得到结果2。步骤步骤2:将步骤:将步骤1得到的乘积得到的乘积2再乘以再乘以3,得到结,得到结 果果6。步骤步骤3:将:将6乘以乘以4,得,得24。步骤步骤4:将:将24再乘以再乘以5,得,得120。这就是最后的结果。这就是最后的结果。2.3 算法的特性算法的特性一个算法应当具有五大特性一个算法应当具有五大特性:1、有穷性、有穷性:一个算法包括有限个操作步骤,即在执行若干个:一个算法包括有限个
16、操作步骤,即在执行若干个操作步骤之后,算法将结束,而且每一步都在合理的时间内操作步骤之后,算法将结束,而且每一步都在合理的时间内完成。完成。2、确定性:、确定性:算法中每一条指定必须有确切的含义,不能有二算法中每一条指定必须有确切的含义,不能有二义性,对于相同的输入必须得出相同的执行结果。义性,对于相同的输入必须得出相同的执行结果。3、可行性:、可行性:算法中指定的操作,都可以通过已经实现的基本算法中指定的操作,都可以通过已经实现的基本运算执行有限次后实现。运算执行有限次后实现。4、有零个或多个输入。、有零个或多个输入。在计算机上实现的算法,是用来处理在计算机上实现的算法,是用来处理数据对象的
17、,在大多数情况下这些数据对象需要通过输入来数据对象的,在大多数情况下这些数据对象需要通过输入来得到。得到。5、有一个或多个输出。、有一个或多个输出。算法的目的是为了求算法的目的是为了求“解解”,这些,这些“解解”只有通过输出才能得到。只有通过输出才能得到。 2.4 怎样表示一个算法怎样表示一个算法 算法可以用各种描述方法来进行描述,最常用的是流程图算法可以用各种描述方法来进行描述,最常用的是流程图和伪代码。和伪代码。一、流程图一、流程图:用一些图框表示各种操作。用图形表示算法,用一些图框表示各种操作。用图形表示算法,直直观形象,易于理解观形象,易于理解。传统的流程图有以下几种基本框组成:。传统
18、的流程图有以下几种基本框组成: 起止框:算法的开始和结束起止框:算法的开始和结束 一般处理框:表示赋值、加减等操作一般处理框:表示赋值、加减等操作 判断框:根据给定的条件决定判断框:根据给定的条件决定 执行几条路径中的某一条路径。执行几条路径中的某一条路径。 输入输出框:表示输入输出操作。输入输出框:表示输入输出操作。 流程线:表明程序流程的方向。流程线:表明程序流程的方向。 二、流程图举例:二、流程图举例:1、从键盘上接收数据,打印出正数。、从键盘上接收数据,打印出正数。2、已知一个圆柱体的半径和高,、已知一个圆柱体的半径和高,求它的面积和体积。求它的面积和体积。三、三种基本结构和改进的流程
19、图三、三种基本结构和改进的流程图1、传统的流程图的弊端、传统的流程图的弊端 传统的流程图用传统的流程图用流程线流程线指出各框的执行顺序,指出各框的执行顺序,使用者可以使用者可以不受限制不受限制的是流程随意的转来转去,使的是流程随意的转来转去,使流程图变得毫无规律。这样使阅读者要花很大精力流程图变得毫无规律。这样使阅读者要花很大精力去追踪流程,难以理解算法的逻辑,也难以修改,去追踪流程,难以理解算法的逻辑,也难以修改,从而从而使算法的可靠性和可维护性难以保证使算法的可靠性和可维护性难以保证。为了提。为了提高算法的质量,使算法的设计和阅读方便,必须限高算法的质量,使算法的设计和阅读方便,必须限制箭
20、头的滥用,即不允许无规律的使流程随意转向。制箭头的滥用,即不允许无规律的使流程随意转向。 为了解决这个问题,我们规定几种为了解决这个问题,我们规定几种基本结构基本结构,然后由这些基本结构然后由这些基本结构按一定规律组成一个算法结构按一定规律组成一个算法结构,整个算法的结构是由上而下的将各个基本结构顺序整个算法的结构是由上而下的将各个基本结构顺序排列起来的。排列起来的。2、三种基本结构:、三种基本结构:(1)顺序结构:是最常用,也是最简单的一种程序结构,)顺序结构:是最常用,也是最简单的一种程序结构,它的它的特点特点是:是: 程序按语句程序按语句从上到下从上到下的的排列顺序依次执行,每条语排列顺
21、序依次执行,每条语句必须执行且句必须执行且只能执行一次只能执行一次,没有执行不到或执行多次的没有执行不到或执行多次的语句。语句。根据表达式根据表达式的值是真或假来的值是真或假来选择选择是执行语句是执行语句还是直接跳出还是直接跳出(2)选择结构:又称分支结构)选择结构:又称分支结构特点特点:程序的流程是由多条支路构成的,在程序的一次执行:程序的流程是由多条支路构成的,在程序的一次执行过程中,根据不同的情况,过程中,根据不同的情况,只有一条支路被选中执行只有一条支路被选中执行,而其,而其他支路上的语句被直接跳过。他支路上的语句被直接跳过。此种形式是此种形式是根据表达式的值,根据表达式的值,如果如果
22、为真则执行为真则执行语句,如果为语句,如果为假则执行语句假则执行语句。功能功能是:当表达式的是:当表达式的值为真时,执行循环值为真时,执行循环体语句,然后再判断体语句,然后再判断条件是否成立,如果条件是否成立,如果仍成立,再执行循环仍成立,再执行循环体,如此反复执行,体,如此反复执行,直到某一次表达式的直到某一次表达式的值为假时,不再执行值为假时,不再执行循环体,跳出循环结循环体,跳出循环结构。构。、循环结构:又称重复结构,即反复执行某一部分的操作。、循环结构:又称重复结构,即反复执行某一部分的操作。()当型循环结构:(循环)()当型循环结构:(循环)功能功能先执行先执行循环循环体,体,然后判
23、断然后判断循环条循环条件是否成立,如够条件是否成立,如够条件不成立,则继续执件不成立,则继续执行循环体,然后再判行循环体,然后再判断,断,反复执行直到给反复执行直到给定的循环条件成立,定的循环条件成立,跳出循环。跳出循环。()直到型循环:(型)()直到型循环:(型)特点特点是:执行循环体直到指定的条件满足,就不再执行是:执行循环体直到指定的条件满足,就不再执行循环。循环。顺序结构选择结构循环结构顺序结构选择结构循环结构已经证明,由以上三种基本结构顺序组成的已经证明,由以上三种基本结构顺序组成的算法结构,算法结构,可以解决任何复杂的问题可以解决任何复杂的问题。由基本结。由基本结构所构成的算法属于
24、构所构成的算法属于“结构化结构化”的算法,它的算法,它不存不存在在无规律的转向无规律的转向,只在本基本结构内才允许存在,只在本基本结构内才允许存在分支和向前和向后的跳转。分支和向前和向后的跳转。基本结构的特点:基本结构的特点:()只有一个入口;()只有一个入口;()只有一个出口;()只有一个出口;()没有永远执行不到的语句;()没有永远执行不到的语句;()没有死循环。()没有死循环。AB4、用、用N-S流程图表示算法流程图表示算法 1973年美国学者年美国学者I.Nassi 和和B.Shneiderman 提出了一种提出了一种新的流程图形式。新的流程图形式。 在这种流程图中,完全去掉了带箭头的
25、流程线,全部在这种流程图中,完全去掉了带箭头的流程线,全部算法写在一个矩形框中,在该框内还可以包含其它的从属算法写在一个矩形框中,在该框内还可以包含其它的从属于它的框,即由一些基本框组成一个大的框。这种流程图于它的框,即由一些基本框组成一个大的框。这种流程图适于结构化程序设计。适于结构化程序设计。几种结构形式:几种结构形式:(1)顺序结构)顺序结构:A、B两个框组成一个顺序结构。两个框组成一个顺序结构。(2)选择结构:当)选择结构:当p条件成立时执行条件成立时执行A操作,操作,p不成立时执不成立时执行行B操作。操作。成立成立不成立不成立ABp(3)循环结构)循环结构:当当p成立成立AA直到直到
26、P成立成立当当P条件成立时反复执行条件成立时反复执行A操作操作P不成立反复执行不成立反复执行A操作,直到操作,直到P成立跳成立跳出循环体出循环体用用N-S表示算法的优点:表示算法的优点:(1)它比文字描述)它比文字描述直观、形象、易于理解直观、形象、易于理解;(2)比传统流程图)比传统流程图紧凑易画紧凑易画,尤其是废除了流程线,整,尤其是废除了流程线,整个算法结构是由各个基本结构按顺序组成的。个算法结构是由各个基本结构按顺序组成的。(3) N-S流程图中的流程图中的上下顺序就是执行时的顺序上下顺序就是执行时的顺序,即图,即图中位置在上面的先执行,位置在下面的后执行。中位置在上面的先执行,位置在下面的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《手术室医院感染控制课件》
- 电视购物与多渠道融合营销考核试卷
- 纤维板制造原理考核试卷
- 人工智能在风险评估中的自然语言处理应用考核试卷
- 计划生育技术服务在灾害应急中的应对措施考核试卷
- 《出血性疾病课件概述》
- 数字智慧方案5425丨莆田港务集团5G智慧港口项目建设方案
- 2019-2025年材料员之材料员专业管理实务自我提分评估(附答案)
- 2025年基金从业资格证之证券投资基金基础知识真题练习试卷A卷附答案
- 海上风电运维船安全
- 短语结构类型(七年级下)
- 厂区保洁服务投标方案【2024版】技术方案
- 中国近现代史考点归纳
- 高考志愿填报指导高考志愿填报指南
- 中国文化概要智慧树知到期末考试答案章节答案2024年温州大学
- 制作的最好的GRR分析表
- 淄博市2024届高三二模历史试题卷(含答案)
- MOOC 人力资源管理-暨南大学 中国大学慕课答案
- MOOC 动物学-华中农业大学 中国大学慕课答案
- (2024年)中华人民共和国环境保护法全
- 中医护理-生活起居的护理内容
评论
0/150
提交评论