版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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”表示数据传递等等,因此,人们就能理解程序所进表示数据传递等等,因此,人们就能理解程序所进 行的操作,方便用户对程序进行纠错及维护。行
7、的操作,方便用户对程序进行纠错及维护。 1.1.3 1.1.3 高级语言高级语言 用高级语言编写的程序称为用高级语言编写的程序称为“源程序源程序”,源程序不能,源程序不能 在计算机上直接运行,必须将其翻译成二进制程序后才能执在计算机上直接运行,必须将其翻译成二进制程序后才能执 行。翻译有两种方式:解释程序和编译程序。解释程序是将行。翻译有两种方式:解释程序和编译程序。解释程序是将 一次只读一行源程序,并执行该行语言指定的操作,每次运一次只读一行源程序,并执行该行语言指定的操作,每次运 行用户程序时,必须要用解释程序。在程序的开发过程中,行用户程序时,必须要用解释程序。在程序的开发过程中, 运用
8、解释的方式执行程序,便于程序员对程序进行调试。编运用解释的方式执行程序,便于程序员对程序进行调试。编 译程序是将源程序全部翻译成目标代码即二进制程序后再执译程序是将源程序全部翻译成目标代码即二进制程序后再执 行,只读取一次,节省了大量的时间。行,只读取一次,节省了大量的时间。 1.1.4 1.1.4 面向对象或面向问题的高级语言面向对象或面向问题的高级语言 第四代语言是使用第二代第三代语言编制而成的。面第四代语言是使用第二代第三代语言编制而成的。面 向对象的语言是在面向过程的计算机语言的基础上发展面来向对象的语言是在面向过程的计算机语言的基础上发展面来 的,如的,如C+语言就是由语言就是由C语
9、言发展面来的。所谓面向对象,语言发展面来的。所谓面向对象, 就是基于对象的概念,以对象为中心,类和继承为构造机制就是基于对象的概念,以对象为中心,类和继承为构造机制 ,认识了解刻画客观世界以及开发出相应的软件系统。它是,认识了解刻画客观世界以及开发出相应的软件系统。它是 把构成问题事务分解成各个对象,建立对象的目的不是为了把构成问题事务分解成各个对象,建立对象的目的不是为了 完成一个步骤,而是为了描述某个事物在整个解决问题的步完成一个步骤,而是为了描述某个事物在整个解决问题的步 骤中的行为。比较典型代表的面向对蟪绦蛏杓朴镅杂骤中的行为。比较典型代表的面向对蟪绦蛏杓朴镅杂C+、 Virtual
10、Basic、Delphi等。等。 1.2 1.2 数制、数制转换与存储数制、数制转换与存储 数制数制 数制转换数制转换 计算机中数据的存储计算机中数据的存储 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
11、=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 + 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进一。
12、进一。 例如:例如: 十进制十进制126126可表示为(可表示为(126126)10 10、 、126D126D、126126。 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
13、开头,开头, 例如:例如: 01230123表示八进制的表示八进制的123123 0 x123 0 x123表示十六进制的表示十六进制的123 123 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
14、+10*1604394 1.2.2 1.2.2 数制的转换数制的转换 2 2十进制转换成二进制、八进制、十六进制十进制转换成二进制、八进制、十六进制 规则:规则: 整数部分:除以进制取余数,直到商为整数部分:除以进制取余数,直到商为0 0,余数从下到上排列。,余数从下到上排列。 小数部分:乘以进制取整数,得到的整数从上到下排列。小数部分:乘以进制取整数,得到的整数从上到下排列。 【例【例1-2】十进制转换成其他进制。】十进制转换成其他进制。 (1 1)十进制)十进制20.34520.345转换成二进制转换成二进制 20.345D=10100.01011B20.345D=10100.01011B
15、 整数部分: 20/2=10 -余0 10/2=5 -余0 5/2=2 -余1 2/2=1 -余0 1/2=0 -余1 小数部分: 0.345*2=0.69 -取整数0 0.69*2=1.38 -取整数1 0.38*2=0.76 -取整数0 0.76*2=1.52 -取整数1 0.52*2=1.04 -取整数1 【例【例1-2】十进制转换成其他进制。】十进制转换成其他进制。 (2 2)十进制)十进制100100转换成八进制、十六进制转换成八进制、十六进制 100/8=12 -余4 12/8=1 -余4 1/8=0 -余1 100D=144O 100/16=6 -余4 6/16=0 -余6 10
16、0D=64H 1.2.2 1.2.2 数制的转换数制的转换 3 3二进制转换八进制二进制转换八进制 规则:规则: 整数部分:从右向左按三位进行分组,不足补零。整数部分:从右向左按三位进行分组,不足补零。 小数部分:从左向右按三位进行分组,不足补零。小数部分:从左向右按三位进行分组,不足补零。 【例【例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 (1101
17、101110.1101011101101110.110101)2 2= =(1555.651555.65)8 8 1.2.2 1.2.2 数制的转换数制的转换 4 4二进制转换成十六进制二进制转换成十六进制 规则:规则: 整数部分:从右向左按四位进行分组,不足补零。整数部分:从右向左按四位进行分组,不足补零。 小数部分:从左向右按四位进行分组,不足补零。小数部分:从左向右按四位进行分组,不足补零。 【例【例1-41-4】将二进制数(】将二进制数(0.1101010.110101)2 2转换成十六进制转换成十六进制 数。数。 00110011 01100110 11101110. .110111
18、01 01000100 3 6 E D 4 3 6 E D 4 (0.1101010.110101)2= 2=( (36.ED436.ED4)16 16 1.2.2 1.2.2 数制的转换数制的转换 5八进制、十六进制转换成二进制八进制、十六进制转换成二进制 规则:规则: 一位八进制对应三位二进制。一位八进制对应三位二进制。 一位十六进制对应四位二进制。一位十六进制对应四位二进制。 【例【例1-5】八进制、十六进制转换成二进制。】八进制、十六进制转换成二进制。 (136)8=(001 011 110)2 (17A)16=(0001 0111 1010)2 1 3 6 1 7 A 1.2.3 1
19、.2.3 计算机中数据的存储计算机中数据的存储 如表示:比较一下如表示:比较一下1与与-1的原码、反码和补码。的原码、反码和补码。 1.3 1.3 程序设计思想程序设计思想算法算法 在我们遇到问题的时候,我们首先在大脑中形成一种在我们遇到问题的时候,我们首先在大脑中形成一种 解题思路,然后再根据可行的思路运用具体的步骤解决问题解题思路,然后再根据可行的思路运用具体的步骤解决问题 。在程序设计中,也需要有一种编程思路,这就是算法。在程序设计中,也需要有一种编程思路,这就是算法。 1.3.1 1.3.1 算法的概念算法的概念 在程序设计中,算法应该能够离散成具体的若干个操在程序设计中,算法应该能够
20、离散成具体的若干个操 作步骤,而且每一个步骤都是能够用程序设计语言提供的语作步骤,而且每一个步骤都是能够用程序设计语言提供的语 句或者语句串来完成的。句或者语句串来完成的。 例如,求二个整数中的最大的数。解决这个问题的算例如,求二个整数中的最大的数。解决这个问题的算 法如下:法如下: 第第1步步 开始。开始。 第第2步步 输入二个整数输入二个整数a、b。 第第3步步 比较比较a、b的大小,如果的大小,如果ab时,输出时,输出a,否则输,否则输 出出b。 第第4步步 结束。结束。 需要注意的是,程序是有开始和结束的,所以算法必需要注意的是,程序是有开始和结束的,所以算法必 须有须有“开始开始”和
21、和“结束结束”这两个步骤。这两个步骤。 1.3.2 1.3.2 算法的特点算法的特点 算法具有以下五个重要的特征:算法具有以下五个重要的特征: 1有穷性有穷性 2确定性确定性 3。有效性。有效性 4输入输入 5输出输出 1.3.3 1.3.3 算法的表示方法算法的表示方法 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
22、=N+1,把下一个正整数赋给把下一个正整数赋给N N; 5 5判断判断N N是否小于是否小于100100,如果是跳转到步骤,如果是跳转到步骤3 3,否则跳,否则跳 转到步骤转到步骤6 6; 6 6输出输出S S的值。的值。 1.3.3 1.3.3 算法的表示方法算法的表示方法 2 2流程图流程图 常用流程图构件常用流程图构件 1.3.3 1.3.3 算法的表示方法算法的表示方法 3 3伪代码伪代码 将上述【例将上述【例1-61-6】用伪代码描述表示如下:】用伪代码描述表示如下: N1; N1; S0; S0; do while N100do while N100 SS+N; SS+N; NN+
23、1; NN+1; print Sprint S 1.3.3 1.3.3 算法的表示方法算法的表示方法 4N-S图图 (1)顺序结构)顺序结构N-S图图 (2)选择结构)选择结构N-S图图 (3)循环结构)循环结构N-S图图 1.3.4 1.3.4 算法分析算法分析 什么样的算法才是一个好的算法呢?通常从下列几个什么样的算法才是一个好的算法呢?通常从下列几个 方面衡量算法的优劣:方面衡量算法的优劣: 1正确性正确性 2可读性可读性 3健壮性健壮性 4时间复杂度与空间复杂度时间复杂度与空间复杂度 T(n)=O(f(n) S(n)=O(f(n) 1.4 C1.4 C语言的发展简史和特点语言的发展简史
24、和特点 C语言能够快速发展成为最受欢迎的语言之一,主要是语言能够快速发展成为最受欢迎的语言之一,主要是 因为它具有强大的功能。它既有高级语言的特点,又具有汇因为它具有强大的功能。它既有高级语言的特点,又具有汇 编语言的特点,它可以作为工作系统设计语言,编写系统应编语言的特点,它可以作为工作系统设计语言,编写系统应 用程序,也可以作为应用程序设计语言,编写不依赖计算机用程序,也可以作为应用程序设计语言,编写不依赖计算机 硬件的应用程序。硬件的应用程序。 1.4.1 C1.4.1 C语言的诞生与发展语言的诞生与发展 19721972年,贝尔实验室年,贝尔实验室D.M.RitchieD.M.Ritc
25、hie设计出设计出C C语言,当时语言,当时Ken Ken ThompsonThompson刚刚使用汇编语言和刚刚使用汇编语言和B B语言开发出语言开发出UNIXUNIX操作系统,但用汇编语操作系统,但用汇编语 言开发系统非常烦琐,于是言开发系统非常烦琐,于是D.M.RitchieD.M.Ritchie用用C C语言改写语言改写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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年新教材高中地理课时分层作业8自然保护区与生态安全含解析中图版选择性必修3
- F3X33系列说明书 示范文本
- 2023届新高考新教材化学人教版一轮训练-第一章第1讲 物质的组成及分类
- 2024年多用客房车项目合作计划书
- 玉溪师范学院《高等几何》2021-2022学年第一学期期末试卷
- 玉溪师范学院《地理信息系统实验》2023-2024学年第一学期期末试卷
- 2024年油气储层保护剂合作协议书
- 盐城师范学院《中学数学案例分析》2021-2022学年第一学期期末试卷
- 2024宅基地永久性转让合同书【农村宅基地转让合同】
- 2024个人财产合同范文
- 妊娠期及产褥期静脉血栓栓塞症预防和诊治试题及答案
- 好的六堡茶知识讲座
- 环境科学大学生生涯发展报告
- 钢筋优化技术创效手册(2022年)
- 医学课件指骨骨折
- 拜占庭历史与文化智慧树知到期末考试答案2024年
- 2024年物流行业全面培训资料
- 酒店式公寓方案
- (2024版)初中八年级生物备考全攻略
- 毕业论文写作论文写作课件
- 二年级下册语文课件-作文指导:13-通知(23张PPT) 部编版
评论
0/150
提交评论