C语言讲稿(第一章)_第1页
C语言讲稿(第一章)_第2页
C语言讲稿(第一章)_第3页
C语言讲稿(第一章)_第4页
C语言讲稿(第一章)_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言程序设计1 用于描述计算机程序的符号系统。 C就是这样的一种计算机高级程序设计语言。程序设计语言程序 计算机的指令序列、或者符号化的指令序列、或者语句序列。程序设计编写、调试程序的过程。2程序设计的具体步骤:a) 分析问题,收集数据,建立模型 ;b) 根据模型,拟定解题的算法 ;c) 选用某种计算机语言描述该算法 ;d)上机调试运行程序,分析结果 。3学习、使用C语言的理由 1) 贝尔实验室的 Dennis Ritchie 在 1972 年开发 C 的初衷只是作为开发 UNIX 的工作语言 ( 开发UNIX 的一种工具 ) 。但在过去的 30 多年中, C已经成为 一种最重要和最流行的计

2、算机高级程序设计语言。说明它有很强的生命力, 深受欢迎。4 2) C 已经开始进入长期以来一直属于 FORTRAN 科学计算的编程领域。和 FORTRAN一样,用C同样能够容易编写出简洁、易读、高效的科学计算问题的应用程序。 3) 作为一种流行语言,现今大多数文献资料中的算法描述,一般都采用C来进行。这种现象说明,C 在各种领域中已被公认为一种通用语言。 可以利用它来解决各种实际问题:5C 语言6 事实上,目前最著名、最有影响、应用最广泛的Windows、Linux和Unix三个操作系统都是用C语言编写的。既然如此庞大复杂的OS都可以用C语言编写,那么还有什么系统软件和应用软件不能用C语言编写

3、呢?由此可以肯定的说, C语言是一种十分优秀的计算机程序设计语言。7 4) C 在软件产业中, 是一种重要的必备技能。在最想获得的技能中, 它一般都列在前 10 名。特别在当今嵌入式系统的编程中已经离不开C 。也就是说,它将用来在汽车、相机、DVD播放机及其他各种各样的现代化设备中,作为微处理器的编程工具。因此, 至少在 21 世纪的前15 年中,它仍将保持强劲的势头。8 5) 在过去的10年中, 许多人从C转而使用更强大的C+语言。 C+ 向C嫁接了面向对象的编程工具,C+ 实际上是C的一个超集, 意味着任何C 程序也是C+ 程序。学习C 就是在学习C+的基本知识。 因此,不管C+ 这样较新

4、的语言如何流行,学习C 是通往C+ 的必由之路。9 6) 既然C+是C的超集,有人可能会建议不如一步到位直接学习 C+。 根据我们的经验,C+ 对初学者来说可能太过于复杂,刚开始学习编写程序 , 就不得不接触令人恐惧的Windows API,这可能会欲速而不达。因此,还应该先从基本学起。这样可为进一步学习C+及其他语言打好基础。10 7) 有些人对C存有一种偏见, 认为C是 DOS 时代的东西,现在是Windows时代了,还用得着学习C语言吗?其实C 语言的编程环境有很多选择,如果您想摆脱DOS , 进入 Windows 编程领域, 完全可以选用 一种 Windows 平台下的编译工具。 8)

5、 C 语言是各种计算机基础知识和应用能力等级考试指定的程序设计语言之一,学习这门课后, 你可以去应付诸如此类的各种考试。11 总之, C是重要的编程语言。如果您去应聘编程工作,大概您被问的第一个问题就是 : “请问,您会使用C 吗?” 9) C语言是几门后继计算机课程的基础。例如数据结构,其中的算法都是以C或C+ 描述的。 这对学好相关的后继课程是必须且有很大帮助的。12 学习C语言的方法 C程序设计是一门实践性很强的课程, 既要掌握概念又要动手编程,还要上机调试程序。 1) 一定要重视上机实践环节。上机会帮你巩固概念, 掌握语法。 实际上C 编译程序是最好的老师,它会详细的给你解释程序中所有

