收藏 分销(赏)

C语言课件完整版(精华).ppt

上传人:胜**** 文档编号:750410 上传时间:2024-03-04 格式:PPT 页数:484 大小:13.59MB
下载 相关 举报
C语言课件完整版(精华).ppt_第1页
第1页 / 共484页
C语言课件完整版(精华).ppt_第2页
第2页 / 共484页
C语言课件完整版(精华).ppt_第3页
第3页 / 共484页
C语言课件完整版(精华).ppt_第4页
第4页 / 共484页
C语言课件完整版(精华).ppt_第5页
第5页 / 共484页
点击查看更多>>
资源描述

1、1计算机程序设计基础计算机程序设计基础(C语言)语言)21.课堂要求很严格。2.多听,适时做笔记。3.上课不能讲闲话。4.课后认真完成作业、实验报告。5.有问题,及时与老师联系。教学要求3选用教材与参考书n n主教科主教科主教科主教科书书顾治治华、陈天煌等天煌等C C C C语言程序设计语言程序设计语言程序设计语言程序设计机械工机械工机械工机械工业业出版社出版社出版社出版社 2007.2n n参考教材参考教材参考教材参考教材顾顾治治治治华华、陈陈天煌等天煌等天煌等天煌等C C C C语言程序设计语言程序设计语言程序设计语言程序设计 实实实实验指导验指导验指导验指导 机械工机械工机械工机械工业业

2、出版社出版社出版社出版社2007.22007.2n n参考参考参考参考书书谭浩浩强C C C C语言程序设计语言程序设计语言程序设计语言程序设计 清清清清华华大学出版大学出版大学出版大学出版社社社社4课程内容课程内容第一章第一章C C语言程序设计概述语言程序设计概述第二章第二章算法及算法设计简介算法及算法设计简介第三章第三章数据描述与基本操作数据描述与基本操作第四章第四章 选择结构程序设计选择结构程序设计第五章第五章循环结构程序设计循环结构程序设计第六章第六章数组与指针数组与指针第七章第七章 函数与模函数与模块块化程序化程序设计设计方法方法5第一章第一章 语言程序设计概述语言程序设计概述61.

3、1程序设计的概念程序设计的概念1.2语言的产生及发展语言的产生及发展1.3简单程序介绍简单程序介绍1.4C程序的上机步骤程序的上机步骤1.5C语言的基本语法和基本结构语言的基本语法和基本结构1.6本章要点小结本章要点小结71.1 程序设计的概念程序设计的概念1.1.1程序设计语言程序设计语言1.1.2程序设计的概念程序设计的概念8计算机计算机l计算机是用来延伸人的能力的工具,需计算机是用来延伸人的能力的工具,需要人来驾驭要人来驾驭l我们的职责是让非计算机专业的人更容我们的职责是让非计算机专业的人更容易驾驭它易驾驭它l完成这一目标的主要手段之一就是完成这一目标的主要手段之一就是“编程编程(Pro

4、gramming)”9计算机基本工作过程计算机基本工作过程l整个过程的执行者是硬件,但硬件是受软件控制的整个过程的执行者是硬件,但硬件是受软件控制的l编程,就是编写软件,使硬件按照人的意图工作编程,就是编写软件,使硬件按照人的意图工作10计算机基本工作过程计算机基本工作过程输入/输出设备存储器运算器控制器源程序和输入数据输出结果取出数据存入数据操作命令存取命令取出程序指令输入输出命令计算结果CPU“冯冯诺依曼机诺依曼机”结构结构 大脑大脑眼眼/耳耳/口口程序和数据执行结果11软件的形成软件的形成l软件(软件(Software)的形成)的形成程序员程序员(Programmer)编写程序)编写程序

5、源代码源代码(SourceCode)编译器编译器(Compiler)把源代码转换为可被计)把源代码转换为可被计算机理解的算机理解的机器代码机器代码(MachineCode)并把机器代码以并把机器代码以可可执行文件执行文件(ExecutableFile)的形式保存在磁盘上)的形式保存在磁盘上12CPU指令系统,由0、1序列构成的指令码组成如:10000000加10010000减用助记符号描述的指令系统如ADDA,B面向机器的语言程序设计是数据被加工的过程客观世界可以分类,对象是类的实例对象是数据和方法的封装对象间通过发送和接受消息发生联系程序设计关键是定义类,并由类派生对象1.1.1 程序设计语

