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

上传人:工**** 文档编号:570003501 上传时间:2024-08-01 格式:PPT 页数:36 大小:1.14MB
返回 下载 相关 举报
第02章C语言程序设计基础_第1页
第1页 / 共36页
第02章C语言程序设计基础_第2页
第2页 / 共36页
第02章C语言程序设计基础_第3页
第3页 / 共36页
第02章C语言程序设计基础_第4页
第4页 / 共36页
第02章C语言程序设计基础_第5页
第5页 / 共36页
点击查看更多>>
资源描述

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

1、第02章C语言程序设计基础Stillwatersrundeep.流静水深流静水深,人静心深人静心深Wherethereislife,thereishope。有生命必有希望。有生命必有希望2大学里能学到什么? 勉励大家: 脚踏实地,从小处着手,扎实的基础创新精神;要乐于帮助人、诚信等对社会有用的人!3课程有关信息n教师n王占全()n计算中心课程论坛n办公室n徐汇校区二教302或者奉贤信息大楼二教2144教材、参考书与课时安排 教材C语言程序设计教程(第2版) 王敬华编著 清华大学出版社 参考书C语言程序设计教程(第2版)习题解答与实验指导王敬华编著 清华大学出版社C语言程序设计(第2版)谭浩强

2、高等教育出版社C高级实用程序设计 王士元 清华大学出版社 5课时安排授课 :32学时上机 :32学时(第四周开始上机,目前是第三周。具体时间下次通知!)教材、参考书与课时安排6学习要求及成绩构成学习要求课前请做好预习,课后请做好复习保持课堂安静,头脑清醒,思维活跃认真、独立、按时完成并提交作业重视上机实践,有效利用宝贵的上机时间提前警钟:刚开始可能不适应,难学,没有关系,慢慢来提前警钟:刚开始可能不适应,难学,没有关系,慢慢来成绩构成平时考勤:10% 平时作业:20%期末考试:机考70%一些加分方法:如课堂有些测试,让学生上来编写程序;如创新实践。7第2章:C语言程序设计基础 u学习的意义学习

3、的意义 从本章开始我们正式进入C语言程序设计的学习,也许大家会问:为什么我们要学习C语言呢? 理由1:因为C语言流行. 理由2:因为C语言是基础性。 理由3: 因为C语言在各种程序考试中首当其中。 理由n: 语语言言程程序序设设计计教教程程 第第二二版版第第二二章章 程程序序设设计计基基础础C别急!让我想想别急!让我想想别急!让我想想别急!让我想想 这些理由都只是从表面上来回答,其实要真正来回答这一问题,这些理由都只是从表面上来回答,其实要真正来回答这一问题,这些理由都只是从表面上来回答,其实要真正来回答这一问题,这些理由都只是从表面上来回答,其实要真正来回答这一问题,我们有必要了解程序设计语

4、言的发展历史及其特点,知道我们有必要了解程序设计语言的发展历史及其特点,知道我们有必要了解程序设计语言的发展历史及其特点,知道我们有必要了解程序设计语言的发展历史及其特点,知道C C C C语言是属语言是属语言是属语言是属于那种类型的语言;于那种类型的语言;于那种类型的语言;于那种类型的语言;C C C C语言是如何产生和发展的,语言是如何产生和发展的,语言是如何产生和发展的,语言是如何产生和发展的,C C C C语言的特点有哪些,语言的特点有哪些,语言的特点有哪些,语言的特点有哪些,它应用在哪些方面等,这样我们就可以做到学习目的明确,才能有意它应用在哪些方面等,这样我们就可以做到学习目的明确

5、,才能有意它应用在哪些方面等,这样我们就可以做到学习目的明确,才能有意它应用在哪些方面等,这样我们就可以做到学习目的明确,才能有意识地去学好识地去学好识地去学好识地去学好C C C C语言程序设计。语言程序设计。语言程序设计。语言程序设计。 8了解程序设计语言的发展及其特点;掌握机器语言、汇编语言和高级语言的差异;了解C语言的发展历史及特点和应用;掌握C语言程序的基本结构;掌握编写C程序的基本步骤和调试过程。 另外,本章我们将带领大家来实际感受一下C语言程序是一个什么样子,它的结构特点是什么,这是我们进行C语言程序设计必须遵循的规范。 最后,我们应该掌握的是如何来编写和调试一个C语言程序,这是

6、我们每一个C语言程序员所必须具备的基本功。 u学习的意义学习的意义 u学习目标学习目标 语语言言程程序序设设计计教教程程 第第二二版版第第二二章章 程程序序设设计计基基础础C9u学习内容学习内容 程序设计语言的发展及其特点C语言的发展及其特点和应用C语言程序的基本结构编制C语言程序的基本步骤了解历史了解历史抓住现在抓住现在展望未来展望未来语语言言程程序序设设计计教教程程 第第二二版版第第二二章章 程程序序设设计计基基础础C102.1 程序设计语言的发展及其特点冯冯冯冯. .诺依曼诺依曼诺依曼诺依曼结构结构结构结构:计算机计算机计算机计算机运算器运算器运算器运算器控制器控制器控制器控制器存储器存