6、的问题 。 包括出错的原因,位置等等。 一定要认真阅读C编译程序给出的信息, 按提示纠正所有的错误。13 2) 像学习游泳那样来学习C语言程序设计。学习游泳有两种方法: 一种是先站在岸上看别人是如何游的 , 看得差不多了再下水游, 这种方法可能少走弯路, 学起来可能也快但不深刻。 本教材配有C程序设计题解与上机指导可以模仿。 另一种方法是不管三七二十一 ,先跳下水去游两下再说, 当喝了几口水之后,上岸来冷静思考一下问题出在什么地方, 然后再下水去游, 如此反复, 你最终会掌握游泳技术,而且会非常深刻。14 3) 尝试多种方法。 某一个问题可能有多种解决方法,不要问题一解决就心安理得,应该寻求最

7、好的方法。这就与画画一样,同一幅画,不同的人可能画出不同的效果,有人画的很精湛,而有人则画的很烂。但我们建议不要刻意去精雕细刻,讲究的是方法而不是让别人甚至过了一段时间连自己都看不懂。我们学习 C不是去准备参加 C的模糊代码竞赛。15 4) 养成良好的编程习惯及风格。 首先要弄清问题,然后收集数据,拟定算法,画出流程,再着手编程。 否则往往事倍功半。 程序要清晰易懂,易修改。按规范化的方式书写。适当插入空行、空格、及程序注解。 程序中要反复使用的程序段应写成函数,且要尽量使用库函数。 16第1章 C语言概述 1962年开发,面向问题求解过程、适合数值计算、结构严谨的算法语言。 不能直接操作硬件

8、,不适合写系统软件。1.1 C语言出现的历史背景一、发展历史ALGOL ( Algorithmic Language )17 1970年,贝尔实验室的 Ken Thompson开发,实现了第一个UNIX 操作系统。 1963年剑桥大学开发的,能够直接对硬件进行操作的语言。CPL ( Combined Programming Language )BCPL ( Basic CPL ) 1967年由 Martin Richards 根据CPL改写的,能够直接进行硬件操作的无类型语言。B语言18C语言 1972年,贝尔实验室的W . Kernighan 和D. M. Ritchie 扩充、 改进了形成

9、了语言,并用C改写了UNIX 90% 的代码。C+语言 1980年,贝尔实验室的B .Troustrup及同事改进和扩充了C,把 Simula-67 中的类概念(class) 引入C中, 83年 Rick Maseitti提议将改进后的C语言命名为C+ 。19二、C语言标准1978年,Brian W.Kernighan 和 D . M . Ritchi合写的 The C Programming Language 名著,称为: K&R C ( 当时公认的C语言标准 ) 1987年,ANSI 为 C 语言制定了统一标准,称为: 87 ANSI 标准 C 1989年,ISO为C 语言制定了国际标准,

10、称为:C89 1999年,ISO 为 C 语言制定了新的国际标准,称为:C9920 1.2 C语言的特点1) 结构化程序设计语言。2) 中级语言。3) 模块化程序结构。4) 可移植性好。5) 运算符丰富(特别是指针与位运算)。6) 数据结构丰富。 7) 可直接操作硬件。8) 语法限制松,表达自由度与灵活性大。21 与所有其他程序设计语言一样,当然C语言也有它的不足之处:1) 语法不太严格,灵活性大,调试程序困难。2)不进行运行时的错误检查。3)非强类型语言,类型转换随便。4)运算符分级较多、程序难理解。因此,C 有一年一度的“含糊代码” ( Obfuscated Code )竞赛。 22 1.

11、3 简单的C程序介绍 #include main ( ) int number ; printf ( “books = ” ) ; scanf ( “%d”, &number ) ; printf ( “我有%d本书n” , number ) ; 一、程序举例例1: 一个简单的程序23 S1: 输入三个实数 ; S2: 求和并计算和的平方根 ; S3: 计算三个数中的最小值 ; S4: 输出结果 。 例2: 输入三个实数,求它们和的平方根 , 输出 这三个实数中的最小值。算法: 源程序如下:24 /* This is an example */ #include #include float