6、言程序设计语言13程序设计语言的故事程序设计语言的故事l计算机为什么用二进制呢?计算机为什么用二进制呢?l为什么不用我们日常熟悉的十进制呢?为什么不用我们日常熟悉的十进制呢?二进制在在电器元件中容易实现二进制在在电器元件中容易实现计算机进行二进制运算比进行十进制运算要计算机进行二进制运算比进行十进制运算要简单得多简单得多14程序设计语言的故事程序设计语言的故事l机器语言编写的机器语言编写的1+1程序程序l汇编语言(汇编语言(AssembleLanguage)编写的)编写的1+1程序程序101110000000000100000000000001010000000100000000MOV AX,

7、1ADD AX,115程序设计语言的故事程序设计语言的故事lBASIC语言编写的语言编写的1+1程序程序lC语言编写的语言编写的1+1程序程序PRINT 1+1#include main()printf(%dn,1+1);1652 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96AdaALGOL60ALGOL68PascalModula-2CPLBCPL BCC+JavaLISPPROLOGCOBOLFORTRAN77FORTRANPL/1Simula67Smalltalk80BASICANSI-BASICQBA

8、SIC VBFORTRAN90171.1.2 程序设计的概念程序设计的概念程序设计就是用计算机语言程序设计就是用计算机语言来编写程序的过程。来编写程序的过程。什么是程序?著名计算机科什么是程序?著名计算机科学家沃思提出有名的公式:学家沃思提出有名的公式:算法算法+数据结构数据结构=程序程序18算法即问题的求解过程、计算机算法即问题的求解过程、计算机的工作步骤。的工作步骤。数据结构即对参与运算的数据怎数据结构即对参与运算的数据怎样进行合理的组织、安排,以提高程样进行合理的组织、安排,以提高程序运行的效率和求解的精确性。序运行的效率和求解的精确性。程序的两大要素:数据结构、算法程序的两大要素:数据

9、结构、算法191.2 C语言的产生和发展语言的产生和发展1.2.1C语言的产生语言的产生1.2.2C语言的发展语言的发展1.2.3C语言的特点语言的特点201.2.1 C 语言的产生语言的产生l一切从一个叫一切从一个叫“Space TravelSpace Travel”的电子游戏开始的电子游戏开始的的lKen ThompsonKen Thompson为了让他的游戏能在为了让他的游戏能在PDP-7PDP-7上运行,上运行,用汇编语言给用汇编语言给PDP-7PDP-7写了一个操作系统写了一个操作系统UNIXUNIXl汇编太不好用了,汇编太不好用了,ThompsonThompson需要高级语言需要高

10、级语言l试验了一些高级语言,包括试验了一些高级语言,包括FortranFortran,都不理想,都不理想l他在他在BCPLBCPL基础上,自己设计了一个基础上,自己设计了一个B B语言语言lUNIXUNIX开始发展,开始发展,B B也不够用了也不够用了lDennis RitchieDennis Ritchie加入,把加入,把B B改造成改造成C C l开始用开始用C C重写重写UNIXUNIX211.2.2 C 语言的发展语言的发展C语言发展过程语言发展过程l产生过程产生过程时间时间:19721973地点地点:美国贝尔实验室美国贝尔实验室目的目的:UNIX操作系统操作系统设计人设计人:Ken.

11、Thompson和和Dennis.M.RitchielC标准标准标准标准C:K&R合著合著TheCProgrammingLanguageANSIC:1983年年87ANSIC:1987年年1990年国际标准的年国际标准的ANSIC22Ritchie和Thompson在开发UNIX23接受美国国家技术勋章接受美国国家技术勋章24C语言的祖师爷语言的祖师爷Dennis M.Ritchie25Ritchie漫画像261.C语言本身既有一般高级语言的特点,又由低级语言本身既有一般高级语言的特点,又由低级语言(汇编语言)的特点。语言(汇编语言)的特点。2.C语言是一种结构化的程序设计语言,它具有实语言是

12、一种结构化的程序设计语言,它具有实现顺序、分支、循环三种基本结构化控制的语句。现顺序、分支、循环三种基本结构化控制的语句。3.C语言简洁,紧凑,使用方便灵活。只有语言简洁,紧凑,使用方便灵活。只有32个保个保留字,留字,9种控制语句,书写形式自由。种控制语句,书写形式自由。4.数据类型丰富。有整型、实型、字符型、数组型、数据类型丰富。有整型、实型、字符型、数组型、指针型、结构体型、共用体型和枚举型等。指针型、结构体型、共用体型和枚举型等。1.2.3C语言的特点语言的特点275、运算功能强。有、运算功能强。有32种运算符,包括了算术运算、种运算符,包括了算术运算、关系运算、逻辑运算、位运算、指针

