




已阅读5页,还剩64页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C程序设计教程 高等学校计算机基础教育教材精选崔武子赵重敏李青著 第1章C语言基础知识 1 1C语言概述1 2简单C程序与上机步骤1 3数据类型1 4常量与变量1 5运算符和表达式 1 1C语言概述 1 1 1C语言的发展1 1 2C语言的特点1 1 3C程序的执行1 1 4C程序形式和程序执行过程 1 1 1C语言的发展 人和计算机交换信息用到的语言称为计算机语言 为了解决某一特定问题用某一种计算机语言编写的指令序列称为程序 1 1 1C语言的发展 1 程序设计语言的发展 1 机器语言a 形式特点 由0 1序列组成的指令系统b 不需要任何翻译工作 执行效率高c 难记 难认 难理解 程序开发效率底 易出错 难调试d 不同的计算机结构具有不同的指令系统 不同的机器具有不同的语言 10000000加10010000减 1 1 1C语言的发展 2 汇编语言 符号语言 a 形式特点 由一套简单的助记符来表示不同的机器指令b 需要相应的翻译机制 汇编系统 c 抽象层次高一些 容易理解些 程序生产效率高d 不同的计算机结构具有不同的汇编系统 源程序 汇编语言 汇编系统 目标程序 机器语言 1 1 1C语言的发展 3 面向过程的高级语言 算法语言 3GL a 形式特点 更接近于人们通常数学计算公式的描述b 需要更高级的翻译系统 编译系统compler c 表达能力强 编程效率高d 不依赖于具体的机器 依赖于不同机器上的编译系统 不同机器上的编译系统是有差异的 1 1 1C语言的发展 4 非过程化的高级语言 4GL 过程化语言 用语言描述怎样做的过程 非过程化语言 只要告诉计算机做什么 其它方面的特点与面向过程的高级语言相同 非过程化的高级语言的几种类型 a 4GL VB VCb 逻辑性语言 PROLOGc 面向对象语言 SmallTalk C语言的发展过程 C语言的出现是与UNIXOS紧密联系在一起的 随着UNIXOS的成功和在国际上的广泛流行 C语言在软件工程里越来越受到重视 C语言本身也有一个发展过程 目前仍处于发展和完善过程中 语言的 家谱 如下图所示 ALGOL60 1960 Algorithmlanguage 由国际委员会设计 比Fortran出现的晚 但比Fortran精致和完善 由于它抽象 庞大而没有得到推广和流行起来 CPL 1963 CombinedProgrammingLanguage 比ALGOL大 功能强 难以学习 难以实现 BCPL 1967 BasicCombinedProgrammingLanguage 剑桥大学的MartinRichards研制 目的是把CPL加以浓缩 使得既保持CPL的基本特性 又易于学习 实现 B 1970 取BCPL的第一个字母 由美国Bell实验室的KenThompson研制 对BCPL进一步简化 用B语言写出了第一个UNIXOS并在PDP 7机上实现 由于B语言采用按字编址 不适合PDP 11按字节编址进行存取的要求 B还缺乏一定的数据类型的表达能力 编译产生的是解释执行代码 速度慢 这是B发展的主要障碍 C语言的发展过程 C 1972 取BCPL的第二个字母 BellLab的D Ritchie研制 改进了B的数据结构 追求的目标 保持了BCPL和B的精练性和接近机器硬件的优点 恢复其通用性 使其简洁 灵活 高效 可移植 1973年 UNIX在C语言改写的环境下 加进了多道程序的功能 70年代中期 UNIX和C得到了广泛的应用 受到了越来越多的人的关注 UNIX公认为第一标准的操作系统 语言成为 近十年来对计算机程序设计实践最重要的贡献之一 成为微机 小型机 超小型机 大形机 巨型机上共同使用的一种语言 1983年 D Ritchie和Thompson获得ACM图灵奖 标准C 1978 以K R合著的 TheCProgrammingLanguage 一书中的C为基础 ANSIC 1983 美国国家标准化协会根据C语言问世以来各种版本对C的发展和扩充 制定了新的标准 称为ANSIC 比原来的标准C有了很大的发展 以标准C为基础 相应于不同的编译系统 产生了不同版本的C语言 如MSCTurboCUNIXC等 其基本语句相同 库函数不太相同 1 1 2C语言的特点 人们从不同的角度总结出C语言的许多特点 这些特点都基本上反映了 语言产生的环境 也体现了设计者所追求的目标 下面我们从 语言的发展与UNIX系统的关系来讨论C语言的特点 1 简洁 高效 灵活和强功能 C语言反映了设计者追求简洁 高效 灵活和强功能的程序设计思想 这设计目标体现在 a C语言程序以小写字母为基础 小写字母具有易读易写的特点 b 表达方式简洁 规整 C程序紧凑 c 表达方式灵活 C语言的特点 人们从不同的角度总结出C语言的许多特点 这些特点都基本上反映了 语言产生的环境 也体现了设计者所追求的目标 下面我们从 语言的发展与UNIX系统的关系来讨论C语言的特点 2 数据类型丰富 适应系统软件和应用软件开发的需要 在 中 数据类型的特点体现在 具有四种基本数据类型 整型 实型 字符型 枚举类型 多种组合类型 数组 结构 联合 指针类型 允许用户自定义类型 C语言的特点 3 C语言有丰富的运算符 34种 见附录 为了体现程序的结构化和模块化的现代软件工程思想 便于大型程序的设计 调试和维护 语言采取了如下措施 4 C语言是一种结构化语言 适合于大型程序的模块化设计 丰富的数据类型和运算符的结合使用 可以得到运算对象的值和流程的控制 体现C表达灵活和高效率的优点 C语言的特点 提供结构化程序所需要的基本控制流结构语句if else while do while for switch 程序以函数的集合构成 函数具有独立的功能 并作为模块化设计的基本单位 包含程序的源文件 一个程序可以分割成多个源文件 分别对各个源文件进行编译 然后通过链接得到可执行的目标程序文件 C语言的特点 5 C语言生成的代码质量高 直到现在汇编语言仍是编写系统软件的主要工具 实践证明 针对同一问题 用C语言描述其代码的效率只比汇编语言低10 20 语言成为人们描述系统软件和应用软件比较理想的工具 UNIX操作系统等软件都是用C语言写的 C语言的特点 可移植性是指程序可以从一个环境不加或稍加改动就可以搬到另一个完全不同的环境上运行 由于 语言的编译程序便于移植 使得在一个环境上用 编写的许多程序可以很方便地移植到另一环境上 6 可移植性好 C语言的特点 7 C语言已逐步发展为通用程序设计语言 目前 语言已独立于UNIX系统而蓬勃发展 语言已广泛用于办公自动化数据库系统 专家系统 知识工程等众多的领域中 C语言的缺点 运算符优先级太多 不便记忆 还没有一个一致公认的标准 C不是一个强类型的语言 类型检查太弱 转换比较随便 不太安全 C语言的缺陷主要反映在 1 1 3C程序的执行P2 C语言是由附录 中列出的32个关键字再加上语法规则构成的 1 1 3C程序的执行P2 C程序的执行过程 e1 c 编辑 编译 e1 obj 连接 e1 exe 运行 输出结果 1 1 4C程序形式和程序执行过程P2 例1 1 C语言程序示例程序如下 include includeintmysum intm intn main inta b x doublec y z c 4 0 y sqrt c a 10 b 20 x mysum a b z x y printf z lf n z intmysum intm intn intk k m n returnk 程序的运行结果是 z 32 000000 c 4 0 y sqrt c a 10 b 20 x mysum a b z x y main函数 本课程的目标 掌握解决简单问题的步骤 用C语言能够实现如下程度的功能 演示Yanshi exe执行时必须先选择创建菜单 1 2简单C程序与上机步骤P3 1 2 1简单C程序1 2 2上机步骤 1 2 1简单C程序P3 例1 2 编写在屏幕上显示一个句子 Let sstudytheClanguage 的程序 includemain printf Let sstudytheClanguage main是主函数名 有且仅有一个主函数 函数体 本函数体有一条输出语句 运行结果如下 Let sstudytheClanguage 不能丢 命令行 注意 区分大小写 例1 3 编写输出两个句子 Let sstudytheClanguage 和 It sinteresting 的程序 includemain printf Let sstudytheClanguage n 输出字符串后换行 printf It sinteresting n 运行结果如下 Let sstudytheClanguage It sinteresting 注意 书写格式 1 2 2上机步骤P5 请按教材上机实践例1 2例1 3 1 3数据类型 数据类型 基本类型 整型 整型 int 长整型 long 实型 浮点型 单精度型 float 双精度型 double 数值类型 字符类型 char 枚举类型 enum 构造类型 组合类型 数组类型结构体类型 struct 共同体类型 union 文件类型 file 指针类型 空类型 void 不返回任何类型的数据 1 3数据类型P7 例1 4 观察运行下面程序后sum和ave的值 includemain inta b sum floatave a 5 b 6 sum a b ave sum 2 printf d f n sum ave sum 11 ave 5 5 5 运行结果 11 5 000000 说明 常用数据类型 整型 实型 字符型 数组 结构体类型 指针类型等 一定要选择合适的数据类型 使用正确的输出格式说明 1 4常量与变量P8 1 4 1常量与变量的概念1 4 2整型常量与变量1 4 3实型常量与变量1 4 4字符型常量与变量 1 4 1常量与变量的概念P8 例1 5 编写输出1000和100的和与差的程序 include defineFIRST1000main ints s FIRST 100 printf s d n s s FIRST 100 printf s d n s 将用FIRST代替1000 变量 s 1100 s 900 变量的命名规则 变量名由a z A Z 0 9 组成 变量名的第一个字符不能是数字 C语言中关键字不能作为变量名 注意 区分大小写 例1 6 下面变量名中哪些是合法的 哪些是不合法的 Intfloat 1239kqbasicprintfa byearbusiness1business2 变量名要简单明了见名知意 不提倡用函数名 变量必须先定义后使用 main inta b a 5 b 6 intsum sum a b printf d n sum 下面程序是错误的 定义变量 inta 制造容器 变量的定义 多次赋值以及输出的全过程 不定值 a 5 5 a 6 6 printf a d a 输出a 6 注意 a代表存储单元6是存储单元中的内容 1 4 2整型常量与变量P10 1 整型常量整型常量不能带小数点 d 十进制形式输出 o 八进制形式输出 0101 x 十六进制形式输出 0 x5a2 问 printf d x 17 17 的运行结果 17 11 includemain inta 0101 b 0 x5a2 printf d 0 x n a a a printf d 0 x n b b b 运行结果是 65 101 411442 2642 5a2 例1 7 写出下面程序的运行结果 整型常量的常用类型 2 整型变量 整型变量中只能存放整型数据 整型变量的常用类型 基本型int 一般占2个字节 长整型long 一般占4个字节 定义变量时必须根据需要给出其类型 例1 8 写出下面程序的运行结果 includemain inta b longintc a 32767 b 32768 c 32768 printf d d ld n a b c 32767 32768 32768 注意 数据溢出 32768 3 变量初始化 在定义变量的同时给变量赋值 不能 b没有定义 1 4 3实型常量与变量P11 1 实型常量 例1 9 写出下面程序的运行结果 includemain printf f n 123451234512345 1 printf e n 12345 6788885 123451234512345 094000 按小数形式输出 1 实型常量 例1 9 写出下面程序的运行结果 includemain printf f n 123451234512345 1 printf e n 12345 6788885 123451234512345 094000 1 23457e 04 按指数形式输出 2 实型变量 实型变量中只能存放实型数据 单精度型float占4个字节有效位至少6双精度型double占8个字节有效位至少15实型变量无法精确地存放数据 会有误差 例1 10 观察下面程序的运行结果 includemain floata b doublec a 12 3 b 12345 67 c 12345 67 printf f n a printf f n b printf lf n c 12 300000 12345 669922 12345 670000 按双精度形式输出 1 4 4字符型常量与变量P13 1 字符型常量常规字符用单引号括起来的单个字符 转义字符用 开头的字符序列 字符常量按其ASCII码值参加整数运算 例1 11 观察下面程序的运行结果 includemain printf c d n a a printf d c n A 1 A 1 printf d n a A printf c c n 1 x1 printf c c n 25 x15 printf Iam OK n Iam OK 2 字符型变量 字符型变量char占一个字节 存放ASCII字符集中的任何一个字符 例1 12 观察下面程序的运行结果 includemain charc1 c2 A c3 intsum c1 65 c3 101 sum c2 30 printf c c n c1 c3 printf d d n c1 c3 printf sum d n sum sum 95 1 82 1 65 A A 65 65 1 5运算符和表达式P15 1 5 1算术运算符和表达式1 5 2赋值运算符和表达式1 5 3逗号运算符和表达式1 5 4自加 自减运算符 1 5 1算术运算符和表达式P15 加 减 乘 除 求余 求负 表达式2 3 5的值 5 5 表达式1 2的值 0 0 5 表达式1 2 0的值 表达式5 2的值 1 表达式2 5的值 2 说明 两侧运算量必须是整型 其他 若运算量都是整型 则按整型计算结果为整型若至少有一个为实型 则先转化为双精度型后计算结果为双精度型数据类型的转换规则如下 float int long double char 转 换 方 向 char float 2 算术表达式 假设a的值为5 写出表达式a 6
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 被告拒绝和解协议书
- 门店管理运营协议书
- 出租车司机购车协议书
- 邻居建房占地协议书
- 运输月结合同协议书
- 酒吧公司保密协议书
- 解除房屋转租协议书
- 酒店销售团队协议书
- 黄金现货买卖协议书
- 车载空调安装协议书
- 2024年安徽省初中(八年级)学业水平考试初二会考生物+地理试卷真题
- 2024年江西省中考生物·地理合卷试卷真题(含答案)
- DZ/T 0462.5-2023 矿产资源“三率”指标要求 第5部分:金、银、铌、钽、锂、锆、锶、稀土、锗(正式版)
- 诉讼与非诉讼衔接机制探讨
- 中国艺术史智慧树知到期末考试答案2024年
- 工厂生产计件方案
- 国际学生评估项目PISA 2006学生问卷
- (高清版)DZT 0130.9-2006 地质矿产实验室测试质量管理规范 第9部分:岩石矿物样品鉴定
- (高清版)TDT 1038-2013 土地整治项目设计报告编制规程
- 护理质控课件
- 空调维保服务方案(技术方案)
评论
0/150
提交评论