第02章C语言程序设计基础.PPT

上传人:本田雅阁 文档编号:2503515 上传时间:2019-04-04 格式:PPT 页数:36 大小:1.52MB
返回 下载 相关 举报
第02章C语言程序设计基础.PPT_第1页
第1页 / 共36页
第02章C语言程序设计基础.PPT_第2页
第2页 / 共36页
第02章C语言程序设计基础.PPT_第3页
第3页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第02章C语言程序设计基础.PPT》由会员分享,可在线阅读,更多相关《第02章C语言程序设计基础.PPT(36页珍藏版)》请在三一文库上搜索。

1、1,王占全 华东理工大学信息学院,C语言程序设计,2,大学里能学到什么?,勉励大家: 脚踏实地,从小处着手,,扎实的基础创新精神; 要乐于帮助人、诚信等,对社会有用的人!,3,课程有关信息 教师 王占全() 计算中心课程论坛 办公室 徐汇校区二教302或者奉贤信息大楼二教214,4,教材、参考书与课时安排,教材 C语言程序设计教程(第2版) 王敬华编著 清华大学出版社 参考书 C语言程序设计教程(第2版)习题解答与实验指导 王敬华编著 清华大学出版社 C语言程序设计(第2版)谭浩强 高等教育出版社 C高级实用程序设计 王士元 清华大学出版社,5,课时安排 授课 :32学时 上机 :32学时(第

2、四周开始上机,目前是第三周。具体时间下次通知!),教材、参考书与课时安排,6,学习要求及成绩构成,学习要求 课前请做好预习,课后请做好复习 保持课堂安静,头脑清醒,思维活跃 认真、独立、按时完成并提交作业 重视上机实践,有效利用宝贵的上机时间,提前警钟:刚开始可能不适应,难学,没有关系,慢慢来,成绩构成 平时考勤:10% 平时作业:20% 期末考试:机考70% 一些加分方法:如课堂有些测试,让学生上来编写程序;如创新实践。,7,第2章:C语言程序设计基础,学习的意义,从本章开始我们正式进入C语言程序设计的学习,也许大家会问:为什么我们要学习C语言呢? 理由1:因为C语言流行. 理由2:因为C语

3、言是基础性。 理由3: 因为C语言在各种程序考试中首当其中。 理由n:,别急!让我想想,这些理由都只是从表面上来回答,其实要真正来回答这一问题,我们有必要了解程序设计语言的发展历史及其特点,知道C语言是属于那种类型的语言;C语言是如何产生和发展的,C语言的特点有哪些,它应用在哪些方面等,这样我们就可以做到学习目的明确,才能有意识地去学好C语言程序设计。,8,了解程序设计语言的发展及其特点; 掌握机器语言、汇编语言和高级语言的差异; 了解C语言的发展历史及特点和应用; 掌握C语言程序的基本结构; 掌握编写C程序的基本步骤和调试过程。,另外,本章我们将带领大家来实际感受一下C语言程序是一个什么样子

4、,它的结构特点是什么,这是我们进行C语言程序设计必须遵循的规范。 最后,我们应该掌握的是如何来编写和调试一个C语言程序,这是我们每一个C语言程序员所必须具备的基本功。,学习的意义,学习目标,9,学习内容,程序设计语言的发展及其特点 C语言的发展及其特点和应用 C语言程序的基本结构 编制C语言程序的基本步骤,了解历史 抓住现在 展望未来,10,2.1 程序设计语言的发展及其特点,11,2.1 程序设计语言的发展及其特点,CPU指令系统,由0、1序列构成的指令码组成 如:10000000 加 10010000 减,用助记符号描述的指令系统 如 ADD A, B,面向机器的语言,程序设计是数据被加工

5、的过程,客观世界可以分类,对象是类的实例 对象是数据和方法的封装 对象间通过发送和接受消息发生联系,程序设计关键是定义类,并由类派生对象,12,Ada,ALGOL60,ALGOL68,Pascal,Modula-2,CPL,BCPL,B,C,C+,Java,LISP,PROLOG,COBOL,FORTRAN77,FORTRAN,PL/1,Simula 67,Smalltalk 80,BASIC,ANSI-BASIC,QBASIC,VB,FORTRAN90,2.2 C语言的发展及其特点、应用,13,C语言发展史,ALGOL 60语言,CPL语言,Combined Programming Lang