13、运算等。关系运算、逻辑运算、位运算、指针运算等。6、目标代码质量高,运行速度快。、目标代码质量高,运行速度快。7、可移植性强。、可移植性强。8、语法限制不太严格,程序设计自由度大。、语法限制不太严格,程序设计自由度大。1.2.3C语言的特点语言的特点28C 语言是编译型语言语言是编译型语言l一种编译语言对应一种编译器一种编译语言对应一种编译器按照该语言的语法编写程序源代码,把自己的按照该语言的语法编写程序源代码,把自己的思想融入到代码中思想融入到代码中编译器读入源代码,把程序员的意图转换成可编译器读入源代码,把程序员的意图转换成可执行程序,供他人使用执行程序,供他人使用29C语言与计算机系统层

14、次关系语言与计算机系统层次关系301.3 简单简单C程序介绍程序介绍31nC程序格式和结构特点程序格式和结构特点第一个程序第一个程序Hello,World!/*example1.1ThefirstCProgram*/#includemain()printf(“Hello,World!”);注释编译预处理函数语句输出:Hello,World!32/*example1.2 calculate the sum of a and b*/#include/*This is the main program */main()int a,b,sum;a=10;b=24;sum=add(a,b);printf

15、(”sum=%dn,sum);/*This function calculates the sum of x and y */int add(int x,int y)int z;z=x+y;return(z);运行结果:运行结果:sum=34语句语句预处理命令注释注释主函数子函数33格式特点格式特点l习惯用习惯用小写小写字母,大小写字母,大小写敏感敏感l不使用行号,不使用行号,无程序行无程序行概概念念l可使用空行和空格可使用空行和空格l常用常用锯齿形锯齿形书写格式书写格式main().main()inti,j,sum;sum=0;for(i=1;i10;i+)for(j=1;j10;j+)su

16、m+=i*j;printf(“%dn”,sum);优秀程序员的素质之一:使用TAB缩进对齐有足够的注释有合适的空行34结构特点结构特点l函数与主函数函数与主函数程序由一个或多个函数组成程序由一个或多个函数组成必须有且只能有一个主函数必须有且只能有一个主函数main()程序执行从程序执行从main开始,在开始,在main中结束,其它函数通过嵌中结束,其它函数通过嵌套调用得以执行。套调用得以执行。l程序语句程序语句C程序由语句组成程序由语句组成用用“;”作为语句终止符作为语句终止符l注释注释/*/为注释为注释,不能嵌套不能嵌套不产生编译代码不产生编译代码例:/*Thisisthemain/*ofe

17、xample1.1*/*/非法n编译预处理命令编译预处理命令函数首部函数首部:包括函数名、函数类型、函数参数名、参包括函数名、函数类型、函数参数名、参数类型。数类型。函数体:声明部分函数体:声明部分,执行部分。执行部分。351.4 C C程序的上机步骤程序的上机步骤36编辑链接编译执行程序代码的录入,生成源程序*.c语法分析查错,翻译生成目标程序*.obj与其它目标程序或库链接装配,生成可执行程序*.exe开始编辑编译有错?执行连接结果正确结束可执行目标程序f.exe源程序f.c目标程序f.obj库函数和其他目标程序YesNoYesNo371.5 C语言的基本语法和结语言的基本语法和结构构1.

18、5.1C语言的基本语法语言的基本语法1.5.2C语言的基本结构语言的基本结构381.5.1 C语言的基本语法语言的基本语法l标识符标识符l关键字关键字l运算符运算符l分隔符分隔符l常量常量l注释符注释符l字符集字符集39标识符标识符l常量、变量、语句标号以及自定义函数的名常量、变量、语句标号以及自定义函数的名称称l只能是只能是字母、数字和下划线字母、数字和下划线组成的字符串,组成的字符串,第一个字符必须是字母或下划线第一个字符必须是字母或下划线l标准标准C不限制标识符长度,但一般不超过不限制标识符长度,但一般不超过8字字符符l标识符大小写有区别标识符大小写有区别l标识符名最好能标识符名最好能“

19、顾名思义顾名思义”403232个关键字个关键字:(由系统定义,不能重作其它定义由系统定义,不能重作其它定义)autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhile419 9种控制语句种控制语句:if()elseswitchcasefor()while()dowhile()continuebreakgotoreturn42