7、储器存储器存储器主机:主机:主机:主机:I/OI/O设备:键盘、显示器等设备:键盘、显示器等设备:键盘、显示器等设备:键盘、显示器等中央处理器中央处理器中央处理器中央处理器CPUCPU语语言言程程序序设设计计教教程程 第第二二版版第第二二章章 程程序序设设计计基基础础C112.1 程序设计语言的发展及其特点CPU指令系统,由0、1序列构成的指令码组成如:10000000 加 10010000 减用助记符号描述的指令系统如 ADD A, B程序设计是数据被加工的过程程序设计是数据被加工的过程客观世界可以分类,对象是类的实例对象是数据和方法的封装对象间通过发送和接受消息发生联系程序设计关键是定义类

8、,并由类派生对象语语言言程程序序设设计计教教程程 第第二二版版第第二二章章 程程序序设设计计基基础础C1252 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/1Simula 67Smalltalk 80BASICANSI-BASICQBASIC VBFORTRAN902.2 C语言的发展及其特点、应用语言的发展及其特点、应用语语言言程程序序设设计计教教

9、程程 第第二二版版第第二二章章 程程序序设设计计基基础础C13C C语言发展史语言发展史ALGOL 60ALGOL 60ALGOL 60ALGOL 60语言语言语言语言 CPLCPLCPLCPL语言语言语言语言 Combined Programming Combined Programming Language Language 19631963年,剑桥大学年,剑桥大学年,剑桥大学年,剑桥大学 BCPLBCPLBCPLBCPL语言语言语言语言 19671967年,剑桥大学的年,剑桥大学的年,剑桥大学的年,剑桥大学的Matin Matin RichardsRichards对对对对CPLCPL语言

10、进行了简化语言进行了简化语言进行了简化语言进行了简化 B B B B语言语言语言语言 C C C C语言语言语言语言 19701970年,美国贝尔实验室的年,美国贝尔实验室的年,美国贝尔实验室的年,美国贝尔实验室的Ken Ken ThompsonThompson将将将将BCPLBCPL进行了修改进行了修改进行了修改进行了修改 将将CPLCPL语语言言煮干煮干,提炼出它提炼出它的精华的精华19731973年,年,年,年,B B语言也给人语言也给人语言也给人语言也给人“ “煮煮煮煮” ”了一下,美国贝尔实验室的了一下,美国贝尔实验室的了一下,美国贝尔实验室的了一下,美国贝尔实验室的D.M.RITC

11、HIED.M.RITCHIE在在在在B B语言的基础语言的基础语言的基础语言的基础上最终设计出了一种新的语言上最终设计出了一种新的语言上最终设计出了一种新的语言上最终设计出了一种新的语言 B BC CPLPL的第二个的第二个字母作为这种字母作为这种语言的名字,语言的名字,这就是这就是C C语言语言 语语言言程程序序设设计计教教程程 第第二二版版第第二二章章 程程序序设设计计基基础础C14C C语言发展史语言发展史uu产生背景产生背景产生背景产生背景uu产生过程产生过程产生过程产生过程 时间时间时间时间: 1972: 1972: 1972: 19721973197319731973 地点地点地点

12、地点: : : : 美国贝尔实验室美国贝尔实验室美国贝尔实验室美国贝尔实验室 目的目的目的目的: UNIX: UNIX: UNIX: UNIX操作系统操作系统操作系统操作系统 设计人设计人设计人设计人: Ken.Thompson: Ken.Thompson: Ken.Thompson: Ken.Thompson和和和和Dennis.M.RitchieDennis.M.RitchieDennis.M.RitchieDennis.M.RitchieuuC C C C标准标准标准标准 标准标准标准标准C: K&RC: K&RC: K&RC: K&R合著合著合著合著The C The C The C

13、The C Programming LanguageProgramming LanguageProgramming LanguageProgramming Language ANSI C: 1983 ANSI C: 1983 ANSI C: 1983 ANSI C: 1983年年年年 87 ANSI C: 198787 ANSI C: 198787 ANSI C: 198787 ANSI C: 1987年年年年 1990199019901990年国际标准的年国际标准的年国际标准的年国际标准的ANSI CANSI CANSI CANSI C语语言言程程序序设设计计教教程程 第第二二版版第第二二章

14、章 程程序序设设计计基基础础C15C C语言版本语言版本 C C语言有不同的版本,常用的编译软件有语言有不同的版本,常用的编译软件有语言有不同的版本,常用的编译软件有语言有不同的版本,常用的编译软件有Microsoft Microsoft Visual C+Visual C+、Borland C+Borland C+、Borland C+ BuilderBorland C+ Builder、Watcom Watcom C+C+、GNU DJGPP C+GNU DJGPP C+、Lccwin32 CLccwin32 C、Microsoft CMicrosoft C、Turbo CTurbo C、

15、High CHigh C等等。等等。等等。等等。 本课程的内容将基于本课程的内容将基于本课程的内容将基于本课程的内容将基于ANSI CANSI C进行展开,主要是针对进行展开,主要是针对进行展开,主要是针对进行展开,主要是针对Visual C+ 6.0Visual C+ 6.0。语语言言程程序序设设计计教教程程 第第二二版版第第二二章章 程程序序设设计计基基础础C16C C语言的特点语言的特点简洁紧凑、灵活方便简洁紧凑、灵活方便简洁紧凑、灵活方便简洁紧凑、灵活方便运算符丰富运算符丰富运算符丰富运算符丰富数据结构丰富数据结构丰富数据结构丰富数据结构丰富/ / / / 库函数功能多样库函数功能多样

