版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、从零开始学习从零开始学习C语言语言本书的主要特点如下:本书的主要特点如下:内容全面详细。本章一共分为内容全面详细。本章一共分为18章,涵盖了章,涵盖了C语言中的语言中的所有知识,并将所有知识,并将C语言各个知识点做一个章节进行讲解。并语言各个知识点做一个章节进行讲解。并举出大量实例。举出大量实例。结构清晰明了。本章结构清晰明了。本章18章中,每章都分若干个小节,章中,每章都分若干个小节,每个小节一个小知识点。结构层次清晰可见。每个小节一个小知识点。结构层次清晰可见。讲解由浅入深。向读者介绍讲解由浅入深。向读者介绍C语言的基本理论知识、数语言的基本理论知识、数据结构和基本的编程规则,让读者对据结
2、构和基本的编程规则,让读者对C语言的基本知识以及语言的基本知识以及结构化程序设计思想有一个初步的认识;接着对结构化程序设计思想有一个初步的认识;接着对C语言一些语言一些复杂的数结构类型如数组、函数、指针操作、结构体与共用复杂的数结构类型如数组、函数、指针操作、结构体与共用体、文件等进行详细的讲解。体、文件等进行详细的讲解。实例丰富多样。本书所讲的每一个知识点都运用充分实例丰富多样。本书所讲的每一个知识点都运用充分的实例进行讲解说明,便于读者掌握。的实例进行讲解说明,便于读者掌握。第第1 1章章 C C语言入门基础语言入门基础C语言作为国际上流行的计算机高级语言,能实现多种语言作为国际上流行的计
3、算机高级语言,能实现多种功能。为使读者能够对功能。为使读者能够对C语言有一个全面的认识,本章在介语言有一个全面的认识,本章在介绍绍C语言之前,还简单的介绍了很多其他的相关知识。语言之前,还简单的介绍了很多其他的相关知识。计算机语言的演变;计算机语言的演变;数制、数制转换与存储;数制、数制转换与存储;程序设计思想程序设计思想算法;算法;C语言的发展简史和特点;语言的发展简史和特点;认识认识C语言程序;语言程序;Turbo C V2.0的运行环境及基本操作。的运行环境及基本操作。1.1 1.1 计算机语言的演变计算机语言的演变机器语言机器语言汇编语言到汇编语言到高级语言高级语言面向对象或面向问题的
4、高级语言面向对象或面向问题的高级语言 1.1.1 1.1.1 机器语言机器语言机器语言是第一代计算机语言。计算机所使用的是由机器语言是第一代计算机语言。计算机所使用的是由“0”和和“1”组成的二进制数,二进制是计算机的语言的基础组成的二进制数,二进制是计算机的语言的基础,所以也称为二进制语言。机器语言指用机器码书写程序,所以也称为二进制语言。机器语言指用机器码书写程序,不易被人们识别和读写,所以使用机器语言是十分痛苦的,不易被人们识别和读写,所以使用机器语言是十分痛苦的,特别是在程序有错需要修改时,更是如此。而且,由于每台特别是在程序有错需要修改时,更是如此。而且,由于每台计算机的指令系统往往
5、各不相同,所以在一台计算机上执行计算机的指令系统往往各不相同,所以在一台计算机上执行的程序,要想在另一台计算机上执行,必须另编程序,造成的程序,要想在另一台计算机上执行,必须另编程序,造成了重复工作。但由于计算机能够直接识别程序中的指令,故了重复工作。但由于计算机能够直接识别程序中的指令,故而运算效率是所有语言中最高的,这种用二进制编写的程序而运算效率是所有语言中最高的,这种用二进制编写的程序也叫也叫“目标程序目标程序”。1.1.2 1.1.2 汇编语言汇编语言 汇编语言又称符号语言,对机器指令进行简单的符号汇编语言又称符号语言,对机器指令进行简单的符号化,它也是利用计算机所有硬件特性并能直接
6、控制硬件语言化,它也是利用计算机所有硬件特性并能直接控制硬件语言。人们为了减轻使用机器语言编程的痛苦,对机器语言进行。人们为了减轻使用机器语言编程的痛苦,对机器语言进行了一种有益的改进:用一些简洁的英文字母、符号串来替代了一种有益的改进:用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串,比如,用一个特定的指令的二进制串,比如,用“ADD”表示加法,表示加法,“MOV”表示数据传递等等,因此,人们就能理解程序所进表示数据传递等等,因此,人们就能理解程序所进行的操作,方便用户对程序进行纠错及维护。行的操作,方便用户对程序进行纠错及维护。1.1.3 1.1.3 高级语言高级语言用高级语言编
7、写的程序称为用高级语言编写的程序称为“源程序源程序”,源程序不能,源程序不能在计算机上直接运行,必须将其翻译成二进制程序后才能执在计算机上直接运行,必须将其翻译成二进制程序后才能执行。翻译有两种方式:解释程序和编译程序。解释程序是将行。翻译有两种方式:解释程序和编译程序。解释程序是将一次只读一行源程序,并执行该行语言指定的操作,每次运一次只读一行源程序,并执行该行语言指定的操作,每次运行用户程序时,必须要用解释程序。在程序的开发过程中,行用户程序时,必须要用解释程序。在程序的开发过程中,运用解释的方式执行程序,便于程序员对程序进行调试。编运用解释的方式执行程序,便于程序员对程序进行调试。编译程
8、序是将源程序全部翻译成目标代码即二进制程序后再执译程序是将源程序全部翻译成目标代码即二进制程序后再执行,只读取一次,节省了大量的时间。行,只读取一次,节省了大量的时间。1.1.4 1.1.4 面向对象或面向问题的高级语言面向对象或面向问题的高级语言第四代语言是使用第二代第三代语言编制而成的。面第四代语言是使用第二代第三代语言编制而成的。面向对象的语言是在面向过程的计算机语言的基础上发展面来向对象的语言是在面向过程的计算机语言的基础上发展面来的,如的,如C+语言就是由语言就是由C语言发展面来的。所谓面向对象,语言发展面来的。所谓面向对象,就是基于对象的概念,以对象为中心,类和继承为构造机制就是基
9、于对象的概念,以对象为中心,类和继承为构造机制,认识了解刻画客观世界以及开发出相应的软件系统。它是,认识了解刻画客观世界以及开发出相应的软件系统。它是把构成问题事务分解成各个对象,建立对象的目的不是为了把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在整个解决问题的步完成一个步骤,而是为了描述某个事物在整个解决问题的步骤中的行为。比较典型代表的面向对蟪绦蛏杓朴镅杂骤中的行为。比较典型代表的面向对蟪绦蛏杓朴镅杂C+、Virtual Basic、Delphi等。等。1.2 1.2 数制、数制转换与存储数制、数制转换与存储数制数制数制转换数制转换计算机中数据的存
10、储计算机中数据的存储1.2.1 1.2.1 数制数制1 1二进制数二进制数二进制数由两个基本数字二进制数由两个基本数字0 0、1 1组成,二进制数的运算规律组成,二进制数的运算规律是逢二进一是逢二进一 。例如:例如: 100101100101可以写成(可以写成(100101100101)2 2或写成或写成100101B100101B。 二进制数的加法和乘法运算如下:二进制数的加法和乘法运算如下:0+0=0 0+1=1+0=1 1+1=10 00+0=0 0+1=1+0=1 1+1=10 0* *0=0 00=0 0* *1=11=1* *0=0 10=0 1 1=1 1=1 101101100
11、101011000110+1.2.1 1.2.1 数制数制2 2八进制数八进制数八进制是由八进制是由0707八个数字组成,运算规则是逢八个数字组成,运算规则是逢8 8进一。进一。 例如:例如: 八进制八进制261261写成(写成(261261)8 8、(、(261261)O O。 1.2.1 1.2.1 数制数制3 3十进制数十进制数十进制数是我们常用的数据表示方法,由十进制数是我们常用的数据表示方法,由0909十个数字十个数字组成,运算规则是逢组成,运算规则是逢1010进一。进一。例如:例如: 十进制十进制126126可表示为(可表示为(126126)1010、126D126D、126126
12、。1.2.1 1.2.1 数制数制4 4十六进制数十六进制数十六进制数由十六进制数由0909以及以及AFAF十六个数字组成,十六个数字组成,AFAF分别分别表示十进制数表示十进制数10151015,运算规则是逢,运算规则是逢1616进一。通常在表示进进一。通常在表示进用用例如:例如:(1FA1FA)1616、(、(1FA1FA)H H注意注意在在C C语言程序中语言程序中十六进制需要以十六进制需要以0 x0 x开头开头八进制需要以八进制需要以0 0开头,开头,例如:例如: 01230123表示八进制的表示八进制的123123 0 x123 0 x123表示十六进制的表示十六进制的123 123
13、 1.2.2 1.2.2 数制的转换数制的转换1 1二进制、八进制、十六进制转换成十进制二进制、八进制、十六进制转换成十进制规则:数码乘以各自的权的累加【例1-1】其他进制转换成十进制。(10001)B=24+20=16+1=17(101.01)B=22+20+2-2=4+1+0.25=5.25(011)O=81+80=8+1=9(72)O=7*81+2*80=7*8+2*1=58(112A)H=1*163+1*162+2*161+10*16043941.2.2 1.2.2 数制的转换数制的转换2 2十进制转换成二进制、八进制、十六进制十进制转换成二进制、八进制、十六进制规则:规则:整数部分:
14、除以进制取余数,直到商为整数部分:除以进制取余数,直到商为0 0,余数从下到上排列。,余数从下到上排列。小数部分:乘以进制取整数,得到的整数从上到下排列。小数部分:乘以进制取整数,得到的整数从上到下排列。【例【例1-2】十进制转换成其他进制。】十进制转换成其他进制。(1 1)十进制)十进制20.34520.345转换成二进制转换成二进制20.345D=10100.01011B20.345D=10100.01011B整数部分:20/2=10 -余010/2=5 -余05/2=2 -余12/2=1 -余01/2=0 -余1小数部分:0.345*2=0.69 -取整数00.69*2=1.38 -取整
15、数10.38*2=0.76 -取整数00.76*2=1.52 -取整数10.52*2=1.04 -取整数1【例【例1-2】十进制转换成其他进制。】十进制转换成其他进制。(2 2)十进制)十进制100100转换成八进制、十六进制转换成八进制、十六进制100/8=12 -余412/8=1 -余41/8=0 -余1100D=144O100/16=6 -余46/16=0 -余6100D=64H1.2.2 1.2.2 数制的转换数制的转换3 3二进制转换八进制二进制转换八进制规则:规则:整数部分:从右向左按三位进行分组,不足补零。整数部分:从右向左按三位进行分组,不足补零。小数部分:从左向右按三位进行分
16、组,不足补零。小数部分:从左向右按三位进行分组,不足补零。【例【例1-31-3】将二进制数(】将二进制数(1101101110.1101011101101110.110101)2 2转换转换成八进制数。成八进制数。001001 101101 101101 110110. .110110 101101 1 5 5 6 6 5 1 5 5 6 6 5 (1101101110.1101011101101110.110101)2 2= =(1555.651555.65)8 81.2.2 1.2.2 数制的转换数制的转换4 4二进制转换成十六进制二进制转换成十六进制规则:规则:整数部分:从右向左按四位进
17、行分组,不足补零。整数部分:从右向左按四位进行分组,不足补零。小数部分:从左向右按四位进行分组,不足补零。小数部分:从左向右按四位进行分组,不足补零。【例【例1-41-4】将二进制数(】将二进制数(001101101110.110101001101101110.110101)2 2转转换成十六进制数。换成十六进制数。00110011 01100110 11101110. .11011101 01000100 3 6 E D 4 3 6 E D 4(001101101110.110101001101101110.110101)2=2=(36.ED436.ED4)16161.2.2 1.2.2 数
18、制的转换数制的转换5八进制、十六进制转换成二进制八进制、十六进制转换成二进制规则:规则:一位八进制对应三位二进制。一位八进制对应三位二进制。一位十六进制对应四位二进制。一位十六进制对应四位二进制。【例【例1-5】八进制、十六进制转换成二进制。】八进制、十六进制转换成二进制。(136)8=(001 011 110)2 (17A)16=(0001 0111 1010)2 1 3 6 1 7 A1.2.3 1.2.3 计算机中数据的存储计算机中数据的存储如表示:比较一下如表示:比较一下1与与-1的原码、反码和补码。的原码、反码和补码。1.3 1.3 程序设计思想程序设计思想算法算法在我们遇到问题的时
19、候,我们首先在大脑中形成一种在我们遇到问题的时候,我们首先在大脑中形成一种解题思路,然后再根据可行的思路运用具体的步骤解决问题解题思路,然后再根据可行的思路运用具体的步骤解决问题。在程序设计中,也需要有一种编程思路,这就是算法。在程序设计中,也需要有一种编程思路,这就是算法。1.3.1 1.3.1 算法的概念算法的概念在程序设计中,算法应该能够离散成具体的若干个操在程序设计中,算法应该能够离散成具体的若干个操作步骤,而且每一个步骤都是能够用程序设计语言提供的语作步骤,而且每一个步骤都是能够用程序设计语言提供的语句或者语句串来完成的。句或者语句串来完成的。例如,求二个整数中的最大的数。解决这个问
20、题的算例如,求二个整数中的最大的数。解决这个问题的算法如下:法如下:第第1步步 开始。开始。第第2步步 输入二个整数输入二个整数a、b。第第3步步 比较比较a、b的大小,如果的大小,如果ab时,输出时,输出a,否则输,否则输出出b。第第4步步 结束。结束。需要注意的是,程序是有开始和结束的,所以算法必需要注意的是,程序是有开始和结束的,所以算法必须有须有“开始开始”和和“结束结束”这两个步骤。这两个步骤。1.3.2 1.3.2 算法的特点算法的特点算法具有以下五个重要的特征:算法具有以下五个重要的特征:1有穷性有穷性2确定性确定性3。有效性。有效性4输入输入5输出输出1.3.3 1.3.3 算
21、法的表示方法算法的表示方法1 1自然语言自然语言【例【例1-61-6】用自然语言描述】用自然语言描述100100以内正整数的和。以内正整数的和。1 1设设S S代表总和,代表总和,N N代表正整数;代表正整数;2 2S=0S=0,N=1N=1;3 3S=S+NS=S+N,原来的和加上一个正整数;,原来的和加上一个正整数;4 4N=N+1,N=N+1,把下一个正整数赋给把下一个正整数赋给N N;5 5判断判断N N是否小于是否小于100100,如果是跳转到步骤,如果是跳转到步骤3 3,否则跳,否则跳转到步骤转到步骤6 6;6 6输出输出S S的值。的值。1.3.3 1.3.3 算法的表示方法算法
22、的表示方法2 2流程图流程图 常用流程图构件常用流程图构件1.3.3 1.3.3 算法的表示方法算法的表示方法3 3伪代码伪代码将上述【例将上述【例1-61-6】用伪代码描述表示如下:】用伪代码描述表示如下:N1; N1; S0; S0; do while N100do while N100SS+N; SS+N; NN+1; NN+1; print Sprint S1.3.3 1.3.3 算法的表示方法算法的表示方法4N-S图图(1)顺序结构)顺序结构N-S图图(2)选择结构)选择结构N-S图图(3)循环结构)循环结构N-S图图1.3.4 1.3.4 算法分析算法分析什么样的算法才是一个好的算
23、法呢?通常从下列几个什么样的算法才是一个好的算法呢?通常从下列几个方面衡量算法的优劣:方面衡量算法的优劣:1正确性正确性2可读性可读性3健壮性健壮性4时间复杂度与空间复杂度时间复杂度与空间复杂度T(n)=O(f(n)S(n)=O(f(n)1.4 C1.4 C语言的发展简史和特点语言的发展简史和特点C语言能够快速发展成为最受欢迎的语言之一,主要是语言能够快速发展成为最受欢迎的语言之一,主要是因为它具有强大的功能。它既有高级语言的特点,又具有汇因为它具有强大的功能。它既有高级语言的特点,又具有汇编语言的特点,它可以作为工作系统设计语言,编写系统应编语言的特点,它可以作为工作系统设计语言,编写系统应
24、用程序,也可以作为应用程序设计语言,编写不依赖计算机用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。硬件的应用程序。1.4.1 C1.4.1 C语言的诞生与发展语言的诞生与发展19721972年,贝尔实验室年,贝尔实验室D.M.RitchieD.M.Ritchie设计出设计出C C语言,当时语言,当时Ken Ken ThompsonThompson刚刚使用汇编语言和刚刚使用汇编语言和B B语言开发出语言开发出UNIXUNIX操作系统,但用汇编语操作系统,但用汇编语言开发系统非常烦琐,于是言开发系统非常烦琐,于是D.M.RitchieD.M.Ritchie用用C C语言改写语
25、言改写UNIXUNIX系统的内核。系统的内核。19771977年年Dennis M.Ritchie Dennis M.Ritchie 发表了不依赖于具体机器系统的发表了不依赖于具体机器系统的C C语言编语言编译文本译文本可移植的可移植的C C语言编译程序语言编译程序。19781978年由美国电话电报公司年由美国电话电报公司(AT&T)(AT&T)贝尔实验室正式发布贝尔实验室正式发布C C语言。同语言。同由由B.W.KernighanB.W.Kernighan和和D.M.RitchieD.M.Ritchie共同完成的了著名的共同完成的了著名的The C The C Programming LanguageProgramming Language一书,通常简称为一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 催化剂试验工岗前安全演练考核试卷含答案
- 橡胶制品配料工岗前安全宣传考核试卷含答案
- 耕整地机械操作工创新意识竞赛考核试卷含答案
- 育婴员安全实践知识考核试卷含答案
- 润滑油调合操作工岗前全能考核试卷含答案
- 二甲胺装置操作工操作规程评优考核试卷含答案
- 耐火成品发运工诚信品质模拟考核试卷含答案
- 绝缘制品制造工安全管理考核试卷含答案
- 甲醛装置操作工安全文明模拟考核试卷含答案
- 酸再生工班组协作知识考核试卷含答案
- 2025年及未来5年市场数据中国焦化行业市场前景预测及投资方向研究报告
- 25秋国家开放大学《理工英语4》形考任务参考答案
- 口腔咨询基础话术
- 2025年初级煤矿综采安装拆除作业人员《理论知识》考试真题(新版解析)
- 文明单位申报表填写范例及审核指南
- 《中级财务会计》课程重点难点讲解(东北财经大学版)-课件
- DB61-T 1362-2020 海绵城市低影响开发雨水系统技术规范
- 慢性肾病治疗课件
- 国开2025年人文英语4写作形考答案
- 果园防草布采购合同范本
- 环卫除雪知识培训内容课件
评论
0/150
提交评论