20、3434种运算符:种运算符:算术运算符:算术运算符:+-*/%+-+-*/%+-关系运算符:关系运算符:=!=!=逻辑运算符:!逻辑运算符:!&|&|位运算符位运算符 :|&|&赋值运算符:赋值运算符:=及其扩展及其扩展条件运算符:条件运算符:?:?:逗号运算符:逗号运算符:,指针运算符:指针运算符:*&求字节数求字节数 :sizeofsizeof强制类型转换:强制类型转换:(类型)类型)分量运算符:分量运算符:.-.-下标运算符:下标运算符:其它其它 :()-()-431.5.2 C语言的基本结构语言的基本结构(1)顺序结构)顺序结构ABab44(2)选择结构选择结构,或称分支结构此结构中必

21、包含一个判断框。根据给定的条件P是否成立而选择执行A框或B框abBAp不成立成立45(3)循环结构循环结构,它又称为重复结构,即反复执行某一部分的操作。又两类循环结构:a.当型(当型(while型)循环结构型)循环结构ap1TFAbb.直到型(直到型(Until型)循环结构型)循环结构aATFbp2461.6 本章要点小结本章要点小结l l程序设计的概念程序设计的概念l lC语言的产生及发展语言的产生及发展l lC语言的特点语言的特点l lC程序的介绍和上机步骤程序的介绍和上机步骤l lC语言的基本语法和结构语言的基本语法和结构47本章课堂练习本章课堂练习(1)以下说法中正确正确的是().A)

22、C语言程序总是从第一个函数开始执行 B)在C语言程序中,要调用的函数必须在main()函数中定义 C)C语言程序总是从main()函数开始执行 D)C语言程序中的main()函数必须放在程序的开始部分48解答:C解释:C语言程序总是从main()函数开始执行,而不论其在程序中的位置。当主函数执行完毕时,亦即程序执行完毕。除main函数外,其它函数都是在执行main函数时被调用执行的。在C语言中,函数不允许嵌套定义。习惯上,将主函数main()放在最前头,但并不是必须的。49(2)以下叙述不正确不正确的是A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C)C程序的基

23、本组成单位是函数 D)在C程序中,注释说明只能位于一条语句的后面50解答:D解释:凡是用“/*”和“*/”括起来的文字,都是注释。其出现的位置可以任意。51(3)下列标识符中,合法合法的变量名有:A)a.b B)$888 C)A1 D)3x56 52解答:C解释:变量名只能由字母、数字和下划线三种字符所组成,且第一个字符必须为字母或下划线。C语言的关键字不能用作变量名。另外,C语言对英文字母的大小写敏感,即同一字母的大小写,被认为是两个不同的字符。习惯上,变量名和函数名中的英文字母用小写,以增加可读性。第二章第二章 程序的灵魂程序的灵魂:算法算法 l一个程序主要包括以下两方面的信息:一个程序主

24、要包括以下两方面的信息:(1)对数据的描述对数据的描述。在程序中要指定用到。在程序中要指定用到哪哪些些数据以及这些数据的类型和数据的组织形式数据以及这些数据的类型和数据的组织形式这就是数据结构这就是数据结构(datastructure)(2)对操作的描述对操作的描述。即要求计算机进行操作的。即要求计算机进行操作的步骤步骤也就是算法也就是算法(algorithm)l数据是操作的对象数据是操作的对象l操作的目的是对数据进行加工处理,以得操作的目的是对数据进行加工处理,以得到期望的结果到期望的结果l著名计算机科学家沃思著名计算机科学家沃思(NikiklausWirth)提出一个公式:提出一个公式:算

25、法算法+数据结构数据结构=程序程序l一个程序除了一个程序除了算法和数据结构这算法和数据结构这主要要素外,主要要素外,还应当采用结构化程序设计方法进行程序设还应当采用结构化程序设计方法进行程序设计,并且用某一种计算机语言表示计,并且用某一种计算机语言表示l算法算法、数据结构数据结构、程序设计方法程序设计方法和和语言工具语言工具是一个程序设计人员应具备的知识是一个程序设计人员应具备的知识算法算法数据结构数据结构程序设计方法程序设计方法语言工具和语言工具和环境环境程序程序l算法是解决算法是解决“做什么做什么”和和“怎么做怎么做”的问的问题题l程序中的操作语句,是算法的体现程序中的操作语句,是算法的体

