C语言课件完整版(精华).ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《C语言课件完整版(精华).ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课件 完整版 精华
- 资源描述:
-
1、A1计算机程序设计基础计算机程序设计基础(C语言)语言) A2 1. 课堂要求很严格。2. 多听,适时做笔记。3. 上课不能讲闲话。4. 课后认真完成作业、实验报告。5. 有问题,及时与老师联系。教 学 要 求A3选用教材与参考书 顾治华、陈天煌等顾治华、陈天煌等 2007.22007.2谭浩强谭浩强 A4课程内容课程内容第一章第一章 C C语言程序设计概述语言程序设计概述 第二章第二章 算法及算法设计简介算法及算法设计简介 第三章第三章 数据描述与基本操作数据描述与基本操作第四章第四章 选择结构程序设计选择结构程序设计 第五章第五章 循环结构程序设计循环结构程序设计 第六章第六章 数组与指针
2、数组与指针第七章第七章 函数与模块化程序设计方法函数与模块化程序设计方法A5第一章第一章 语言程序设计概述语言程序设计概述A6 A71.1 程序设计的概念程序设计的概念1.1.1 程序设计语言程序设计语言1.1.2 程序设计的概念程序设计的概念A8计算机计算机n计算机是用来延伸人的能力的工具,需要人来计算机是用来延伸人的能力的工具,需要人来驾驭驾驭n我们的职责是让非计算机专业的人更容易驾驭我们的职责是让非计算机专业的人更容易驾驭它它n完成这一目标的主要手段之一就是完成这一目标的主要手段之一就是“编程编程(Programming)”A9计算机基本工作过程计算机基本工作过程n整个过程的执行者是硬件
3、,但硬件是受软件控制的整个过程的执行者是硬件,但硬件是受软件控制的n编程,就是编写软件,使硬件按照人的意图工作编程,就是编写软件,使硬件按照人的意图工作A10计算机基本工作过程计算机基本工作过程输入/输出设备存储器运算器控制器源程序和输入数据输出结果取出数据存入数据操作命令存取命令取出程序指令输入输出命令计算结果CPU“冯冯诺依曼机诺依曼机”结构结构 大脑大脑眼眼/耳耳/口口程序和数据执行结果A11软件的形成软件的形成n软件(软件(Software)的形成)的形成q程序员程序员(Programmer)编写程序)编写程序源代码源代码(Source Code)q编译器编译器(Compiler)把源
4、代码转换为可被计算机)把源代码转换为可被计算机理解的理解的机器代码机器代码(Machine Code)q并把机器代码以并把机器代码以可可执行文件执行文件(Executable File)的形式保存在磁盘上的形式保存在磁盘上A12机器语言汇编语言高级语言面向过程面向对象CPU指令系统,由0、1序列构成的指令码组成如:10000000 加 10010000 减用助记符号描述的指令系统如 ADD A, B面向机器的语言程序设计是数据被加工的过程客观世界可以分类,对象是类的实例对象是数据和方法的封装对象间通过发送和接受消息发生联系程序设计关键是定义类,并由类派生对象1.1.1 程序设计语言程序设计语言
5、A13程序设计语言的故事程序设计语言的故事n计算机为什么用二进制呢?计算机为什么用二进制呢?n为什么不用我们日常熟悉的十进制呢?为什么不用我们日常熟悉的十进制呢?q二进制在在电器元件中容易实现二进制在在电器元件中容易实现 q计算机进行二进制运算比进行十进制运算要简单得计算机进行二进制运算比进行十进制运算要简单得多多 A14程序设计语言的故事程序设计语言的故事n机器语言编写的机器语言编写的1+1程序程序n汇编语言(汇编语言(Assemble Language)编写的)编写的1+1程序程序101110000000000100000000000001010000000100000000MOV AX,
6、 1ADD AX, 1A15程序设计语言的故事程序设计语言的故事nBASIC语言编写的语言编写的1+1程序程序nC语言编写的语言编写的1+1程序程序PRINT 1+1#include main()printf(%dn, 1+1);A1652 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96AdaALGOL60ALGOL68PascalModula-2CPLBCPL BC+JavaLISPPROLOGCOBOLFORTRAN77FORTRANPL/1Simula 67Smalltalk 80BASICANSI-BA
7、SICQBASIC VBFORTRAN90A171.1.2 程序设计的概念程序设计的概念程序设计就是用计算机语言来程序设计就是用计算机语言来编写程序的过程。编写程序的过程。什么是程序?著名计算机科学什么是程序?著名计算机科学家沃思提出有名的公式:家沃思提出有名的公式: 算法算法+数据结构数据结构=程序程序A18A191.2 C语言的产生和发展语言的产生和发展1.2.1 C语言的产生语言的产生 1.2.2 C语言的发展语言的发展1.2.3 C语言的特点语言的特点A20n一切从一个叫一切从一个叫“Space Travel”Space Travel”的电子游戏开始的电子游戏开始的的nKen Thom
8、psonKen Thompson为了让他的游戏能在为了让他的游戏能在PDP-7PDP-7上运行,上运行,用汇编语言给用汇编语言给PDP-7PDP-7写了一个操作系统写了一个操作系统UNIXUNIXn汇编太不好用了,汇编太不好用了,ThompsonThompson需要高级语言需要高级语言n试验了一些高级语言,包括试验了一些高级语言,包括FortranFortran,都不理想,都不理想n他在他在BCPLBCPL基础上,自己设计了一个基础上,自己设计了一个B B语言语言nUNIXUNIX开始发展,开始发展,B B也不够用了也不够用了nDennis RitchieDennis Ritchie加入,把加
9、入,把B B改造成改造成C C n开始用开始用C C重写重写UNIXUNIXA211.2.2 qC语言发展过程语言发展过程n产生过程产生过程q时间时间:19721973q地点地点:美国贝尔实验室美国贝尔实验室q目的目的:UNIX操作系统操作系统q设计人设计人: Ken.Thompson和和Dennis.M.RitchienC标准标准q标准标准C: K&R合著合著The C Programming LanguageqANSI C: 1983年年q87 ANSI C: 1987年年q1990年国际标准的年国际标准的ANSI CA22Ritchie和Thompson在开发UNIXA23接受美国国家技
10、术勋章接受美国国家技术勋章A24C语言的祖师爷语言的祖师爷Dennis M. RitchieA25Ritchie漫画像A26C语言本身既有一般高级语言的特点,又由低级语言本身既有一般高级语言的特点,又由低级语言(汇编语言)的特点。语言(汇编语言)的特点。C语言是一种结构化的程序设计语言,它具有实语言是一种结构化的程序设计语言,它具有实现顺序、分支、循环三种基本结构化控制的语句。现顺序、分支、循环三种基本结构化控制的语句。C语言简洁,紧凑,使用方便灵活。只有语言简洁,紧凑,使用方便灵活。只有32个保个保留字,留字,9种控制语句,书写形式自由。种控制语句,书写形式自由。数据类型丰富。有整型、实型、
11、字符型、数组型数据类型丰富。有整型、实型、字符型、数组型、指针型、结构体型、共用体型和枚举型等。、指针型、结构体型、共用体型和枚举型等。A275、运算功能强。有、运算功能强。有32种运算符,包括了算术运算种运算符,包括了算术运算、关系运算、逻辑运算、位运算、指针运算等。、关系运算、逻辑运算、位运算、指针运算等。6、目标代码质量高,运行速度快。、目标代码质量高,运行速度快。7、可移植性强。、可移植性强。8、语法限制不太严格,程序设计自由度大。、语法限制不太严格,程序设计自由度大。A28C 语言是编译型语言语言是编译型语言n 一种编译语言对应一种编译器一种编译语言对应一种编译器 q按照该语言的语法
12、编写程序源代码,把自己的思想按照该语言的语法编写程序源代码,把自己的思想融入到代码中融入到代码中 q编译器读入源代码,把程序员的意图转换成可执行编译器读入源代码,把程序员的意图转换成可执行程序,供他人使用程序,供他人使用A29C语言与计算机系统层次关系语言与计算机系统层次关系A301.3 简单简单C程序介绍程序介绍A31nC程序格式和结构特点程序格式和结构特点第一个程序第一个程序 Hello,World!/* example1.1 The first C Program*/#include main() printf(“Hello,World!”);注释编译预处理函数语句输出:Hello,Wo
13、rld!A32/* 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(”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语句语句预处理命令注释注释主函数子函数A33q格式特点格式特点n
14、习惯用习惯用小写小写字母,大小写敏感字母,大小写敏感n不使用行号,不使用行号,无程序行无程序行概念概念n可使用空行和空格可使用空行和空格n常用常用锯齿形锯齿形书写格式书写格式main( ) . . . . . . .main( ) int i , j , sum; sum=0; for(i=1; i10;i+) for(j=1;j10;j+) sum+=i*j ; printf(“%dn”,sum);优秀程序员的素质之一: 使用TAB缩进 对齐 有足够的注释 有合适的空行A34q结构特点结构特点n函数与主函数函数与主函数q程序由一个或多个函数组成程序由一个或多个函数组成q必须有且只能有一个主函
15、数必须有且只能有一个主函数main()q程序执行从程序执行从main开始,在开始,在main中结束,其它函数通过嵌套中结束,其它函数通过嵌套调用得以执行。调用得以执行。n程序语句程序语句qC程序由语句组成程序由语句组成q用用“;”作为语句终止符作为语句终止符n注释注释q/* */为注释为注释,不能嵌套不能嵌套q不产生编译代码不产生编译代码例: /*This is the main /* of example1.1*/ */ 非法n编译预处理命令编译预处理命令函数首部函数首部: 包括函数名、函数类型、函数参数名、包括函数名、函数类型、函数参数名、参数类型。参数类型。 函数体:声明部分函数体:声明
16、部分,执行部分。执行部分。A351.4 C C程序的上机步骤程序的上机步骤A36编辑链接编译执行程序代码的录入,生成源程序*.c语法分析查错,翻译生成目标程序*.obj与其它目标程序或库链接装配,生成可执行程序*.exe开始编辑编译 有错?执行连接结果正确结束可执行目标程序f.exe源程序f.c目标程序f.obj库函数和其他目标程序YesNoYesNoA371.5 C语言的基本语法和结构语言的基本语法和结构1.5.1 C语言的基本语法语言的基本语法 1.5.2 C语言的基本结构语言的基本结构A381.5.1 C语言的基本语法语言的基本语法n标识符标识符n关键字关键字n运算符运算符n分隔符分隔符
17、n常量常量n注释符注释符n字符集字符集A39标识符标识符n常量、变量、语句标号以及自定义函数的名称常量、变量、语句标号以及自定义函数的名称n只能是只能是字母、数字和下划线字母、数字和下划线组成的字符串,组成的字符串,第第一个字符必须是字母或下划线一个字符必须是字母或下划线n标准标准C不限制标识符长度,但一般不超过不限制标识符长度,但一般不超过8字符字符n标识符大小写有区别标识符大小写有区别n标识符名最好能标识符名最好能“顾名思义顾名思义”A403232个关键字个关键字:(auto break case char constcontinue default do double elseenum
18、extern float for gotoif int long register returnshort signed sizeof static structswitch typedef unsigned union voidvolatile whileA419 9种控制语句种控制语句:if( )else switch casefor( )while( )dowhile( )continuebreakgotoreturnA423434种运算符:种运算符:算术运算符:算术运算符:+ - + - * * / % + - / % + -关系运算符:关系运算符: = != = !=逻辑运算符:!逻
19、辑运算符:! & |& |位运算符位运算符 : | & | &赋值运算符:赋值运算符:= = 及其扩展及其扩展条件运算符:条件运算符:?:?:逗号运算符:逗号运算符:, ,指针运算符:指针运算符:* * & &求字节数求字节数 :sizeofsizeof强制类型转换:强制类型转换:( (类型)类型)分量运算符:分量运算符:. -. -下标运算符:下标运算符: 其它其它 :( ) -( ) -A431.5.2 C语言的基本结构语言的基本结构(1)顺序结构)顺序结构 ABa b A44(2)选择结构选择结构,或称分支结构 此结构中必包含一个判断框。根据给定的条件P是否成立而选择执行A框或B框abB
20、Ap不成立成立A45 (3) 循环结构循环结构,它又称为重复结构,即反复执行某一部分的操作。又两类循环结构: a. 当型(当型(while型)循环结构型)循环结构ap1TFAbb. 直到型(直到型(Until型)循环结构型)循环结构 aATFbp2A461.6 本章要点小结本章要点小结A47本章课堂练习本章课堂练习 (1) 以下说法中正确正确的是( ). A) C语言程序总是从第一个函数开始执行 B) 在C语言程序中,要调用的函数必须在main()函数中定义 C) C语言程序总是从main()函数开始执行 D) C语言程序中的main()函数必须放在程序的开始部分A48解答:C解释:C语言程序
21、总是从main()函数开始执行,而不论其在程序中的位置。当主函数执行完毕时,亦即程序执行完毕。除main函数外,其它函数都是在执行main函数时被调用执行的。在C语言中,函数不允许嵌套定义。习惯上,将主函数main()放在最前头,但并不是必须的。A49(2)以下叙述不正确不正确的是A)一个C源程序可由一个或多个函数组成B) 一个C源程序必须包含一个main函数C) C程序的基本组成单位是函数 D) 在C程序中,注释说明只能位于一条语句的后面A50解答:D解释: 凡是用“/*”和“*/”括起来的文字,都是注释。其出现的位置可以任意。A51(3)下列标识符中,合法合法的变量名有:A)a.b B)$
22、888 C)A1 D) 3x56 A52解答:C解释:变量名只能由字母、数字和下划线三种字符所组成,且第一个字符必须为字母或下划线。C语言的关键字不能用作变量名。另外,C语言对英文字母的大小写敏感,即同一字母的大小写,被认为是两个不同的字符。习惯上,变量名和函数名中的英文字母用小写,以增加可读性。A53第二章第二章 程序的灵魂程序的灵魂:算法算法 A54n一个程序主要包括以下两方面的信息:一个程序主要包括以下两方面的信息:(1) 对数据的描述对数据的描述。在程序中要指定用到。在程序中要指定用到哪哪些些数据以及这些数据的类型和数据的组织形式数据以及这些数据的类型和数据的组织形式q这就是数据结构这
23、就是数据结构(data structure)(2) 对操作的描述对操作的描述。即要求计算机进行操作的。即要求计算机进行操作的步骤步骤q也就是算法也就是算法(algorithm)A55n数据是操作的对象数据是操作的对象n操作的目的是对数据进行加工处理,以得到操作的目的是对数据进行加工处理,以得到期望的结果期望的结果n著名计算机科学家沃思著名计算机科学家沃思(Nikiklaus Wirth)提提出一个公式:出一个公式: 算法算法 + 数据结构数据结构 = 程序程序A56n一个程序除了一个程序除了算法和数据结构这算法和数据结构这主要要素外,主要要素外,还应当采用结构化程序设计方法进行程序设计,还应当
24、采用结构化程序设计方法进行程序设计,并且用某一种计算机语言表示并且用某一种计算机语言表示n算法算法、数据结构数据结构、程序设计方法程序设计方法和和语言工具语言工具是是一个程序设计人员应具备的知识一个程序设计人员应具备的知识q算法算法数据结构数据结构程序设计方法程序设计方法语言工具和环境语言工具和环境程序程序A57n算法是解决算法是解决“做什么做什么”和和“怎么做怎么做”的问题的问题n程序中的操作语句,是算法的体现程序中的操作语句,是算法的体现n不了解算法就谈不上程序设计不了解算法就谈不上程序设计A58A592.1 算法的概念算法的概念n广义地说,为解决一个问题而采取的方法和步广义地说,为解决一
25、个问题而采取的方法和步骤,就称为骤,就称为“算法算法”n对同一个问题,可以有不同的解题方法和步骤对同一个问题,可以有不同的解题方法和步骤n为了有效地进行解题,不仅需要保证算法正确,为了有效地进行解题,不仅需要保证算法正确,还要考虑算法的质量,选择合适的算法还要考虑算法的质量,选择合适的算法A60n计算机算法可分为两大类别:计算机算法可分为两大类别:q数值运算算法数值运算算法q非数值运算算法非数值运算算法n数值运算数值运算的目的是求数值解的目的是求数值解n非数值运算非数值运算包括的面十分广泛,最常见的包括的面十分广泛,最常见的是用于事务管理领域是用于事务管理领域2.1 算法的概念算法的概念A61
展开阅读全文