




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,王占全 华东理工大学信息学院,C语言程序设计,2,大学里能学到什么?,勉励大家: 脚踏实地,从小处着手,,扎实的基础创新精神; 要乐于帮助人、诚信等,对社会有用的人!,3,课程有关信息 教师 王占全() 计算中心课程论坛 办公室 徐汇校区二教302或者奉贤信息大楼二教214,4,教材、参考书与课时安排,教材 C语言程序设计教程(第2版) 王敬华编著 清华大学出版社 参考书 C语言程序设计教程(第2版)习题解答与实验指导 王敬华编著 清华大学出版社 C语言程序设计(第2版)谭浩强 高等教育出版社 C高级实用程序设计 王士元 清华大学出版社,5,课时安排 授课 :32学时 上机 :32学时(第四周开始上机,目前是第三周。具体时间下次通知!),教材、参考书与课时安排,6,学习要求及成绩构成,学习要求 课前请做好预习,课后请做好复习 保持课堂安静,头脑清醒,思维活跃 认真、独立、按时完成并提交作业 重视上机实践,有效利用宝贵的上机时间,提前警钟:刚开始可能不适应,难学,没有关系,慢慢来,成绩构成 平时考勤:10% 平时作业:20% 期末考试:机考70% 一些加分方法:如课堂有些测试,让学生上来编写程序;如创新实践。,7,第2章:C语言程序设计基础,学习的意义,从本章开始我们正式进入C语言程序设计的学习,也许大家会问:为什么我们要学习C语言呢? 理由1:因为C语言流行. 理由2:因为C语言是基础性。 理由3: 因为C语言在各种程序考试中首当其中。 理由n:,别急!让我想想,这些理由都只是从表面上来回答,其实要真正来回答这一问题,我们有必要了解程序设计语言的发展历史及其特点,知道C语言是属于那种类型的语言;C语言是如何产生和发展的,C语言的特点有哪些,它应用在哪些方面等,这样我们就可以做到学习目的明确,才能有意识地去学好C语言程序设计。,8,了解程序设计语言的发展及其特点; 掌握机器语言、汇编语言和高级语言的差异; 了解C语言的发展历史及特点和应用; 掌握C语言程序的基本结构; 掌握编写C程序的基本步骤和调试过程。,另外,本章我们将带领大家来实际感受一下C语言程序是一个什么样子,它的结构特点是什么,这是我们进行C语言程序设计必须遵循的规范。 最后,我们应该掌握的是如何来编写和调试一个C语言程序,这是我们每一个C语言程序员所必须具备的基本功。,学习的意义,学习目标,9,学习内容,程序设计语言的发展及其特点 C语言的发展及其特点和应用 C语言程序的基本结构 编制C语言程序的基本步骤,了解历史 抓住现在 展望未来,10,2.1 程序设计语言的发展及其特点,11,2.1 程序设计语言的发展及其特点,CPU指令系统,由0、1序列构成的指令码组成 如:10000000 加 10010000 减,用助记符号描述的指令系统 如 ADD A, B,面向机器的语言,程序设计是数据被加工的过程,客观世界可以分类,对象是类的实例 对象是数据和方法的封装 对象间通过发送和接受消息发生联系,程序设计关键是定义类,并由类派生对象,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 Language,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 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语言的特点,简洁紧凑、灵活方便 运算符丰富 数据结构丰富/ 库函数功能多样 C是结构式语言 C语法限制不太严格、程序设计自由度大 C语言允许直接访问物理地址,可以直接对硬件进行操作 C语言程序生成代码质量高,程序执行效率高 C语言适用范围大,可移植性好 具有预处理功能 具有递归功能,C语言一共只有30多个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C语言可以象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。,C的运算符包含的范围很广泛,共有34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。,C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、联合体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能,支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。,结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。,一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。而C语言允许程序编写者有较大的自由度。,C语言既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。,一般只比汇编程序生成的目标代码效率低1020%。,C语言有一个突出的优点就是适合于多种操作系统,如DOS、WINDOWS、UNIX。也适用于多种机型,在一种计算机上编写的程序,无须修改或经过很少的修改,就可以在其它类型的计算机上运行。,C语言提供了预处理器,程序可以利用宏指令提高可读性和可移植性。,C语言允许递归调用,在解决递归问题上具有独特优势。,17,C语言的应用,C语言的应用非常广,也非常多,在此仅列出其中的一些应用: C语言可以用来开发许多系统软件和大型应用软件。如UNIX,LINUX等操作系统。 在软件需要对硬件进行操作的场合,用C语言明显优于其它高级语言。例如,各种硬件设备的驱动程序(象显卡驱动程序、打印机驱动程序等)一般都是用C语言编写的。 在图形、图像及动画处理方面,C语言具有绝对优势,特别是游戏软件的开发主要就是使用C语言。 随着计算机网络飞速发展,特别是Internet的出现,计算机通信就显得尤其重要,而通信程序的编制首选就是C语言。 C语言适用于多种操作系统,象WINDOWS、UNIX、LINUX等绝大多数操作系统都支持C语言,其它高级语言未必能得到支持,所以在某个特定操作系统下运行的软件用C语言编制是最佳选择。,18,2.3 C语言与C+、Java和C#之间的关系,C,C+,Java,C#,面向过程,市场份额逐渐减少,但仍很大,在追求运行效率的软件和嵌入式软件开发、图形、与硬件相关方面,面向对象,市场份额较大,属C语言的升级版,完全兼容C语言的语法。在很多场合,它俩也被放在一起,称为C/C+。这个“+”加上后,便是大名鼎鼎的“面向对象(Object Oriented)”。,面向对象,市场份额较大,1995年Sun公司出品,以纯面向对象、平台无关和易学易用而著称。它全面照搬了C+的语法,并去掉了其不常用和不成功的部分,化繁为简,迅速博得了程序员们的认可,获得了越来越多的支持。不管是桌面应用,还是网络服务、嵌入式应用都可用它进行高效的开发。但如果要做底层的、占用资源少的程序,Java语言就无能为力了。,面向对象,市场份额较大,2000年Microsoft 公司出品,读作C Sharp 。戏称其为C+ ,它也照搬了C/C+的语法 ,诞生在Java语言之后,所以它能把Java语言的成功之处吸收进来,把不成功之处抛弃,打造了一个似Java而非Java,还有点超越Java的语言。,目前,C/C+、Java和C#语言即将形成三足鼎立之势,其他语言仅能在其专属领域里得以发挥作用。同时,C+,Java和C#语言也在不断地完善、扩充自身,极力挤压其他语言的空间。在这种情况下,C语言的空间变得越来越小,那么为什么还要学习C语言呢?,C语言可以说是C+、Java和C#语言的基础,还有很多专用语言也学习和借鉴了C语言,比如进行Web开发的PHP语言,做仿真的MATLAB的内嵌语言等。学好C语言对以后再学习其他语言大有帮助。计算机科学发展很快,若干年以后,什么技术、什么语言尽显风流无法预言。唯有掌握最基础的,才能以不变应万变,并立于不败之地。,19,2.4 C语言程序的基本结构,了解了C语言的基本特性及其应用以后,接下来就来看看C语言程序是什么样子。一个C语言程序可以是非常简单的,也可以是特别复杂的,这取决于程序所要实现的功能。我们先来认识一个最为简单的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程序时,根据需要可插入一定的空行,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 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 main ( ) 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, int 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语言中有一些特别的标识符,它们的用途已经事先规定好了,程序员不能再将它们另做它用。这些特别的标识符被称为关键字(也称保留字)。到目前为止,我们见过的关键字有void、int、main、if、else、return。以后随着学习的深入,我们将会遇到越来越多的关键字(C语言关键字可参考附录3)。,25,2.4 C语言程序的基本结构,总结,C程序是由多个函数构成的。 每个C程序中有且只有一个main函数。 main函数是程序的入口和出口。 不使用行号,无程序行的概念。 程序中可使用空行和空格。 C程序格式常用锯齿形书写格式。 C程序中可加任意多的注释。 引用C语言标准库函数,要用文件包含预处理命令将其头文件包含进来。,26,2.4 C语言程序的基本结构,总结,用户自定义的函数,须先定义后使用。 变量必须先定义后使用。 变量名、函数名必须是合法的标识符,标识符习惯用小写字母,大小写敏感。 不能用关键字来命名变量和函数。 函数包含两个部分:声明部分和执行部分,在C程序中,声明部分在前,执行部分在后,这两部分的顺序不能颠倒,也不能有交叉。 C语言的语句都是以分号结尾。,27,2.5 编制C语言程序的基本步骤,编 辑,程序代码的录入,生成源程序*.c或*.cpp,编 译,语法分析查错,翻译生成目标程序*.obj,链 接,与其它目标程序或库链接装配,生成可执行程序*.exe,运 行,编写C程序的步骤,28,课后作业,复习第二章。如果有可以先看看第一章 如果有条件,可以先上机,试试。 编程环境:VC 6.0 如果有问题,可以先到网上找答案,谢谢大家!,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
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025山东齐鲁文旅集团有限公司春季招聘9人笔试题库历年考点版附带答案详解
- 2025年福建省晋江市新佳园物业发展有限公司招聘18人考前自测高频考点模拟试题及答案详解(历年真题)
- 2025江西赣州市会昌县小镇时代文化传媒有限公司招聘劳务派遣人员1名模拟试卷及答案详解(夺冠)
- 2025年天津市和平区面向甘肃白银会宁籍招聘事业单位工作人员考前自测高频考点模拟试题附答案详解(考试直接用)
- 2025河北张家口市专职消防队伍管理中心第一批政府专职消防员招聘160人模拟试卷及答案详解(夺冠系列)
- 2025年4月广东深圳市第二特殊教育学校面向2025年应届毕业生赴外招聘教师4人模拟试卷及答案详解(有一套)
- 2025湖南雪峰山高铁索道有限责任公司招聘考前自测高频考点模拟试题带答案详解
- 2025华润怡宝饮料(六安)有限公司招聘笔试题库历年考点版附带答案详解
- 2025供应商合同管理协议
- 2025建筑施工安全设施租赁协议合同
- 测绘新技术之无人机的
- 2025年新九年级数学暑假衔接讲练 (人教版)专题07 一元二次方程单元测试 (学生版)
- 气象灾害应急管理课件
- 地铁站消防维保施工方案及技术措施
- 国庆司机安全培训
- 既有建筑抗震加固性能化设计规程T-ZCEAS 1001-2024知识培训
- 十五五住房和城乡建设发展思路
- 马克思主义经典原著选读-1
- T/CUWA 60055-2023城镇排水管道螺旋缠绕内衬法修复用硬聚氯乙烯(PVC-U)带状型材
- 《职业生涯概述》课件
- 企业会计准则实施典型案例
评论
0/150
提交评论