26、现l不了解算法就谈不上程序设计不了解算法就谈不上程序设计2.1算法的概念算法的概念2.2算法的特性算法的特性2.3算法的表示算法的表示2.4结构化程序设计方法结构化程序设计方法2.1 算法的概念算法的概念l广义地说,为解决一个问题而采取的方广义地说,为解决一个问题而采取的方法和步骤,就称为法和步骤,就称为“算法算法”l对同一个问题,可以有不同的解题方法对同一个问题,可以有不同的解题方法和步骤和步骤l为了有效地进行解题,不仅需要保证算为了有效地进行解题,不仅需要保证算法正确,还要考虑算法的质量,选择合法正确,还要考虑算法的质量,选择合适的算法适的算法l计算机算法可分为两大类别:计算机算法可分为两

27、大类别:数值运算算法数值运算算法非数值运算算法非数值运算算法l数值运算数值运算的目的是求数值解的目的是求数值解l非数值运算非数值运算包括的面十分广泛,最常见包括的面十分广泛,最常见的是用于事务管理领域的是用于事务管理领域2.1 算法的概念算法的概念l可以用最原始的方法进行:可以用最原始的方法进行:步骤步骤1:先求:先求1*2,得到结果,得到结果2。步骤步骤2:将步骤:将步骤1得到的乘积得到的乘积2再乘以再乘以3,得到,得到结果结果6。步骤步骤3:将:将6再乘以再乘以4,得,得24。步骤步骤4:将:将24再乘以再乘以5,得,得120。这就是最后。这就是最后的结果。的结果。例例2.1求求12345

28、100太繁琐太繁琐例例2.1求求12345简单算法的举例概念简单算法的举例概念l改进的算法:设变量p为被乘数变量i为乘数用循环算法求结果求求12345简单算法的举例概念简单算法的举例概念lS1:使p=1,或写成1plS2:使i=2,或写成2ilS3:使p与i相乘,乘积仍放在变量p中,可表示为:p*iplS4:使i的值加1,即i+1ilS5:如果i不大于5,返回重新执行S3;否则,算法结束l最后得到p的值就是5!的值若是若是100,求什么?,求什么?简单算法的举例概念简单算法的举例概念例例2.2有有50个学生,要求将成绩在个学生,要求将成绩在80-90分的分的学生的学号和成绩输出。学生的学号和成

29、绩输出。l用用ni代表第代表第i个学生个学生学号,学号,gi表示第表示第i个学生成个学生成绩绩S1:1iS2:如果:如果90gi80,则输出则输出ni和和gi,否则不输出,否则不输出S3:i+1iS4:如果:如果i50,返回到步骤,返回到步骤S2,继续执行,否,继续执行,否则,算法结束则,算法结束2.1算法的概念算法的概念2.2算法的特性算法的特性2.3算法的表示算法的表示2.4结构化程序设计方法结构化程序设计方法l一个有效算法应该具有以下一个有效算法应该具有以下特点特点:(1)有穷性有穷性。一个算法应包含有限的操。一个算法应包含有限的操作步骤,而不能是无限的。作步骤,而不能是无限的。(2)确

30、定性确定性。算法中的每一个步骤都应。算法中的每一个步骤都应当是确定的,而不应当是含糊的、模当是确定的,而不应当是含糊的、模棱两可的。棱两可的。2.2 算法的特性算法的特性l一个有效算法应该具有以下一个有效算法应该具有以下特点特点:(3)有零个或多个输入有零个或多个输入。所谓输入是指在。所谓输入是指在执行算法时需要从外界取得必要的信息。执行算法时需要从外界取得必要的信息。(4)有一个或多个输出有一个或多个输出。算法的目的是为。算法的目的是为了求解,了求解,“解解”就是输出。就是输出。没有输出的算法是没有意义的。没有输出的算法是没有意义的。(5)有效性有效性。算法中的每一个步骤都应当。算法中的每一

31、个步骤都应当能有效地执行,并得到确定的结果。能有效地执行,并得到确定的结果。2.2 算法的特性算法的特性l对于一般最终用户来说对于一般最终用户来说:他们并不需要在处理每一个问题时都要他们并不需要在处理每一个问题时都要自己设计算法和编写程序自己设计算法和编写程序可以使用别人已设计好的现成算法和程可以使用别人已设计好的现成算法和程序序只需根据已知算法的要求给予必要的输只需根据已知算法的要求给予必要的输入,就能得到输出的结果入,就能得到输出的结果输入输入3个数个数黑箱子黑箱子3个数中最大数个数中最大数求求3个数的最个数的最大数大数2.2 算法的特性算法的特性2.1算法的概念算法的概念2.2算法的特性