16、库函数功能多样库函数功能多样C C C C是结构式语言是结构式语言是结构式语言是结构式语言C C C C语法限制不太严格、程序设计自由度大语法限制不太严格、程序设计自由度大语法限制不太严格、程序设计自由度大语法限制不太严格、程序设计自由度大C C C C语言允许直接访问物理地址,可以直接对硬件进行操作语言允许直接访问物理地址,可以直接对硬件进行操作语言允许直接访问物理地址,可以直接对硬件进行操作语言允许直接访问物理地址,可以直接对硬件进行操作C C C C语言程序生成代码质量高,程序执行效率高语言程序生成代码质量高,程序执行效率高语言程序生成代码质量高,程序执行效率高语言程序生成代码质量高,程

17、序执行效率高C C C C语言适用范围大,可移植性好语言适用范围大,可移植性好语言适用范围大,可移植性好语言适用范围大,可移植性好具有预处理功能具有预处理功能具有预处理功能具有预处理功能具有递归功能具有递归功能具有递归功能具有递归功能C C语言一共只有语言一共只有3030多个关键字,多个关键字,9 9种控制语句,程序书写种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。和语句与低级语言的实用性结合起来。C C语言可以象汇语言可以象汇编语言一样对位、字节和地址进行操作,而这三者是计编语言一样对位、

18、字节和地址进行操作,而这三者是计算机最基本的工作单元。算机最基本的工作单元。 C C的运算符包含的范围很广泛,共有的运算符包含的范围很广泛,共有3434个运算符。个运算符。C C语语言把括号、赋值、强制类型转换等都作为运算符处理。言把括号、赋值、强制类型转换等都作为运算符处理。从而使从而使C C的运算类型极其丰富表达式类型多样化,灵活的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的使用各种运算符可以实现在其它高级语言中难以实现的运算。运算。 C C的数据类型有:整型、实型、字符型、数组类型、的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型

19、、联合体类型等。能用来实现各指针类型、结构体类型、联合体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程序种复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外效率更高。另外C C语言具有强大的图形功能,支持多种语言具有强大的图形功能,支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。显示器和驱动器。且计算功能、逻辑判断功能强大。 结构式语言的显著特点是代码及数据的分隔化,即程结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试

20、。构化方式可使程序层次清晰,便于使用、维护以及调试。C C语言是以函数形式提供给用户的,这些函数可方便的语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。使程序完全结构化。 一般的高级语言语法检查比较严,能够检查出几乎所一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。而有的语法错误。而C C语言允许程序编写者有较大的自由语言允许程序编写者有较大的自由度。度。 C C语言既具有高级语言的功能,又具有低级语言的许语言既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言

21、一样对位、字节和地址进行操多功能,能够象汇编语言一样对位、字节和地址进行操作作, ,而这三者是计算机最基本的工作单元,可以用来写而这三者是计算机最基本的工作单元,可以用来写系统软件。系统软件。一般只比汇编程序生成的目标代码效率低一般只比汇编程序生成的目标代码效率低101020%20%。 C C语言有一个突出的优点就是适合于多种操作系统,语言有一个突出的优点就是适合于多种操作系统,如如DOSDOS、WINDOWSWINDOWS、UNIXUNIX。也适用于多种机型,在一种计。也适用于多种机型,在一种计算机上编写的程序,无须修改或经过很少的修改,就可算机上编写的程序,无须修改或经过很少的修改,就可以

22、在其它类型的计算机上运行。以在其它类型的计算机上运行。 C C语言提供了预处理器,程序可以利用宏指令提高可语言提供了预处理器,程序可以利用宏指令提高可读性和可移植性。读性和可移植性。 C C语言允许递归调用,在解决递归问题上具有独特优语言允许递归调用,在解决递归问题上具有独特优势。势。语语言言程程序序设设计计教教程程 第第二二版版第第二二章章 程程序序设设计计基基础础C17C C语言的应用语言的应用 C C C C语言的应用非常广,也非常多,在此仅列出其中的一些语言的应用非常广,也非常多,在此仅列出其中的一些语言的应用非常广,也非常多,在此仅列出其中的一些语言的应用非常广,也非常多,在此仅列出

23、其中的一些应用:应用:应用:应用:C C C C语言可以用来开发许多系统软件和大型应用软件语言可以用来开发许多系统软件和大型应用软件语言可以用来开发许多系统软件和大型应用软件语言可以用来开发许多系统软件和大型应用软件。如。如。如。如UNIXUNIXUNIXUNIX,LINUXLINUXLINUXLINUX等操作系统。等操作系统。等操作系统。等操作系统。在软件需要对硬件进行操作的场合,用在软件需要对硬件进行操作的场合,用在软件需要对硬件进行操作的场合,用在软件需要对硬件进行操作的场合,用C C C C语言明显优于其它语言明显优于其它语言明显优于其它语言明显优于其它高级语言。高级语言。高级语言。高

