谭浩强 C程序设计第三版第章ppt课件.ppt_第1页
谭浩强 C程序设计第三版第章ppt课件.ppt_第2页
谭浩强 C程序设计第三版第章ppt课件.ppt_第3页
谭浩强 C程序设计第三版第章ppt课件.ppt_第4页
谭浩强 C程序设计第三版第章ppt课件.ppt_第5页
已阅读5页,还剩21页未读 继续免费阅读

VIP免费下载

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

文档简介

C 第三版 谭浩强著 1 目录 第1章C语言概述第2章程序的灵魂 算法第3章数据类型 运算符与表达式第4章最简单的C程序设计 顺序程序设计第5章选择结构程序设计第6章循环控制 2 第7章数组第8章函数第9章预处理命令第10章指针第11章结构体与共用体第12章位运算第13章文件第14章常见错误和程序调试 3 第1章C语言概述 1 1C语言出现的历史背景1 2C语言的特点1 3简单的C程序介绍1 4运行C程序的步骤与方法 4 1 1C语言出现的历史背景 在C语言诞生以前 系统软件主要是用汇编语言编写的 由于汇编语言程序依赖于计算机硬件 其可读性和可移植性都很差 一般的高级语言又难以实现对计算机硬件的直接操作 于是人们希望有一种兼有汇编语言和一般高级语言特性的新语言 C语言在这种情况下应运而生 C语言是贝尔实验室于70年代初研制出来的 后来又被多次改进 并出现了多种版本 80年代初 美国国家标准化协会 ANSI 根据C语言问世以来各种版本对C语言的发展和扩充 制定了ANSIC标准 目前流行的C语言编译系统大多是以ANSIC为基础进行开发的 5 C语言是国际上广泛流行的计算机高级语言 它适合作为系统描述语言 既可以用来编写系统软件 也可以来编写应用软件 C语言的前身是B语言1960ALGOL60离硬件远 不宜编写系统程序1963CPL离硬件近 但规模较大 难以实现1967BCPL对CPL做了简化1970贝尔实验室以BCPL语言为基础 进一步简化 设计出了很简单的而且很接近硬件的B语言 并用B语言编写了一个UNIX操作系统 在PDPT上实现 此时的B语言过于简单 功能有限1972 1973年间 贝尔实验室的D M Ritchie在B语言的基础上设计出了C语言 BCPL 6 C语言既保持了BCPL和B语言的优点 精炼 接近硬件 又克服了它们的缺电 过于简单 数据无类型等 最近的C语言只是为描述和实现UNIX操作系统提供一种工作语言而设计的 UNIX原用汇编写的 后90 用C编写 后来 C语言多次作了改进 但主要还是在贝尔实验室内部使用 直到1975年UNIX第6版发布后 C语言的突出优点才引起人们的普遍注意 1997年出现了不依赖于具体机器的C语言便以文本 可移植C语言编译程序 使C语言移植到其他机器时所需做的工作大大简化了 这也推动了UNIX操作系统迅速的在各种机器上实现 随着UNIX的日益广泛使用 C语言也迅速得到推广 C语言和UNIX可以说是一对孪生兄弟 在发展过程中相辅相成 7 1978年以后 C语言先后移植到大 中 小型计算机上 已独立于UNIX和PDP了 C语言便很快风靡全世界 成为世界上应用最广泛的几种计算机语言之一 1983年 美国国家标准化协会 ANSI 根据C语言问世以来各种版本对C语言的发展和补充 制定了新的标准 成为ANSIC ANSIC比后来的标准C有了很大的发展 1987年 ANSI又公布了新标准 87ANSIC1990年 国际标准组织ISO接受87ANSIC为ISO的标准 1994年 ISO修订了C语言标准 目前流行的C语言编译系统大多是以ANSIC为基础进行开发的 但不同版本的C编译系统所实现的语言功能及语法规则又略有差别 本书基本上已ANSIC为基础 8 1 2C语言的特点 一种语言之所以存在和发展 并具有较强的生命力 总之有起不同于 或优于 其他语言的特点 C语言的主要特点如下 语言简洁 紧凑 使用方便 灵活 C语言一共只有32个关键字 9种控制语句 程序书写形式自由 主要用小写字母表示 压缩了一切不必要的成分 比其他许多高级语言简洁 源程序短 因此输入工程时工作量少 9 运算符丰富 C的运算符包含的范围很广泛 共有34种运算符 C把括号 赋值 强制类型转换等都作为运算符处理 从而使C的运算类型极其丰富 表达式类型多样化 灵活使用各种运算符可以实现在其他高级语言中难以实现的运算 数据结构丰富 具有现代化语言的各种数据结构 C的数据类型有整型 实型 字符型 数组类型 指针类型 结构体类型 共用体类型等 能用来实现各种复杂的数据结构 如链表 树 栈等 的运算 尤其是指针 只C存在于C语言和Pascal语言中 10 具有结构化的控制语句 如if else语句 while语句 do while语句 switch语句 for语句 用函数作为程序的模块单位 便于实现程序的模块化 C是良好的结构化语言 符合现代编程风格的要求 生成目标代码质量高 程序执行效率高 C语言一般只比汇编程序生成的目标代码效率低10 20 11 语法限制不太严格 程序设计自由度大 一般的高级语言语言语法检查比较严格 能检查出几乎所有的语法错误 而C语言允许程序员有较大的自由度 因此放宽了语法检查 程序员应当仔细检查程序 保证其正确 而不要过分依赖C语言编译程序去查错 限制 与 灵活 是一对矛盾 一个不熟悉的人员 编一个正确的C语言程序可能比编一个其他高级语言程序难一些 也就是对C语言的人 要求对程序设计更熟练一些 例如对数组下标越界不做检查 由程序编写者自己保证程序的正确 对变量的类型使用比较灵活 例如整型数据与字符型数据可以通用 12 C语言允许直接访问物理地址 能进行位 bit 操作 能实现汇编语言的大部分功能 可以直接对硬件进行操作 因此C语言既有高级语言的功能 又具有低级语言的许多功能 可用来编写系统软件 C语言的这种双重性 有人把它成为 高级语言中的低级语言 或 中级语言 用C语言写的程序可移植性好 与汇编语言比 基本上不作修改就能用于各种型号的计算机和各种操作系统 13 从应用方面来看 语言较难学 初学者 BASICFORTRAN科学计算 FORTRAN数据处理 COBOL 银行系统 系统软件 语言有些大型软件 C语言教学角度 PASCAL 单一结构化语言 但大多数高校已用C语言取代了PASCAL语言 14 目前C语言成了学习和使用人数最多的一种计算机语言 熟练掌握C语言成为计算机开发人员的一项基本功 近年来 面向对象的C 语言在我国逐渐得到推广 但是不应认为 C过时了 应学C 不学CC 是为解决编写大型软件的问题而产生的 学起来比C语言困难得多 将来并不是所有的人都去编写大型软件 因此 在发达国家的大学中 C语言仍是一门重要的课程 是大学生的一种基本的选择 掌握了C 日后再学C 是不会太困难的 15 1 3简单的C程序介绍 下面介绍几个简单的C语言程序 然后从中分析C语言程序的特点 例1 1 输出一行信息 本程序的作用是输出以下一行信息 ThisisaCprogram includevoidmain printf ThisisaCprogram n 16 例1 2 求两数之和 本程序的作用是求两个整数a和b之和sum 程序运行时输出以下信息 sumis579 includevoidmain 求两数之和 inta b sum 这是声明部分 定义变量a b sum为整型 a 123 b 456 以下3行为C语句 sum a b printf sumis d n sum 17 例1 3 求2个数中较大者 includevoidmain 主函数 intmax intx inty 对被调用函数max的声明 inta b c 声明部分 定义变量 scanf d d 将z的值返回 通过max带回调用函数的位置 18 例1 3中程序包括两个函数 主函数main和被调用的函数max max函数的作用是将x和y中较大者的值赋给变量z return语句将z的值返回给主调函数main 返回值是通过函数名max带回到main函数的调用处 程序第4行是对被调用函数max的声明 main函数中的scanf是 输入函数 的名字 程序中scanf函数的作用是输入a和b的值 a和 b中的 的含义是 取地址 此scanf函数的作用是将两个数值分别输入到变量a和b的地址所标志的单元中 也就是输入给变量a和b 程序第7行为调用max函数 在调用时将实际参数a和b的值分别传送给max函数中的形式参数x和y 经过执行max函数得到一个返回值 即max函数中变量z的值 把这个值赋给变量c 然后输出c的值 printf函数中双引号内的 max d n 在输出时 将 max 原样输出 d 将由c的值取代之 n 执行换行 19 通过以上几个例子 可以看到 C程序是由函数构成的 一个C源程序至少且仅包含一个main函数 也可以包含一个main函数和若干个其他函数 因此 函数是C程序的基本单位 被调用的函数可以使系统提供的库函数 也可以是用户根据需要自己定义的函数 编写C程序就是编写一个个函数 ANSIC提供一百多个库函数 Tuboc提供三百多个库函数 一个函数由两部分组成 1 函数的首部 即函数的第一行 包括函数名 函数类型 函数属性 函数参数 形参 名 参数类型 例如 例1 3中的max函数的首部为intmax intx inty 函数类型函数名函数参数类型函数参数名函数参数类型函数参数名2 函数体 即函数首部下面的大括弧 内的部分 如果一个函数内有多个大括弧 则最外层的一对 为函数体的范围 函数体一般包括 声明部分 执行部分 20 一个C程序总是从main函数开始执行的 而不论main函数在整个程序中的位置如何 main函数可以放在程序最前头 也可以放在程序最后 或在一些函数之前 在另一些函数之后 C程序书写格式自由 一行内可以写几个语句 一个语句可以分写在多行上 没有行号 每个语句和数据定义的最后必须有一个分号 分号是C语句的必要组成部分 C语言本身没有输入输出语句 输入和输出的操作是由库函数scanf和printf等函数来完成的 可以用 对C程序中的任何部分作注释 一个好的 有使用价值的源程序都应当加上必要的注释 以增加程序的可读性 21 1 4运行C程序的步骤与方法 在编好一个C源程序后 如何上机运行呢 在纸上写好一个程序后 要经过以下几个步骤 上机输入与编辑源程序 对源程序进行编译 与库函数连接 运行目标程序这样几个步骤 以上过程如图1 1所示 其中实线表示操作流程 虚线表示文件的输入输出 图1 1 22 一 运行C程序的步骤 上机输入程序 对源程序变异 与库函数链接 运行目标程序 源程序文件为 C 编译后得到目标文件 obj 与库函数连接后 得到可执行的目标程序为 exe最后运行 exe 二 上机运行 程序的方法 机房已经安装TurboC环境以下按此版本讲授VC 等有导论讲 进入TurboC环境 点Windows桌面左下角的 开始 按钮 鼠标移到 程序 按钮 在右边菜单中找c 命令提示符 单击或者移到运行单击 在窗口中输入cmd 按确定 此时在DOS状态下 输入DOS命令CD TC按回车 TC按回车进入TC

温馨提示

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

评论

0/150

提交评论