32、算法的特性2.3算法的表示算法的表示2.4结构化程序设计方法结构化程序设计方法n常用的方法有:常用的方法有:q自然语言自然语言q传统流程图传统流程图q结构化流程图结构化流程图q伪代码伪代码q2.3 算法的表示算法的表示自然语言表示法自然语言表示法n2.1节节例子例子介绍的算法是用自然语言表示的介绍的算法是用自然语言表示的n用自然语言表示通俗易懂,但文字冗长,容易用自然语言表示通俗易懂,但文字冗长,容易出现歧义性出现歧义性n用自然语言描述包含分支和循环的算法,不很用自然语言描述包含分支和循环的算法,不很方便方便n除了很简单的问题外,一般不用自然语言除了很简单的问题外,一般不用自然语言传统的程序流

33、程图传统的程序流程图用一些图形符号形象直观的表述算法,上表给出用一些图形符号形象直观的表述算法,上表给出了了ANSI规定的程序流程图符号。规定的程序流程图符号。n流程图流程图是用一些图框来表示各种操作是用一些图框来表示各种操作n用图形表示算法,直观形象,易于理解用图形表示算法,直观形象,易于理解x0YN一个入口一个入口两个出口两个出口传统的程序流程图传统的程序流程图位置不够位置不够防止交叉防止交叉传统的程序流程图传统的程序流程图例例2.4将例将例2.1的算法用的算法用流程图表示。流程图表示。求求12345l如果需要将最后结果如果需要将最后结果输出输出:1t输出输出ti5开始开始2it*iti+

34、1i结束结束NYl通过以上几个例子可以看出流程图是表通过以上几个例子可以看出流程图是表示算法的较好的工具示算法的较好的工具l一个流程图包括以下几部分一个流程图包括以下几部分:(1)表示相应操作的框表示相应操作的框(2)带箭头的流程线带箭头的流程线(3)框内外必要的文字说明框内外必要的文字说明l流程线不要忘记画箭头,流程线不要忘记画箭头,否则否则难以判定难以判定各框的执行次序各框的执行次序传统的程序流程图传统的程序流程图l特点:绘制简单,描述直观,之前广泛特点:绘制简单,描述直观,之前广泛使用。使用。l缺点:缺点:程序流程图不易表示算法或程序的层次结构。程序流程图不易表示算法或程序的层次结构。用

35、箭头表示的控制流可能引起随意的转移控用箭头表示的控制流可能引起随意的转移控制。制。可能诱使人们过早地考虑局部程序的控制结可能诱使人们过早地考虑局部程序的控制结构而忽视全局的程序结构。构而忽视全局的程序结构。不易表示数据结构和程序模块之间的关系。不易表示数据结构和程序模块之间的关系。传统的程序流程图传统的程序流程图NS图表示法图表示法 1973 1973年美国学者年美国学者I.NassiI.Nassi和和B.ShneidermanB.Shneiderman提提出了一种新的流程图形式。在这种流程图中,完出了一种新的流程图形式。在这种流程图中,完全去掉了带箭头的流程线。全部算法写在一个矩全去掉了带箭

36、头的流程线。全部算法写在一个矩形框内,在该框内还可以包含其他的从属于它的形框内,在该框内还可以包含其他的从属于它的框。框。这种流程图又称这种流程图又称N NS S结构化流程图(结构化流程图(N N和和S S是两位美国学者的英文姓名的第一个字母)。是两位美国学者的英文姓名的第一个字母)。这种流程图适于结构化程序设计,因此很受欢这种流程图适于结构化程序设计,因此很受欢迎。迎。lN-S流程图用以下的流程图符号:ABABYNpA当当p1成立成立A直到直到p2成立成立顺序结构顺序结构选择结构选择结构循环结构循环结构(当型)(当型)循环结构循环结构(直到型)(直到型)NS图表示法图表示法用伪码表示算法用伪

37、码表示算法伪代码是用介于自然语言和计算机语言伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法。它不用图之间的文字和符号来描述算法。它不用图形符号,因此书写方便,格式紧凑,也比形符号,因此书写方便,格式紧凑,也比较好懂,便于向计算机语言算法(即程序)较好懂,便于向计算机语言算法(即程序)过渡。过渡。BEGIN(算法开始算法开始)1=iWhileii1=iWhilei=80andgiiEND(算法结束)(算法结束)前例用伪代码表示算法如下:用计算机语言表示算法用计算机语言表示算法n要完成一项工作,包括要完成一项工作,包括设计算法设计算法和和实现算法实现算法两个部分。两个部分。n设计算法

