网络技术讲义 - 0_引论_第1页
网络技术讲义 - 0_引论_第2页
网络技术讲义 - 0_引论_第3页
网络技术讲义 - 0_引论_第4页
网络技术讲义 - 0_引论_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

C 语言程序设计 主讲 赵慧明 2020年4月6日星期一2时39分29秒 一 教材 C 程序设计教程 钱能主编 清华大学大学出版社 二 参考书 1 C 语言基础教程 吕凤翥著 清华大学出版社 2 C 语言习题与解析 李春葆著 清华大学出版社 3 VisualC 程序设计基础 戴锋编著 清华大学出版社 5 VisualC 6 0程序设计 入门篇 乔林杨志刚何敏编著 中国铁道出版社 6 ThinkinginC BruceEckel C 编程思想 刘宗田等译 机械工业出版社 2000 三 关于本课程的说明 1 这里所讲的内容以及课本的第18 21章都是C 的基本知识 是面向对象程序设计的基础 仅有这些知识是远远不够的 还不足以编写基于Windows的C 应用程序 2 由于学时限制 以自学为主 讲课为辅 课堂只讲语法结构形式 重点和难点 3 C 程序设计是 操作系统 和 数据结构 两门课程的先修课程 应该认真学好 4 学好C 程序设计不易 C 是计算机语言中较难的语言 语法灵活 易出错 应多练多思考 认真做好实验 实现某一功能的C 程序可以有多种写法 应尽可能地找出最简短的算法 学会 偷懒 5 在学好C 程序设计的基础上可以很容易地学会目前最流行的主要编写面向网络的纯面向对象编程语言 Java和C 第一章C 语言概述 语言的共性 彼此交流信息的工具 用于表述一个完整的概念 组成要素 词汇 句法 文法 计算机语言的特点 是人和机器 计算机 交流信息的工具 是人为设计的一种算法语言 用于表述一个完整的运算 是人对计算机下达的命令序列 程序的编写语言 也由词汇 保留字和运算符 句法 程序语句构成规则 文法 程序构成规则 三个基本要素组成 一 C 语言的发展简史1 1960年 ALGOL60语言 在程序内部对变量实施隔离 提出块结构 begin end 思想 对数据实行了保护 这实际上是一种初级的封装 2 1963年 以ALGOL60为基础 推出了CPL语言 英国剑桥大学3 1967年 MartinRichards简化CPL语言 推出BCPL语言 英国剑桥大学4 1970年 KenThompson以BCPL语言为基础开发出B语言 美国BELL实验室5 1972年 DennisRitchie以B语言为基础在DECPDP 11计算机上研制出C语言 并以它作为UNIX系统的计算机程序设计语言 美国BELL实验室6 1980年 BjarneStroustrup在新泽西的BELL实验室对C语言扩充 取名为 带类的C 1983年 改名为C 7 1994年 制定了ANSIC 标准草案 二 C和C 标准1989年 美国国家标准协会制定了C语言标准 ANSIC1994年 美国国家标准协会制定了C 标准 ANSIC 三 三本经典的著作1978年 Kernighan和Ritchie TheCProgrammingLanguage 全面介绍了传统的C1988年 Kernighan和Ritchie再版 TheCProgrammingLanguage 全面介绍ANSIC 1998年 Stroustrup TheC ProgrammingLanguage 第三版 四 C语言的特点1优点1 语言简洁 紧凑 使用方便 灵活 只有32个关键字 程序书写自由 2 丰富的运算符和数据结构 3 可以直接访问内存地址 能进行位操作 WindowsNT 2000 XP运行在保护模式下 不允许直接对硬件操作 4 目标代码质量高 运行效率高 5 可移植性好 2缺点1 检查机制弱 易出错 如数组越界 2 代码可重用性差 3 能开发的应用程序规模小 一般为5 10万行 超出此规模时就很难控制程序的复杂性 五 C 语言的特点1 保持了与C的兼容性 是C的超集 是面向对象的程序设计语言 2 增加了新运算符 如 new delete等 3 增强了安全性 增强了类型检查能力 如函数必须用原型 缺省类型加了限制等 4 引进了引用概念 5 变量说明更加灵活 为什么C 会成功 1 较好的C2 采用渐进的学习方式3 运行效率4 系统更容易表达和理解5 库 使你事半功倍6 错误处理7 大程序设计 六 C 与C的本质区别C是面向过程的 C 在对C改进的基础上又增添了支持面向对象 OO 的新内容 因此C 既支持面向过程 又支持面向对象 一般我们认为C 是面向对象的程序设计语言 非纯面向对象 七 主要的C 语言版本1 VisualC 2 BorlandC 和C Builder 八 C 语言程序的构成 简单实例 最简单的程序 helloprogram includevoidmain cout hello everyone endl 一个简单运算程序 asimpleprogramcopyrightreserved2003年8月30日 includeintmax int int voidmain inta b d cout a b d max a b cout maxofa bis d intmax intx inty intz if x y z x elsez y return z C 程序的组成特点 三部分 注释 预处理 程序体1 C 程序是由函数构成的 main max 2 一个函数由两大部分组成 函数说明部分 函数名 函数类型 返回值的类型 函数参数 形参 用于传递数据 名及类型 函数体 由变量定义部分和执行部分两部分构成 3 所有语句都必须以分号 结尾 4 函数中的所有变量使用前必须先定义 5 函数中的语句按出现的先后顺序执行 6 一个C 程序中必须有一个且只能有一个main 函数 程序的执行首先从main 函数开始 7 C 程序通过头文件包含 include 公用函数和外函数 以减少编程量 扩大程序功能 8 C 程序书写格式自由 一行可写多句 一句也可分多行来写 函数在程序中的位置任意 9 可以用 对C 程序中的任何部分做注释 或用 对一行的内容进行注释10 C 语言本身没有输入输出语句 C 语言程序的一切功能都是由函数来完成的 九 编译预处理C 语言提供了三种编译预处理功能 1 文件包含 include2 条件编译 if ifdef ifndef else3 宏定义 define说明 C 语言在基本命令及基本语法规则之外 另提供了上述三种命令 在源程序被编译时执行 它们是指导编译程序编译过程的命令 而不是程序命令 编译命令的标志是 符号 文件包含形式 include 文件名 或 include意义 一个源文件将另一个源文件的全部内容包含进来 组成一个新的源文件 一个编译单位 说明 1 一个源文件可用n个 include命令同时包含另外n个源文件 若被包含的文件1中含有对文件2中内容的使用 则应在文件1前 先包含文件2 2 被包含的文件中又可以包含另一个文件 即文件包含可以嵌套 3 当有重复包含时 则只包含第一次 4 双引号 表示先到当前源文件的目录中查找被包含文件 若没有 然后再到标准路径中查找 5 书名号表示只到标准路径中查找被包含文件 标准路径有系统指定 条件编译提供对源程序的内容进行有选择的编译 形式1 ifdef标识符程序段1 else程序段2 endif意义 标识符若被定义过 编译程序段1 否则编译程序段2 形式2 ifndef标识符程序段1 else程序段2 endif意义 标识符若未被定义过 编译程序段1 否则编译程序段2 宏定义形式1不带参数的宏定义 define宏名字符串形式2带参数的宏定义 define宏名 参数表 字符串作用 以后程序中凡出现宏名的地方编译前都用字符串取代后再执行编译 但程序中与宏名相同的字符串 双引号内的宏名 不会被置换 说明 1 空格是宏名和字符串之间的唯一区分标志 宏名本身不能包含空格 2 编译前代换时 字符串原样置换 有错不检查 3 带参宏置换时 用实参 常量 置换字符串中宏定义时的形参位置 而不是值传递 4 宏名有效范围为从定义处到本源文件结束处或到 undef宏名命令处 5 宏定义时 可以引用已定义的宏 6 宏名一般大写 举例 include stdio h include conio h definePI3 1415926 defineARE S1 S2 S3 L1 L2 L R S1 L1 L2 S2 L L S3 PI R Rvoidmain floatr l l1 l2 s1 s2 s3 r 1 l1 2

温馨提示

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

评论

0/150

提交评论