12、min ( float a , float b , float c ) ; main( ) float n1 , n2 , n3 , st , smin ; printf ( “ Input 3 real numbers: ” ) ; scanf ( “%f %f %f ”, &n1 , &n2 , &n3 ) ; st = sqrt ( n1 + n2 + n3) ; smin = min ( n1 , n2 , n3) ; printf(“ n sqrt is %f n the min is %f ”, st , smin ) ; 25float min ( float a , float

13、 b , float c ) if ( a = b & a = c ) return a ; else if ( b = a & b = c ) return b ; else return c ; n1 n2 n326二、C语言源程序的结构与组成 file1 . c file2 . c file3 . c filen . c 一个完整的C源程序由一个或若干个源程序文件组成:27 其中,一个C源程序文件由一个或若干个函数定义、外部对象声明与说明及预处理命令组成:28 函数是完成特定算法的程序段,由函数头部和函数体组成。 函数头部包含有函数名、存储类型、函数类型及参数说明。 函数体是一个分程序(

14、 一对 括住的部分),其中包含一些 ( 也可以没有任何内容) 声明、说明语句和动作语句。函数的一般定义形式:2930注意:1) 这些源文件中必须含有一个,也仅能含有一个称为main的函数(主函数);主函数在源文件中的位置不限,不必是源程序文件中的第一个函数。2) 一个C程序可放在一个或多个源文件中;3) 不能将一个函数跨放在两个不同的源文件中;4) 最简单的情况, 一个C程序由一个源文件组成 , 该文件中只有一个函数,即 main 函数。5)函数体内不能再定义其他函数!31三、C程序的执行 程序总是从main的第一个动作语句开始执行,其中可以调用其他函数。 除main函数外,所有其他函数都可以

15、相互调用,且可以自己调用自己。 main函数只能调用其他函数,不能调用自己。 在正常情况下,执行完main的最后一条语句,则整个程序执行结束。(但也可能通过其他手段非正常结束程序运行)32四、C程序的书写格式 书写格式自由,可从一行的任何位置开始书写。 一行可写多条语句,一条语句也可写在多行上,但不能在有独立含义的语言元素等对象(标识符、关键字、运算符、常数等)中间拆分,如果必要则可以用反斜杠符号“”来处理续行。 应在适当位置插入适量空格和空行, 它们对程序没有影响,但不能在有独立含义的语言元素等对象中插入空格。33 可在程序中任何需要的地方以 /*/ 形式插 入注解, 注解不能嵌套 。注解的

16、位置(除 “有独立含义的地方 ” )、与多少对程序没有影响, 编译时它们将被忽略。 C语言区分大小写字母。如: aBc不同于 abc 。 语句、 变量声明、 及变量说明的最后必 须以分号结束 “ ;” ,但函数定义的头部后不能有分号。 预处理命令后不能有分号( 因为它们不是C 语言的语言成 分)。34 1.4 C程序的开发与上机步骤35 一、TC2.0 程序上机开发步骤 启动运行集成开发软件 输入源程序,修改,保存到文件 (如 a . c ) 执行 “编译” 命令(Compile)。预处理程序对源程序作预处理;编译程序对源程序作语法检查;若编译成功,则生成目标代码文件(如a . obj)否则转

17、到步骤 ,修改源代码 。 执行 “连接” 命令( Link )。连接目标代码与库函数代码,若连接成功,则生成可执行程序文件(例如,a . exe), 否则转到步骤 , 修改源代码 。 执行生成可执行程序的命令(make EXE file) 退出集成开发环境软件。 执行RUN命令(注:RUN= Compile+ Link+ make)36 其实在TC2.0 环境下可以使用如下最简单的步骤开发C程序: 启动运行集成开发软件,编辑程序文件 执行RUN命令(RUN= Compile+ Link+ make) 或直接按 Ctrl+F9 执行RUN菜单下的“user screen”命令,查看程 序运行结果

18、。或直接按 Alt+F537二、Turbo C开发环境的使用 F1 获得相关帮助信息。 F2 将编辑的文件存盘。 F5 放大/缩小活动窗口。 F6 开/关窗口(在edit窗口与message窗口之间切换)。 F7 在调试方式下运行程序,每次执行一行。也跟 踪进入被调用的函数。 F8 在调试方式下运行程序,每次执行一行。不跟 踪进入被调用的函数 。 Turbo C开发环境中常用的功能键与热键38 Ctrl-F2 中止当前调试( 相当于 Program Reset 命令)。 Ctrl-F9 运行程序。编译、 连接、装入及运 行操 作同时完成,相当于Run命令。 Alt-F5 回到用户屏幕,查看程序运行结果。 Alt-F9 仅编译,生成 .obj 文件。39 Ctrl-Y 删除一行 Ctrl-N 插入一空行 Ctrl-QF 查找 Ctrl-I 重复上次查找 Ctrl-QA 查找并替换 常用编辑命令40 Ctrl-KK

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论