38、的目的是为了实现算法。设计算法的目的是为了实现算法。n不仅要考虑如何设计一个算法,也要考虑如不仅要考虑如何设计一个算法,也要考虑如何实现一个算法。何实现一个算法。用用C语言程序实现前例如下语言程序实现前例如下#include/*打印出50名同学中成绩在80-90分者*/main()inti,g50,n50;for(i=0;i50;i+)/*输入50名同学的学号,成绩*/scanf(“%d,%d”,&ni,&gi);for(i=0;i=80)&(gi=90)printf(“%6d,%3dn”,ni,gi);fc1.cfc1.c2.1算法的概念算法的概念2.2算法的特性算法的特性2.3算法的表示算

39、法的表示2.4结构化程序设计方法结构化程序设计方法2.4 结构化程序设计方法简介结构化程序设计方法简介 荷兰学者荷兰学者E.W.dijkctra提出了结构化程序提出了结构化程序设计(设计(structuredprogramming)的理论,成的理论,成为为70年代中期至年代中期至90年代初的程序设计主流。年代初的程序设计主流。结构化程序设计方法提出了一些大家都要遵结构化程序设计方法提出了一些大家都要遵循的原则,这些原则归纳为循的原则,这些原则归纳为32个字:个字:自顶向下,逐步细化。自顶向下,逐步细化。模块设计,结构编码。模块设计,结构编码。清晰第一,效率第二。清晰第一,效率第二。书写规范,缩

40、进格式。书写规范,缩进格式。顺序、分支和循环三种基本结构的共同特点:顺序、分支和循环三种基本结构的共同特点:(1)只有一个入口。只有一个入口。(2)只有一个出口。只有一个出口。(3)结构内的每一部分都有机会被执行到。也就是结构内的每一部分都有机会被执行到。也就是说,对每一个框来说,都有从入口到出口的路径说,对每一个框来说,都有从入口到出口的路径通过它。通过它。(4)结构内不存在结构内不存在“死循环死循环”(无终止的循环)。(无终止的循环)。结构化程序结构化程序所谓结构化程序,就是仅仅使用顺序、选择、所谓结构化程序,就是仅仅使用顺序、选择、循环等三种基本结构所构造的程序。循环等三种基本结构所构造

41、的程序。结构化程序设计方法结构化程序设计方法结构化程序设计方法的基本思想是,把一个复杂结构化程序设计方法的基本思想是,把一个复杂问题的求解过程分阶段进行。每个阶段的问题都问题的求解过程分阶段进行。每个阶段的问题都控制在人们容易理解和处理的范围内。控制在人们容易理解和处理的范围内。2.4 本章要点小结本章要点小结l算法的概念算法的概念l算法的特性算法的特性l算法的表示算法的表示l结构化程序设计方法结构化程序设计方法第三章第三章 数据描述与数据描述与 基本操作基本操作 89l3.1基本数据类型基本数据类型l3.2运算符和表达式运算符和表达式l3.3输入输出操作输入输出操作903.1 基本数据类型基

42、本数据类型l3.1.1C语言的数据类型语言的数据类型l3.1.2常量和变量常量和变量l3.1.3数据类型转换数据类型转换913.1.1 C3.1.1 C语言的数据类型语言的数据类型(一)什么是数据类型?(二)C语言的数据类型有哪些?92(一一)什么是数据类型?什么是数据类型?数据结构+算法=程序C语言中以“数据类型”形式存在对数据的描述对操作的描述93数据类型基本类型整型(有符号、无符号)字符型实型(浮点型)枚举类型构造类型数组类型结构体类型共用体类型指针类型空类型单精度型双精度型在程序中对用到的所有数据都必须指定其数据类型.?不同类型的数据,所占内存的字节数不同,对应的操作也不相同。(二二)

43、C)C的数据类型的数据类型94整型数据整型数据1.整型数据的分类整型数据的分类l最基本的整型类型最基本的整型类型基本整型基本整型(int型型):占:占2个或个或4个字节个字节(32位编译位编译系统系统)短整型短整型(shortint):VC+6.0中占中占2个字节个字节长整型长整型(longint):VC+6.0中占中占4个字节个字节双长整型双长整型(longlongint):C99新增的新增的,64位占位占8个字节,个字节,VC+6.0中定义为中定义为_int64952.整型变量的符号属性整型变量的符号属性整型变量的值的范围包括负数到正数整型变量的值的范围包括负数到正数可以将变量定义为可以将

