版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一章 c语言概述教材参考书课时安排C程序设计(第三版)谭浩强 清华大学出版社1、C语言程序设计教程 (第二版) 王敬华 清华大学出版社2、The C Programming Language Kernighan 清华大学出版社授课 :44学时上机 :16学时教材、参考书与课时安排要真正来回答这一问题,我们有必要了解程序设计语言的发展历史,知道C语言是属于那种类型的语言;C语言是如何产生和发展的,C语言的特点有哪些,它应用在哪些方面等,这样我们就可以做到学习目的明确,才能有意识地去学好C语言程序设计。c语言概述理由1:因为C语言流行.理由2:因为C语言考研时必考。理由3: 因为C语言在各种程序
2、考试中首当其中。理由4:因为它是必修课,是老师逼的,不学不能拿学分 理由n: 为什么我们要学习C语言呢?c语言概述了解程序设计语言的发展及其特点;了解C语言的发展历史及特点和应用;掌握C语言程序的基本结构;掌握编写C程序的基本步骤和调试过程。 学习目的:学习内容程序设计语言的发展及其特点1C语言的发展及其特点和应用2C语言程序的基本结构3编制C语言程序的基本步骤4c语言概述1.1 程序设计语言的发展及其特点机器语言汇编语言面向对象高级语言面向过程CPU指令系统,由0、1序列构成的指令码组成。用助记符号描述的指令系统,如ADD MOV等。 种类繁多程序设计是数据被加工的过程。客观世界可以分类,对
3、象是类的实例,对象是数据和方法的封装,对象间通过发送和接受消息发生联系。面向机器的语言1.1 程序设计语言的发展及其特点ALGOL6052 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96AdaALGOL68PascalModula-2CPL BCPL BCC+JavaLISPPROLOGCOBOLFORTRAN77FORTRANPL/1Simula 67Smalltalk 80BASICANSI-BASICQBASIC VBFORTRAN90学习内容C语言的发展及其特点和应用2程序设计语言的发展及其特点1C语言
4、程序的基本结构3编制C语言程序的基本步骤4c语言概述C语言发展史1.2 C语言的发展及其特点和应用一种面向问题的高级语言ALGOL 60语言63年剑桥大学Combined Programming LanguageCPL语言67年剑桥大学Matin Richards对CPL语言进行了简化BCPL语言70年贝尔实验室Ken Thompson将BCPL进行了修改B语言73年贝尔实验室D.M.Ritchie最终设计出了一种新的语言C语言C语言发展史产生目的UNIX操作系统产生时间1972-1973产生地点美国贝尔实验室设计人Ken.ThompsonDennis.M.RitchieC语言1.2 C语言的
5、发展及其特点和应用1.2 C语言的发展及其特点和应用Ritchie和Thompson在开发UNIX接受美国国家技术勋章 1990年国际标准的ANSI C87 ANSI C: 1987年ANSI C: 1983年标准C: K&R合著The C Programming LanguageC语言的标准1.2 C语言的发展及其特点和应用Borland C+Microsoft Visual C+Watcom C+Turbo CBorland C+ BuilderC语言编译软件Microsoft CHigh C 本课程的内容主要是应用Turbo C+ 3.0,也可选用Visual C+ 6.0。1.
6、2 C语言的发展及其特点和应用 简洁紧凑、灵活方便 运算符丰富 数据结构丰富 C是结构式语言 C语法限制不太严格、程序设计自由度大 C语言允许直接访问物理地址,可以直接对硬件进行操作 C语言程序生成代码质量高,程序执行效率高 C语言适用范围大,可移植性好C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C的运算符包含的范围很广泛,共有种34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。 C的数据类
7、型有:整型、浮点型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。尤其是指针类型数据,使用十分灵活和多样化。 结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。而C语言允许程序编写者有较大的自由度。 C语言既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址
8、进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。一般只比汇编程序生成的目标代码效率低1020%。C语言有一个突出的优点就是适合于多种操作系统,如DOS、WINDOWS、UNIX。也适用于多种机型,在一种计算机上编写的程序,无须修改或经过很少的修改,就可以在其它类型的计算机上运行 C语言的特点1.2 C语言的发展及其特点和应用C语言可以用来开发许多系统软件和大型应用软件: 如UNIX,LINUX等操作系统。C语言可以用于对硬件进行操作的场合: 如各种硬件设备的驱动程序(象显卡驱动程序、打印机驱动 程序等)一般都是用C语言编写的。在图形、图像及动画处理方面,C语言具有绝对优势: 如
9、游戏软件的开发主要就是使用C语言。通信程序的编制首选就是C语言。 C语言适用于多种操作系统: 如WINDOWS、UNIX、LINUX等绝大多数操作系统都支持 C语言,其它高级语言未必能得到支持,所以在某个特定操 作系统下运行的软件用C语言编制是最佳选择。C语言的应用1.2 C语言的发展及其特点和应用学习内容C语言程序的基本结构3程序设计语言的发展及其特点1C语言的发展及其特点和应用2编制C语言程序的基本步骤4c语言概述1.3 C语言程序的基本结构/* This is the first C program */#include void main ( ) printf (“This is a
10、C program!n);注释信息预处理命令无返回值无参数、无返回值的主函数主函数名函数开始内部函数名参数回车换行符函数调用函数体语句结束标志函数结束 运行结果: This is a C program!在C程序中,注释由“/*”开始,由“*/”结束,可以实现多行注释 。在C+程序中也可使用“/”进行单行注释。例如:/ 注释信息 C语言规定:语句以分号结束 例1 最简单的C程序。C语言的预处理命令都是以“#”号开头。stdio.h是一个头文件 C程序中允许插入若干行空行,它不影响程序的功能,同注释一样。为了程序的易读性,在编写C程序时,根据需要可插入一定的空行。printf是C语言的内部函数名
11、,因为它后面跟着( ),其功能是将“This is a C program!n”显示在计算机的屏幕上(双引号和n不显示) main是主函数名,一个C语言程序有且仅有一个main函数。C程序执行时就是从main函数开始,具体讲就是从“”开始,到“”结束。 例2 计算输入的两个整数的和 。/* This is the second C program */#include void main ( ) int x, y, z; scanf (%d%d, &x, &y ); z = x + y; printf ( sum is %dn, z);数据类型名定义的变量名,以“,”分隔调用内
12、部函数,接受键盘输入数据带有三个参数,以“,”分隔。&表示取变量的地址。调用内部函数,输出计算的和数求和的值给Z假设输入:10 20 运行结果:sum is 301.3 C语言程序的基本结构例3 计算输入的两个整数的较大值 。/* This is the third C program */#include void main ( ) int max (int x, int y); int a, b, c; scanf (%d%d, &a, &b); c = max (a, b); printf (max = %dn, c);int max (int x, int y)
13、 int z; if (x y) z = x; else z = y; return (z); 自定义函数声明自定义函数调用自定义函数max带两个形参返回a、b中最大值c返回值为整型数假设输入:10 20 运行结果:max = 201.3 C语言程序的基本结构C语言中变量和函数都有自己的标识符。 标识符就是一个名字,C语言规定标识符只能由字母、数字 和下划线三中字符构成,并且第一个字符必须是字母或下划线。标识特点: C语言中有一些特别的标识符,它们的用途已经事先规定好了,程序员不能再将它们另做它用。这些特别的标识符被称为关键字(也称保留字)。到目前为止,我们见过的关键字有void、int、ma
14、in、if、else、return。以后随着学习的深入,我们将会遇到越来越多的关键字(C语言关键字可参考附录B)。1.3 C语言程序的基本结构结构特点: C程序是由多个函数构成的。 每个C程序中有且只有一个main函数。 main函数是程序的入口和出口。 不使用行号,无程序行的概念。 C程序中可加任意多的注释。 引用C语言标准库函数,一般要用文件包含预处理命令将其头文件包含 进来。 用户自定义的函数,必须先定义后使用。 变量必须先定义后使用。 不能用关键字来命名变量和函数。 函数包含两个部分:声明部分和执行部分,在C程序中,声明部分在 前,执行部分在后,这两部分的顺序不能颠倒,也不能有交叉。
15、C语言的语句都是以分号结尾。1.3 C语言程序的基本结构优秀程序员的素质之一:使用TAB缩进对齐有足够的注释有合适的空行main( ) int i , j , sum; sum=0; for(i=1; i10;i+) for(j=1;j10;j+) sum+=i*j ; printf(“%dn”,sum);1.3 C语言程序的基本结构学习内容程序设计语言的发展及其特点1C语言的发展及其特点和应用2C语言程序的基本结构3编制C语言程序的基本步骤4c语言概述1.4 编制C语言程序的基本步骤编辑程序代码的录入,生成源程序*.c语法分析查错,翻译生成目标程序*.obj与其它目标程序或库链接装配,生成可
16、执行程序*.exe在c编译环境下选择“RUN”命令,获得运行结果。编译链接运行 编写C程序的步骤 开 始编 辑编 译有错?链 接执 行结果正确?结 束源程序file.c目标程序file.obj库函数和其它目标程序可 执 行 程序file.exe不正确正确有无调试C程序的流程1.4 编制C语言程序的基本步骤 1.启动TC,进入TC集成环境 2.编辑单个源程序文件 3.编译、连接单个源程序文件 选择并执行Compile | Make EXE File项(快捷键:F9)4.运行与查看结果 (1)运行当前正在编辑的源程序文件 选择并执行Run | Run项(快捷键:Ctrl+F9),(2)查看运行结果
17、 选择并执行Run | User Screen项(快捷键:Alt+F5)。查看完毕后,按任一键返回编辑窗口。补 充 知 识进位计数制及其转换机器数的表示形式及其表示范围C语言程序设计补充知识学习内容进位计数制及其转换数码:表示数的符号基数:数码的个数权 :每一位所具有的值进位计数制及其转换16,16,16,逢十六进一1609,AF十六进制数8,8,8,逢八进一807八进制数2,2,2,逢二进一201二进制数10,10,10,逢十进一1009十进制数权特点表示基数码数制十六进制:81AE=816+116 +1016+1416八进制:4275=48+28 +78+58十进制:4956= 410+9
18、10 +510+610二进制:1011=12+02 +12+12进位计数制及其转换100123452592121202121211110111)()(:例10012894868381136:3)()(例1001231679781610162161516121:4)()(例AF103210123452625.59212021 212120212121101.111011 :2)()(例方法:按权相加二进制、八进制、十六进制转换成十进制步骤:首先进行整数部分转换,然后进行小数部分转换。进位计数制及其转换十进制转换成二进制、八进制、十六进制(1)整数部分转换原理:的余数是2)2.22(222.22)
19、.(00012110011112011NaaaaaaaaaaaaaNnnnnnnnnnn进位计数制及其转换例: 把十进制数59转换成二进制数余余余余余余第一次得到的余数是最低位最后得到的余数是最高位例: 把十进制数159转换成八进制数例: 把十进制数459转换成十六进制数4591628161160(459)10=(1CB)161 C B 余11余12余 1方法:连续除以基,从低到高记录余数,直至商为0进位计数制及其转换十进制转换成二进制、八进制、十六进制(2)小数部分转换原理:的整数部分是2N)2.2(22.22).(11mm1211mm22112m21aaaaaaaaaaN方法:连续乘以基,
20、从高到低记录整数部分, 直至结果的小数部分为0进位计数制及其转换 0.8125 2 1.625 (b1 1) 最高小数位 0.625 2 1.25 (b2 1) 0.25 2 0.5 (b3 0) 0.5 2 1.0 (b4 1) 最低小数位 所以 (0.8125)10 (0.1101)2注意:对于小数部分的转换式中的整数不参加连乘,第一次乘以2所得到的整数部分是二进制数小数的最高位,最后所得到的整数部分是二进制数小数的最低位。例: 将十进制数0.8125转换成二进制 0.8123 2 1.6246 (b1 1) 最高小数位 0.6246 2 1.2492 (b2 1) 0.2492 2 0.
21、4984 (b3 0) 0.4984 2 0.9968 (b4 0) 最低小数位 所以 (0.8123)10 (0.1100)2例: 将十进制数0.8123转换成二进制 0.8123 8 6.4984 (b1 6) 最高小数位 0.4984 8 3.9872 (b2 3) 0.9872 8 7.8976 (b3 7) 0.8976 8 7.1808 (b4 7) 最低小数位 所以 (0.8123)10 (0.6377)8例: 将十进制数0.8123转换成八进制在十进制的小数部分转换中,有时连续乘以2不一定能使小数部分等于0,这说明该十进制小数不能用有限位二进制小数表示。这时,只要取足够多的位数
22、,使其误差达到所要求的精度就可以了。进位计数制及其转换二进制、八进制、十六进制之间的转换000 0001 1010 2011 3100 4101 5110 6111 7例:将二进制数(1101101.10101)2转换成八进制数所以: (1101101.10101)2 (155.52)8二进制数: 001 101 101 . 101 0101八进制数:55 .52二进制八进制方法:从小数点开始,分别向左、右按3位分组转换成对应 的八进制数字字符,最后不满3位的,则需补0。 进位计数制及其转换000 0001 1010 2011 3100 4101 5110 6111 7例:将八进制数(345.
23、64)8转换成二进制数所以: (345.64)8 (11100101.1101)2八进制数: 3 4 5 . 6 4011二进制数:100 101 .110 100八进制二进制方法:将每位八进制数用3位二进制表示即可 。 进位计数制及其转换例:将二进制数(1101101.10101)2转换成16进制数所以: (1101101.10101)2 (6D.A8)16二进制数: 0110 1101 . 1010 10006十六进制数:D .A80000 00001 10010 20011 30100 40101 50110 60111 71000 81001 91010 A1011 B1100 C11
24、01 D1110 E1111 F二进制十六进制方法:从小数点开始,分别向左、右按4位分组 转换成对应的十六进制数字字符,最后不 满4位的,则需补0。 例:将十六进制数(A9D.6C)16转换成二进制数所以: (A9D.6C)2 (101010011101.011011)2十六进制数: A 9 D . 6 C1010二进制数:0000 00001 10010 20011 30100 40101 50110 60111 71000 81001 91010 A1011 B1100 C1101 D1110 E1111 F1001 1101 .0110 1100十六进制二进制方法:将每位十六进制数用4位
25、二进制表示即可 。 进位计数制及其转换请问.?(9FDA.4B)16 = (_)8(256)7 = (_)6进位计数制及其转换机器数的表示形式及其表示范围C语言程序设计补充知识学习内容机器数的表示形式及其表示范围真值:一个带符号数由两部分组成:一部分表示数的符号, 另一部分表示数的数值。一般,直接用正号“”和 负号“”来表示符号的二进制数,叫做符号数的真值。真值: + 1 0 1 1 - 1 0 1 1机器数: 0 1 0 1 1 1 1 0 1 1机器数机器数的表示的表示形式形式原码原码补码补码反码反码机器数:计算机中的数是用二进制来表示的,数的符号也是 用二进制来表示的。把一个数连同其符号
26、在内在机 器中的表示加以数值化,这样的数称为机器数。 一般用最高有效位来表示数的符号,正数用0表示,负数用1表示。机器数的表示形式及其表示范围原码:又称为“符号-数值表示”。在以原码形式表示的正数和负 数中,第1位表示符号位,对于正数,符号位记为0,对 于负数,符号位记为1,其余各位表示数值部分。例:N1 +10011 N2 -01010 N1原 010011 N2原 101010机器数的表示形式及其表示范围当N为正数时,N原和N的区别只是增加一位用0表示的符号 位。由于在数的左边增加一位0对该数的数值并无影响,所以 N原就是N本身。当N为负数时,N原和N的区别是增加一位用1表示的符号位。在原
27、码表示中,有两种不同形式的0,即: 0原 0000 或 0.000 0原 1000 或 1.000反码:又称为“对1的补数”。用反码表示时,左边第一位也是 符号位,符号位为0代表正数,符号位为1代表负数, 对于负数,反码的数值是将原码数值按位求反,而对 于正数,反码和原码相同。所以,反码数值的形成与 它的符号位有关。 例:N1 +10011 N2 - 01010 N1反 010011 N2反 110101机器数的表示形式及其表示范围机器数的表示形式及其表示范围正数N的反码N反与原码N原相同。对于负数N,其反码N反的符号为1,数值部分是将原 码数值按位求反。在反码表示中,有两种不同形式的0,即: 0反 0000 或 0.000 0反 1111 或 1.111机器数的表示形式及其表示范围 补码:又称为“对2的补数”。在补码表示法中,正数的补 码表示同原码和反码的表示是相同的,而负数的补 码表示却不同。对于负数的补码,其符号位为1, 而数值位是将原码“按位求反,末位加1”。例: N1 10011 N2 01010 N1补 010011 N2补 110110机器数的表示形式及其表示范围正数N的补码N补与原码N原和反码N反相同。对于负数N,其补码N补的符号
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业管理习题答案
- 2026 学龄前自闭症融合干预行为课件
- 江西省吉安朝宗实验学校2026届中考联考历史试题含解析
- 关于语文学习计划
- 初中道德与法治教育科学八年级上册(2023年新编) 网络世界明辨是非 拒绝盲从 教案
- 2026 学龄前自闭症社区策略应用课件
- 2026年注册会计师题库在线测试系统十
- 2026 学龄前自闭症情绪识别训练课件
- 2026 学龄前自闭症家校互动课件
- 当代社会的道德诚信
- 社会主义核心价值观主题班会课件
- 电钻创意美术课件
- 《酗酒的危害与戒酒》课件
- 蔬菜水果食材配送服务投标方案(技术方案)
- 人教版数学二年级下册全册教学设计及教学反思
- 电力变压器的结构及工作原理
- 教科版四年级科学上册《第1单元声音 单元复习》教学课件
- 电梯井安全防护及施工操作平台监理细则(3篇)
- 急诊科患者VTE风险评估制度
- 某乡综合服务中心建设项目可行性研究报告书
- JTT695-2007 混凝土桥梁结构表面涂层防腐技术条件
评论
0/150
提交评论