24、级语言。例如,各种硬件设备的驱动程序(象显卡驱动程例如,各种硬件设备的驱动程序(象显卡驱动程例如,各种硬件设备的驱动程序(象显卡驱动程例如,各种硬件设备的驱动程序(象显卡驱动程序、打印机驱动程序等)一般都是用序、打印机驱动程序等)一般都是用序、打印机驱动程序等)一般都是用序、打印机驱动程序等)一般都是用C C C C语言编写的。语言编写的。语言编写的。语言编写的。在图形、图像及动画处理方面,在图形、图像及动画处理方面,在图形、图像及动画处理方面,在图形、图像及动画处理方面,C C C C语言具有绝对优势语言具有绝对优势语言具有绝对优势语言具有绝对优势,特别,特别,特别,特别是游戏软件的开发主要

25、就是使用是游戏软件的开发主要就是使用是游戏软件的开发主要就是使用是游戏软件的开发主要就是使用C C C C语言。语言。语言。语言。随着计算机网络飞速发展,特别是随着计算机网络飞速发展,特别是随着计算机网络飞速发展,特别是随着计算机网络飞速发展,特别是InternetInternetInternetInternet的出现,计算机的出现,计算机的出现,计算机的出现,计算机通信就显得尤其重要,而通信就显得尤其重要,而通信就显得尤其重要,而通信就显得尤其重要,而通信程序的编制通信程序的编制通信程序的编制通信程序的编制首选就是首选就是首选就是首选就是C C C C语言。语言。语言。语言。 C C C C

26、语言适用于多种操作系统语言适用于多种操作系统语言适用于多种操作系统语言适用于多种操作系统,象,象,象,象WINDOWSWINDOWSWINDOWSWINDOWS、UNIXUNIXUNIXUNIX、LINUXLINUXLINUXLINUX等绝等绝等绝等绝大多数操作系统都支持大多数操作系统都支持大多数操作系统都支持大多数操作系统都支持C C C C语言,其它高级语言未必能得到支持,语言,其它高级语言未必能得到支持,语言,其它高级语言未必能得到支持,语言,其它高级语言未必能得到支持,所以在某个特定操作系统下运行的软件用所以在某个特定操作系统下运行的软件用所以在某个特定操作系统下运行的软件用所以在某个

27、特定操作系统下运行的软件用C C C C语言编制是最佳选语言编制是最佳选语言编制是最佳选语言编制是最佳选择。择。择。择。语语言言程程序序设设计计教教程程 第第二二版版第第二二章章 程程序序设设计计基基础础C182.3 C2.3 C语言与语言与C+C+、JavaJava和和C#C#之间的关系之间的关系 语语言言程程序序设设计计教教程程 第第二二版版第第二二章章 程程序序设设计计基基础础CC C C CC+C+C+C+JavaJavaJavaJavaC#C#C#C#面向过程面向过程面向过程面向过程,市场份额逐渐减少,但仍很大市场份额逐渐减少,但仍很大市场份额逐渐减少,但仍很大市场份额逐渐减少,但仍

28、很大,在追求运行效,在追求运行效,在追求运行效,在追求运行效率的软件和嵌入式软件开发、图形、与硬件相关方面率的软件和嵌入式软件开发、图形、与硬件相关方面率的软件和嵌入式软件开发、图形、与硬件相关方面率的软件和嵌入式软件开发、图形、与硬件相关方面 面向对象面向对象面向对象面向对象,市场份额较大市场份额较大市场份额较大市场份额较大,属,属,属,属C C C C语言的升级版,完全兼容语言的升级版,完全兼容语言的升级版,完全兼容语言的升级版,完全兼容C C C C语言的语法。语言的语法。语言的语法。语言的语法。在很多场合,它俩也被放在一起,称为在很多场合,它俩也被放在一起,称为在很多场合,它俩也被放在