6、uage,1963年,剑桥大学,BCPL语言,1967年,剑桥大学的Matin Richards对CPL语言进行了简化,B语言,C语言,1970年,美国贝尔实验室的Ken Thompson将BCPL进行了修改,将CPL语言煮干,提炼出它的精华,1973年,B语言也给人“煮”了一下,美国贝尔实验室的D.M.RITCHIE在B语言的基础上最终设计出了一种新的语言,BCPL的第二个字母作为这种语言的名字,这就是C语言,14,C语言发展史,产生背景 产生过程 时间: 19721973 地点: 美国贝尔实验室 目的: UNIX操作系统 设计人: Ken.Thompson和Dennis.M.Ritchie

7、 C标准 标准C: K&R合著The C Programming Language ANSI C: 1983年 87 ANSI C: 1987年 1990年国际标准的ANSI C,15,C语言版本,C语言有不同的版本,常用的编译软件有Microsoft Visual C+、Borland C+、Borland C+ Builder、Watcom C+、GNU DJGPP C+、Lccwin32 C、Microsoft C、Turbo C、High C等等。,本课程的内容将基于ANSI C进行展开,主要是针对Visual C+ 6.0。,16,C语言的特点,简洁紧凑、灵活方便 运算符丰富 数据结

8、构丰富/ 库函数功能多样 C是结构式语言 C语法限制不太严格、程序设计自由度大 C语言允许直接访问物理地址,可以直接对硬件进行操作 C语言程序生成代码质量高,程序执行效率高 C语言适用范围大,可移植性好 具有预处理功能 具有递归功能,C语言一共只有30多个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C语言可以象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。,C的运算符包含的范围很广泛,共有34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多样化,灵活

9、使用各种运算符可以实现在其它高级语言中难以实现的运算。,C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、联合体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能,支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。,结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。,一般的高级语言语法检查比较严,能够检查出几乎所

10、有的语法错误。而C语言允许程序编写者有较大的自由度。,C语言既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。,一般只比汇编程序生成的目标代码效率低1020%。,C语言有一个突出的优点就是适合于多种操作系统,如DOS、WINDOWS、UNIX。也适用于多种机型,在一种计算机上编写的程序,无须修改或经过很少的修改,就可以在其它类型的计算机上运行。,C语言提供了预处理器,程序可以利用宏指令提高可读性和可移植性。,C语言允许递归调用,在解决递归问题上具有独特优势。,17,C语言的应用,C语言的应用非常广,

11、也非常多,在此仅列出其中的一些应用: C语言可以用来开发许多系统软件和大型应用软件。如UNIX,LINUX等操作系统。 在软件需要对硬件进行操作的场合,用C语言明显优于其它高级语言。例如,各种硬件设备的驱动程序(象显卡驱动程序、打印机驱动程序等)一般都是用C语言编写的。 在图形、图像及动画处理方面,C语言具有绝对优势,特别是游戏软件的开发主要就是使用C语言。 随着计算机网络飞速发展,特别是Internet的出现,计算机通信就显得尤其重要,而通信程序的编制首选就是C语言。 C语言适用于多种操作系统,象WINDOWS、UNIX、LINUX等绝大多数操作系统都支持C语言,其它高级语言未必能得到支持,

12、所以在某个特定操作系统下运行的软件用C语言编制是最佳选择。,18,2.3 C语言与C+、Java和C#之间的关系,C,C+,Java,C#,面向过程,市场份额逐渐减少,但仍很大,在追求运行效率的软件和嵌入式软件开发、图形、与硬件相关方面,面向对象,市场份额较大,属C语言的升级版,完全兼容C语言的语法。在很多场合,它俩也被放在一起,称为C/C+。这个“+”加上后,便是大名鼎鼎的“面向对象(Object Oriented)”。,面向对象,市场份额较大,1995年Sun公司出品,以纯面向对象、平台无关和易学易用而著称。它全面照搬了C+的语法,并去掉了其不常用和不成功的部分,化繁为简,迅速博得了程序员