44、变量定义为“无符号无符号”类型类型扩充的整形类型:扩充的整形类型:l有符号基本整型signedint;l无符号基本整型unsignedint;l有符号短整型signedshortint;l无符号短整型unsignedshortint;l有符号长整型signedlongint;l无符号长整型unsignedlongint;整型数据96字符型数据字符型数据l字符是按其代码字符是按其代码(整数整数)形式存储的形式存储的lC99把字符型数据作为整数类型的一种把字符型数据作为整数类型的一种l字符型数据在使用上有自己的特点字符型数据在使用上有自己的特点971.字符与字符代码字符与字符代码大多数系统采用大多

45、数系统采用ASCII字符集字符集字母:字母:AZ,az数字:数字:09专门符号:专门符号:29个:个:!”#&()*等等空格符:空格、水平制表符空格符:空格、水平制表符t、换行、换行n等等不能显示的字符:不能显示的字符:空空(null)字符字符(以以0表示表示)、鸣铃鸣铃(以以a表示表示)、退格退格(以以b表示表示)、回车、回车(以以r表示表示)等等字符型数据98l字符字符1和整数和整数1是不同的概念是不同的概念:字符字符1只是代表一个形状为只是代表一个形状为1的符号,的符号,在需要时按原样输出,在内存中以在需要时按原样输出,在内存中以ASCII码码形式存储,占形式存储,占1个字节个字节整数整

46、数1是以整数存储方式是以整数存储方式(二进制补码方式二进制补码方式)存存储的,占储的,占2个或个或4个字节个字节0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 00 0 0 0 0 0 0 1字符型数据992.字符变量字符变量l用类型符用类型符char定义字符变量定义字符变量charc=?;系统把系统把“?”的的ASCII代码代码63赋给变量赋给变量cprintf(“%d%cn”,c,c);输出结果是:输出结果是:63?字符型数据100浮点型数据浮点型数据浮点型数据是用来表示具有小数点的实数浮点型数据是用来表示具有小数点的实数lfloat型型(单精度浮点型单精度浮点型)编译系统为编

47、译系统为float型变量分配型变量分配4个字节个字节数值以规范化的二进制数指数形式存放数值以规范化的二进制数指数形式存放101浮点型数据是用来表示具有小数点的实数浮点型数据是用来表示具有小数点的实数lfloat型型(单精度浮点型单精度浮点型)ldouble型型(双精度浮点型双精度浮点型)u编译系统为编译系统为double型变量分配型变量分配8个字节个字节u15位有效数字位有效数字浮点型数据102几种基本数据类型类型 符号关键字数的表示范围所占位数整型字符型实型有无(signed)int32-21474836482147483647(signed)short16-3276832767(signe

48、d)long32-2147483648214748364732Unsignedint042949672953204294967295unsignedlongunsignedshort16065535有float323.4e-383.4e38有double641.7e-3081.7e308有char8-128127无unsigned char80255说明:数据类型所占字节数随编译器不同而不同,上表以VC+6.0为例:103举例:数据溢出(举例:数据溢出(Overflow)的危害)的危害l一台安装了Windows95/98的机器,如果连续运行49.7天,可能死机l原因:Windows自启动时刻起

49、,有一个计数器,记录系统已经运行了多少毫秒。这个计数器个unsignedlongunsignedlong的最大值:4294967295一天有24*60*60*1000=86400000毫秒4294967295/86400000=49.71026961805当49.7天的时候,此计数器会溢出,引起死机104(一)常 量(二)变 量3.1.2 3.1.2 常量与变量常量与变量105预备知识:预备知识:bit,Byte,Wordl bit,位位lByte,字节字节1B=8blWord,字字1W=2BlKilobyte(KB),1KB=1,024BlMegabyte(MB),1MB=1,024KBl

50、Gigabyte(GB),1GB=1,024MBl Terabyte(TB)1TB=1,024GB106l一个字节有多大?一个字节有多大?可以表示数字可以表示数字0255保存一个字符(英文字母、数字、符号),保存一个字符(英文字母、数字、符号),ASCII编码编码两个字节保存一个汉字两个字节保存一个汉字107预备知识:二进制预备知识:二进制l世界上有世界上有(10)2种人,种人,1种人懂二进制,种人懂二进制,1种人不懂二进制种人不懂二进制l一个位有多大?一个位有多大?只能是只能是“0”或者或者“1”,这叫二进制,这叫二进制l二进制诠释了计算机的哲学二进制诠释了计算机的哲学种类众多的复杂事物都是

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服