29、一起,称为在很多场合,它俩也被放在一起,称为C/C+C/C+C/C+C/C+。这个这个这个这个“ “+” ”加上后,便是大名鼎鼎的加上后,便是大名鼎鼎的加上后,便是大名鼎鼎的加上后,便是大名鼎鼎的“ “面向对象(面向对象(面向对象(面向对象(Object Object Object Object OrientedOrientedOrientedOriented)” ”。 面向对象面向对象面向对象面向对象,市场份额较大市场份额较大市场份额较大市场份额较大,19951995年年年年SunSunSunSun公司出品,以纯面向公司出品,以纯面向公司出品,以纯面向公司出品,以纯面向对象、平台无关和易学易

30、用而著称。它全面照搬了对象、平台无关和易学易用而著称。它全面照搬了对象、平台无关和易学易用而著称。它全面照搬了对象、平台无关和易学易用而著称。它全面照搬了C+C+C+C+的语的语的语的语法,并去掉了其不常用和不成功的部分,化繁为简,迅速法,并去掉了其不常用和不成功的部分,化繁为简,迅速法,并去掉了其不常用和不成功的部分,化繁为简,迅速法,并去掉了其不常用和不成功的部分,化繁为简,迅速博得了程序员们的认可,获得了越来越多的支持。不管是博得了程序员们的认可,获得了越来越多的支持。不管是博得了程序员们的认可,获得了越来越多的支持。不管是博得了程序员们的认可,获得了越来越多的支持。不管是桌面应用,还是

31、网络服务、嵌入式应用都可用它进行高效桌面应用,还是网络服务、嵌入式应用都可用它进行高效桌面应用,还是网络服务、嵌入式应用都可用它进行高效桌面应用,还是网络服务、嵌入式应用都可用它进行高效的开发。但如果要做底层的、占用资源少的程序,的开发。但如果要做底层的、占用资源少的程序,的开发。但如果要做底层的、占用资源少的程序,的开发。但如果要做底层的、占用资源少的程序,JavaJavaJavaJava语语语语言就无能为力了。言就无能为力了。言就无能为力了。言就无能为力了。 面向对象面向对象面向对象面向对象,市场份额较大市场份额较大市场份额较大市场份额较大,2000200020002000年年年年Micr

32、osoftMicrosoftMicrosoftMicrosoft 公司出品,读公司出品,读作作C Sharp C Sharp 。戏称其为。戏称其为C+ C+ ,它也照搬了,它也照搬了C/C+C/C+的语法的语法 ,诞生在诞生在JavaJava语言之后,所以它能把语言之后,所以它能把JavaJava语言的成功之处吸收语言的成功之处吸收进来,把不成功之处抛弃,打造了一个似进来,把不成功之处抛弃,打造了一个似JavaJava而非而非JavaJava,还,还有点超越有点超越JavaJava的语言。的语言。 目前,目前,目前,目前,C/C+C/C+C/C+C/C+、JavaJavaJavaJava和和和

33、和C#C#C#C#语言即将形成语言即将形成语言即将形成语言即将形成三足鼎立之势,其他语言仅能在其专属领域三足鼎立之势,其他语言仅能在其专属领域三足鼎立之势,其他语言仅能在其专属领域三足鼎立之势,其他语言仅能在其专属领域里得以发挥作用。同时,里得以发挥作用。同时,里得以发挥作用。同时,里得以发挥作用。同时,C+C+C+C+,JavaJavaJavaJava和和和和C#C#C#C#语语语语言也在不断地完善、扩充自身,极力挤压其言也在不断地完善、扩充自身,极力挤压其言也在不断地完善、扩充自身,极力挤压其言也在不断地完善、扩充自身,极力挤压其他语言的空间。在这种情况下,他语言的空间。在这种情况下,他语

34、言的空间。在这种情况下,他语言的空间。在这种情况下,C C C C语言的空语言的空语言的空语言的空间变得越来越小,间变得越来越小,间变得越来越小,间变得越来越小,那么为什么还要学习那么为什么还要学习那么为什么还要学习那么为什么还要学习C C C C语语语语言呢?言呢?言呢?言呢? C C C C语言可以说是语言可以说是语言可以说是语言可以说是C+C+C+C+、JavaJavaJavaJava和和和和C#C#C#C#语言的基础,还有很多专用语言的基础,还有很多专用语言的基础,还有很多专用语言的基础,还有很多专用语言也学习和借鉴了语言也学习和借鉴了语言也学习和借鉴了语言也学习和借鉴了C C C C

35、语言,比如进行语言,比如进行语言,比如进行语言,比如进行WebWebWebWeb开发的开发的开发的开发的PHPPHPPHPPHP语言,语言,语言,语言,做仿真的做仿真的做仿真的做仿真的MATLABMATLABMATLABMATLAB的内嵌语言等。学好的内嵌语言等。学好的内嵌语言等。学好的内嵌语言等。学好C C C C语言对以后再学习语言对以后再学习语言对以后再学习语言对以后再学习其他语言大有帮助。计算机科学发展很快,若干年以后,其他语言大有帮助。计算机科学发展很快,若干年以后,其他语言大有帮助。计算机科学发展很快,若干年以后,其他语言大有帮助。计算机科学发展很快,若干年以后,什么技术、什么语言

36、尽显风流无法预言。唯有掌握最基础什么技术、什么语言尽显风流无法预言。唯有掌握最基础什么技术、什么语言尽显风流无法预言。唯有掌握最基础什么技术、什么语言尽显风流无法预言。唯有掌握最基础的,才能以不变应万变,并立于不败之地的,才能以不变应万变,并立于不败之地的,才能以不变应万变,并立于不败之地的,才能以不变应万变,并立于不败之地。192.4 C2.4 C语言程序的基本结构语言程序的基本结构 了解了了解了了解了了解了C C C C语言的基本特性及其应用以后,接下来就来看看语言的基本特性及其应用以后,接下来就来看看语言的基本特性及其应用以后,接下来就来看看语言的基本特性及其应用以后,接下来就来看看C

37、C C C语言程序是什么样子。一个语言程序是什么样子。一个语言程序是什么样子。一个语言程序是什么样子。一个C C C C语言程序可以是非常简单的,也语言程序可以是非常简单的,也语言程序可以是非常简单的,也语言程序可以是非常简单的,也可以是特别复杂的,这取决于程序所要实现的功能。我们先可以是特别复杂的,这取决于程序所要实现的功能。我们先可以是特别复杂的,这取决于程序所要实现的功能。我们先可以是特别复杂的,这取决于程序所要实现的功能。我们先来认识一个最为简单的来认识一个最为简单的来认识一个最为简单的来认识一个最为简单的C C C C程序。程序。程序。程序。【例例例例1 1 1 1】 最简单的最简单

38、的最简单的最简单的C C C C程序。程序。程序。程序。/* This is the first C program */* This is the first C program */#include #include void main ( )void main ( ) printf (Hello C Language! printf (Hello C Language!nn);); 注释信息注释信息预处理命令预处理命令无返回值无返回值无参数、无返回值的主函数无参数、无返回值的主函数主函数名主函数名函数开始函数开始内部函数名内部函数名参数参数回车换行符回车换行符函数调用函数调用函数体函数体

39、语句结束标志语句结束标志函数结束函数结束 运行结果运行结果运行结果运行结果: Hello c Language! /Hello c Language! /对吗?对吗?对吗?对吗? 在在C C程序中,注释由程序中,注释由“/*/*”开始,由开始,由“* */ /”结束,可以实现多行注释结束,可以实现多行注释 。 在在C+C+程序中也可使用程序中也可使用“/”进行单进行单行注释。例如:行注释。例如:/ / 注释信息注释信息 C C语言的预处理命令都是以语言的预处理命令都是以“# #”号开头。号开头。stdio.hstdio.h是一个头文件是一个头文件 C C程序中允许插入若干行空行,它不影响程序程

40、序中允许插入若干行空行,它不影响程序的功能,同注释一样。为了程序的易读性,的功能,同注释一样。为了程序的易读性,在编写在编写C C程序时,根据需要可插入一定的空行程序时,根据需要可插入一定的空行 main main是主函数名,一个是主函数名,一个C C语言程序有且仅有一语言程序有且仅有一个个mainmain函数。函数。C C程序执行时就是从程序执行时就是从mainmain函数开函数开始,具体讲就是从始,具体讲就是从“ ”开始,到开始,到“ ”结束。结束。 printf printf是是C C语言的内部函数名,因为它后面跟着语言的内部函数名,因为它后面跟着( )( ),其功,其功能是将能是将“H

41、ello C Language!nHello C Language!n”显示在计算机的屏幕上显示在计算机的屏幕上(双引号和(双引号和nn不显示)不显示) C C语言规定:语句以分号结束语言规定:语句以分号结束 语语言言程程序序设设计计教教程程 第第二二版版第第二二章章 程程序序设设计计基基础础C202.4 C2.4 C语言程序的基本结构语言程序的基本结构 【例例例例2 2 2 2】计算输入的两个整数的和计算输入的两个整数的和计算输入的两个整数的和计算输入的两个整数的和 。/* This is the second C program */* This is the second C progr

42、am */#include #include void main ( )void main ( ) int x, y, z; int x, y, z; scanf (%d%d, &x, &y ); scanf (%d%d, &x, &y ); z = x + y; z = x + y; printf (the sum of two integer is %dn, z); printf (the sum of two integer is %dn, z); 数据类型名数据类型名定义的变量名,以定义的变量名,以“,”分分隔隔调用内部函数,接受键盘输入数据调用内部函数,接受键盘输入数据带有三个参数,

43、以带有三个参数,以“,”分隔。分隔。&表示取变量的地址。表示取变量的地址。调用内部函数,输出计算的和数调用内部函数,输出计算的和数求和的值给求和的值给Z假设输入:假设输入:假设输入:假设输入:10 2010 2010 2010 20 运行结果:运行结果:运行结果:运行结果:the sum of two integer isthe sum of two integer is 30语语言言程程序序设设计计教教程程 第第二二版版第第二二章章 程程序序设设计计基基础础C练习编写一个完整程序,输入两个署,就它们之差。21222.4 C2.4 C语言程序的基本结构语言程序的基本结构 C C C C语言程序

44、的函数由两部分构成:语言程序的函数由两部分构成:语言程序的函数由两部分构成:语言程序的函数由两部分构成:一部分定义变量一部分定义变量一部分定义变量一部分定义变量(变量(变量(变量(变量代表数据),称为声明部分;代表数据),称为声明部分;代表数据),称为声明部分;代表数据),称为声明部分;另一部分代表操作另一部分代表操作另一部分代表操作另一部分代表操作,由,由,由,由C C C C语句语句语句语句构成,称为执行部分。构成,称为执行部分。构成,称为执行部分。构成,称为执行部分。 在在在在C C C C程序中,要求函数的程序中,要求函数的程序中,要求函数的程序中,要求函数的声明部分在前面,执行在后面

45、声明部分在前面,执行在后面声明部分在前面,执行在后面声明部分在前面,执行在后面,它们的顺序不能颠倒,也不能交叉。但在它们的顺序不能颠倒,也不能交叉。但在它们的顺序不能颠倒,也不能交叉。但在它们的顺序不能颠倒,也不能交叉。但在C+C+C+C+程序中,声明程序中,声明程序中,声明程序中,声明部分和执行部分可以相互交叉,没有严格的界限,当然执行部分和执行部分可以相互交叉,没有严格的界限,当然执行部分和执行部分可以相互交叉,没有严格的界限,当然执行部分和执行部分可以相互交叉,没有严格的界限,当然执行部分中所使用的变量只要在其之前进行定义即可。部分中所使用的变量只要在其之前进行定义即可。部分中所使用的变

46、量只要在其之前进行定义即可。部分中所使用的变量只要在其之前进行定义即可。/C/C/C/C语言程序语言程序语言程序语言程序void main ( )void main ( ) int a; int a; a = 10; a = 10; int b; int b; b = a + 20; b = a + 20; 变量定义放到了变量定义放到了执行部分之后。执行部分之后。 /C+/C+/C+/C+语言程序语言程序语言程序语言程序void main ( )void main ( ) int a; int a; a = 10; a = 10; int b; int b; b = a + 20; b = a

47、 + 20; 只要执行部分所只要执行部分所使用的变量在前使用的变量在前面已经定义面已经定义 /C/C/C/C或或或或C+C+C+C+语言程序语言程序语言程序语言程序void main ( )void main ( ) int a; int a; a = 10; a = 10; b = a + 20; b = a + 20; int b; int b; 变量定义放到了变量定义放到了执行部分之后。执行部分之后。 再次强调:在再次强调:在再次强调:在再次强调:在C C C C语言程语言程语言程语言程序中,变量必须先定序中,变量必须先定序中,变量必须先定序中,变量必须先定义,后使用,顺序不义,后使用,

48、顺序不义,后使用,顺序不义,后使用,顺序不能颠倒!能颠倒!能颠倒!能颠倒! 语语言言程程序序设设计计教教程程 第第二二版版第第二二章章 程程序序设设计计基基础础C232.4 C2.4 C语言程序的基本结构语言程序的基本结构 【例例例例3 3 3 3】计算输入的两个整数的最大值计算输入的两个整数的最大值计算输入的两个整数的最大值计算输入的两个整数的最大值 。/* This is the third C program */* This is the third C program */#include #include int max (int a, int b);int max (int a,

49、 int b);void main ( )void main ( ) int x, y, z; int x, y, z; scanf (%d%d, &x, &y); scanf (%d%d, &x, &y); z = max (x, y); z = max (x, y); printf (max = %dn, z); printf (max = %dn, z); int max (int a, int b)int max (int a, int b) int c; int c; if (a b) if (a b) c = a; c = a; else else c = b; c = b; re

50、turn (c); return (c); 自定义函数声明自定义函数声明自定义函数调用自定义函数调用自定义函数自定义函数max带两个形参带两个形参返回返回a、b中最大值中最大值c返回值为整型数返回值为整型数假设输入:假设输入:假设输入:假设输入:10 2010 2010 2010 20 运行结果:运行结果:运行结果:运行结果:max = 2max = 20语语言言程程序序设设计计教教程程 第第二二版版第第二二章章 程程序序设设计计基基础础C242.4 C2.4 C语言程序的基本结构语言程序的基本结构 C C C C语言的标识符语言的标识符语言的标识符语言的标识符 C C C C语言中变量和函数

51、都有自己的名字,它们都必语言中变量和函数都有自己的名字,它们都必语言中变量和函数都有自己的名字,它们都必语言中变量和函数都有自己的名字,它们都必须是合法的标识符。须是合法的标识符。须是合法的标识符。须是合法的标识符。 标识符标识符标识符标识符就是一个名字,就是一个名字,就是一个名字,就是一个名字,C C C C语言规定标识符只能由语言规定标识符只能由语言规定标识符只能由语言规定标识符只能由字母、数字和下划线三中字符构成,并且第一个字符字母、数字和下划线三中字符构成,并且第一个字符字母、数字和下划线三中字符构成,并且第一个字符字母、数字和下划线三中字符构成,并且第一个字符必须是字母或下划线必须是

52、字母或下划线必须是字母或下划线必须是字母或下划线。 C C C C语言是大小写敏感的语言语言是大小写敏感的语言语言是大小写敏感的语言语言是大小写敏感的语言,因此,因此,因此,因此hellohellohellohello和和和和HelloHelloHelloHello是不同的标识符。是不同的标识符。是不同的标识符。是不同的标识符。 C C C C语言中有一些特别的标识符,它们的用途已经语言中有一些特别的标识符,它们的用途已经语言中有一些特别的标识符,它们的用途已经语言中有一些特别的标识符,它们的用途已经事先规定好了,程序员不能再将它们另做它用。这些事先规定好了,程序员不能再将它们另做它用。这些事

53、先规定好了,程序员不能再将它们另做它用。这些事先规定好了,程序员不能再将它们另做它用。这些特别的标识符被称为特别的标识符被称为特别的标识符被称为特别的标识符被称为关键字关键字关键字关键字(也称保留字)。到目前(也称保留字)。到目前(也称保留字)。到目前(也称保留字)。到目前为止,我们见过的关键字有为止,我们见过的关键字有为止,我们见过的关键字有为止,我们见过的关键字有voidvoidvoidvoid、intintintint、mainmainmainmain、ifififif、elseelseelseelse、returnreturnreturnreturn。以后随着学习的深入,我们将会遇到。

54、以后随着学习的深入,我们将会遇到。以后随着学习的深入,我们将会遇到。以后随着学习的深入,我们将会遇到越来越多的关键字(越来越多的关键字(越来越多的关键字(越来越多的关键字(C C C C语言关键字可参考附录语言关键字可参考附录语言关键字可参考附录语言关键字可参考附录3 3 3 3)。)。)。)。语语言言程程序序设设计计教教程程 第第二二版版第第二二章章 程程序序设设计计基基础础C252.4 C2.4 C语言程序的基本结构语言程序的基本结构 总结总结C C程序是由多个函数构成的。程序是由多个函数构成的。每个每个C C程序中有且只有一个程序中有且只有一个mainmain函数。函数。mainmain

55、函数是程序的入口和出口。函数是程序的入口和出口。不使用行号,无程序行的概念。不使用行号,无程序行的概念。程序中可使用空行和空格。程序中可使用空行和空格。C C程序格式常用锯齿形书写格式。程序格式常用锯齿形书写格式。C C程序中可加任意多的注释。程序中可加任意多的注释。引用引用C C语言标准库函数,要用文件包含语言标准库函数,要用文件包含预处理命令将其头文件包含进来。预处理命令将其头文件包含进来。语语言言程程序序设设计计教教程程 第第二二版版第第二二章章 程程序序设设计计基基础础C262.4 C2.4 C语言程序的基本结构语言程序的基本结构 总结总结用户自定义的函数,须先定义后使用。用户自定义的

56、函数,须先定义后使用。变量必须先定义后使用。变量必须先定义后使用。变量名、函数名必须是合法的标识符,变量名、函数名必须是合法的标识符,标识符习惯用小写字母,大小写敏感。标识符习惯用小写字母,大小写敏感。不能用关键字来命名变量和函数。不能用关键字来命名变量和函数。函数包含两个部分:声明部分和执行部函数包含两个部分:声明部分和执行部分,在分,在C C程序中,声明部分在前,执行部分程序中,声明部分在前,执行部分在后,这两部分的顺序不能颠倒,也不能在后,这两部分的顺序不能颠倒,也不能有交叉。有交叉。C C语言的语句都是以分号结尾。语言的语句都是以分号结尾。语语言言程程序序设设计计教教程程 第第二二版版

57、第第二二章章 程程序序设设计计基基础础C272.5 2.5 编制编制C C语言程序的基本步骤语言程序的基本步骤 编编编编 辑辑辑辑程序代码的录程序代码的录程序代码的录程序代码的录入,生成源程入,生成源程入,生成源程入,生成源程序序序序* * * *.c.c.c.c或或或或* * * *.cpp.cpp.cpp.cpp编编编编 译译译译语法分析查错,语法分析查错,语法分析查错,语法分析查错,翻译生成目标程翻译生成目标程翻译生成目标程翻译生成目标程序序序序* * * *.obj.obj.obj.obj链链链链 接接接接与其它目标程与其它目标程与其它目标程与其它目标程序或库链接装序或库链接装序或库链

58、接装序或库链接装配配配配, , , ,生成可执生成可执生成可执生成可执行程序行程序行程序行程序* * * *.exe.exe.exe.exe运运运运 行行行行开 始编 辑编 译有错?链 接执 行结果正确?结 束源程序file.c目标程序file.obj库函数和其它目标程序可执行程序file.exe不正确正确有无 调试调试调试调试C C C C程序的流程程序的流程程序的流程程序的流程 编写编写编写编写C C C C程序的步骤程序的步骤程序的步骤程序的步骤 语语言言程程序序设设计计教教程程 第第二二版版第第二二章章 程程序序设设计计基基础础C28课后作业复习第二章。如果有可以先看看第一章如果有条件

59、,可以先上机,试试。编程环境:VC 6.0如果有问题,可以先到网上找答案谢谢大家!29301903年12月28日,在布达佩斯诞生了一位神童,这不仅给这个家庭带来了巨大的喜悦,也值得整个计算机界去纪念。正是他,开创了现代计算机理论,其体系结构沿用至今,而且他早在40年代就已预见到计算机建模和仿真技术对当代计算机将产生的意义深远的影响。他,就是约翰冯诺依曼(John Von Neumann)。313232个关键字个关键字:( (由系统定义,不能重作其它定义由系统定义,不能重作其它定义) ) auto break case char const continue default do double

60、else enum extern float for goto if int long register return short signed sizeof static struct switch typedef unsigned union void volatile while语言简洁、紧凑、灵活语言简洁、紧凑、灵活329 9种控制语句种控制语句 if( )else for( ) while( ) dowhile( ) continue break switch goto return33算术运算符:算术运算符:+ - * / % + -+ - * / % + -关系运算符:关系运算符

61、: = != = !=逻辑运算符:!逻辑运算符:! & |& |位运算符位运算符 : | & | &赋值运算符:赋值运算符:= = 及其扩展及其扩展条件运算符:条件运算符:?:?:逗号运算符:逗号运算符:, ,指针运算符:指针运算符:* * & &求字节数求字节数 :sizeofsizeof强制类型转换:强制类型转换:( (类型)类型)分量运算符:分量运算符:. -. -下标运算符:下标运算符:其它其它 :( ) -( ) -常用运算符:常用运算符:运算符丰富运算符丰富34C C数数据据类类型型基本类型基本类型构造类型构造类型指针类型指针类型空类型空类型void自定义类型自定义类型typede

62、f数值类型数值类型字符类型字符类型char枚举类型枚举类型enum整整 型型浮点型浮点型单精度型单精度型float双精度型双精度型double短整型短整型short长整型长整型long整型整型int数组数组结构体结构体struct共用体共用体union常用数据类型:常用数据类型:35常用库函数:常用库函数:exp(x):exp(x):计算计算e ex xsin(x):sin(x):计算计算x x的正弦值的正弦值circle(x,y,r):circle(x,y,r): 以以(x,y)(x,y)为圆心,画一个半径为为圆心,画一个半径为r r的圆的圆Rectangle(x1,y1,x2,y2)Rec

63、tangle(x1,y1,x2,y2): 从左上从左上(x1,y1)(x1,y1)至右下至右下(x2,y2)(x2,y2)点画矩形点画矩形函数库功能齐全函数库功能齐全36main() 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备13022795号 | 川公网安备 51140202000112号