13、们的认可,获得了越来越多的支持。不管是桌面应用,还是网络服务、嵌入式应用都可用它进行高效的开发。但如果要做底层的、占用资源少的程序,Java语言就无能为力了。,面向对象,市场份额较大,2000年Microsoft 公司出品,读作C Sharp 。戏称其为C+ ,它也照搬了C/C+的语法 ,诞生在Java语言之后,所以它能把Java语言的成功之处吸收进来,把不成功之处抛弃,打造了一个似Java而非Java,还有点超越Java的语言。,目前,C/C+、Java和C#语言即将形成三足鼎立之势,其他语言仅能在其专属领域里得以发挥作用。同时,C+,Java和C#语言也在不断地完善、扩充自身,极力挤压其他

14、语言的空间。在这种情况下,C语言的空间变得越来越小,那么为什么还要学习C语言呢?,C语言可以说是C+、Java和C#语言的基础,还有很多专用语言也学习和借鉴了C语言,比如进行Web开发的PHP语言,做仿真的MATLAB的内嵌语言等。学好C语言对以后再学习其他语言大有帮助。计算机科学发展很快,若干年以后,什么技术、什么语言尽显风流无法预言。唯有掌握最基础的,才能以不变应万变,并立于不败之地。,19,2.4 C语言程序的基本结构,了解了C语言的基本特性及其应用以后,接下来就来看看C语言程序是什么样子。一个C语言程序可以是非常简单的,也可以是特别复杂的,这取决于程序所要实现的功能。我们先来认识一个最

15、为简单的C程序。,【例1】 最简单的C程序。,/* This is the first C program */ #include void main ( ) printf (“Hello C Language!n“); ,运行结果: Hello c Language! /对吗?,在C程序中,注释由“/*”开始,由“*/”结束,可以实现多行注释 。 在C+程序中也可使用“/”进行单行注释。例如:/ 注释信息,C语言的预处理命令都是以“#” 号开头。stdio.h是一个头文件,C程序中允许插入若干行空行,它不影响程序的功能,同注释一样。为了程序的易读性,在编写C程序时,根据需要可插入一定的空行,

16、main是主函数名,一个C语言程序有且仅有一个main函数。C程序执行时就是从main函数开始,具体讲就是从“”开始,到“”结束。,printf是C语言的内部函数名,因为它后面跟着( ),其功能是将“Hello C Language!n”显示在计算机的屏幕上(双引号和n不显示),C语言规定:语句以分号结束,20,2.4 C语言程序的基本结构,【例2】计算输入的两个整数的和 。,/* This is the second C program */ #include void main ( ) int x, y, z; scanf (“%d%d“, ,假设输入:10 20 运行结果:the sum

17、 of two integer is 30,练习,编写一个完整程序,输入两个署,就它们之差。,21,22,2.4 C语言程序的基本结构,C语言程序的函数由两部分构成:一部分定义变量(变量代表数据),称为声明部分;另一部分代表操作,由C语句构成,称为执行部分。 在C程序中,要求函数的声明部分在前面,执行在后面,它们的顺序不能颠倒,也不能交叉。但在C+程序中,声明部分和执行部分可以相互交叉,没有严格的界限,当然执行部分中所使用的变量只要在其之前进行定义即可。,/C语言程序 void main ( ) int a; a = 10; int b; b = a + 20; ,/C+语言程序 void m

18、ain ( ) int a; a = 10; int b; b = a + 20; ,/C或C+语言程序 void main ( ) int a; a = 10; b = a + 20; int b; ,再次强调:在C语言程序中,变量必须先定义,后使用,顺序不能颠倒!,23,2.4 C语言程序的基本结构,【例3】计算输入的两个整数的最大值 。,/* This is the third C program */ #include int max (int a, int b); void main ( ) int x, y, z; scanf (“%d%d“, ,int max (int a, i

19、nt b) int c; if (a b) c = a; else c = b; return (c); ,自定义函数max,假设输入:10 20 运行结果:max = 20,24,2.4 C语言程序的基本结构,C语言的标识符,C语言中变量和函数都有自己的名字,它们都必须是合法的标识符。 标识符就是一个名字,C语言规定标识符只能由字母、数字和下划线三中字符构成,并且第一个字符必须是字母或下划线。 C语言是大小写敏感的语言,因此hello和Hello是不同的标识符。 C语言中有一些特别的标识符,它们的用途已经事先规定好了,程序员不能再将它们另做它用。这些特别的标识符被称为关键字(也称保留字)。到

20、目前为止,我们见过的关键字有void、int、main、if、else、return。以后随着学习的深入,我们将会遇到越来越多的关键字(C语言关键字可参考附录3)。,25,2.4 C语言程序的基本结构,总结,C程序是由多个函数构成的。 每个C程序中有且只有一个main函数。 main函数是程序的入口和出口。 不使用行号,无程序行的概念。 程序中可使用空行和空格。 C程序格式常用锯齿形书写格式。 C程序中可加任意多的注释。 引用C语言标准库函数,要用文件包含预处理命令将其头文件包含进来。,26,2.4 C语言程序的基本结构,总结,用户自定义的函数,须先定义后使用。 变量必须先定义后使用。 变量名

21、、函数名必须是合法的标识符,标识符习惯用小写字母,大小写敏感。 不能用关键字来命名变量和函数。 函数包含两个部分:声明部分和执行部分,在C程序中,声明部分在前,执行部分在后,这两部分的顺序不能颠倒,也不能有交叉。 C语言的语句都是以分号结尾。,27,2.5 编制C语言程序的基本步骤,编 辑,程序代码的录入,生成源程序*.c或*.cpp,编 译,语法分析查错,翻译生成目标程序*.obj,链 接,与其它目标程序或库链接装配,生成可执行程序*.exe,运 行,编写C程序的步骤,28,课后作业,复习第二章。如果有可以先看看第一章 如果有条件,可以先上机,试试。 编程环境:VC 6.0 如果有问题,可以

22、先到网上找答案,谢谢大家!,29,30,1903年12月28日,在布达佩斯诞生了一位神童,这不仅给这个家庭带来了巨大的喜悦,也值得整个计算机界去纪念。正是他,开创了现代计算机理论,其体系结构沿用至今,而且他早在40年代就已预见到计算机建模和仿真技术对当代计算机将产生的意义深远的影响。他,就是约翰冯诺依曼(John Von Neumann)。,31,32个关键字:(由系统定义,不能重作其它定义),auto break case char const continue default do double else enum extern float for goto if int long reg

23、ister return short signed sizeof static struct switch typedef unsigned union void volatile while,语言简洁、紧凑、灵活,32,9种控制语句,if( )else for( ) while( ) dowhile( ) continue break switch goto return,33,算术运算符:+ - * / % + - 关系运算符: = != 逻辑运算符:! & | 位运算符 : | & 赋值运算符:= 及其扩展 条件运算符:?: 逗号运算符:, 指针运算符:* & 求字节数 :sizeof

24、强制类型转换:(类型) 分量运算符:. - 下标运算符: 其它 :( ) -,常用运算符:,运算符丰富,34,常用数据类型:,35,常用库函数:,exp(x):计算ex sin(x):计算x的正弦值 circle(x,y,r): 以(x,y)为圆心,画一个半径为r的圆 Rectangle(x1,y1,x2,y2): 从左上(x1,y1)至右下(x2,y2)点画矩形,函数库功能齐全,36,main() float a,b,s1,s2; a=10.189; b=2.497; s1=add(a,b); s2=mul(a,b); printf(“%fn%fn“,s1,s2); ,float add(float x,float y) float z; z=x+y; return(z); ,float mul(float x,float y) float z; z=x*y; return(z); ,模块化示例:,程序设计结构化、模块化,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1