C语言程序设计课件 第1章 程序设计基础_第1页
C语言程序设计课件 第1章 程序设计基础_第2页
C语言程序设计课件 第1章 程序设计基础_第3页
C语言程序设计课件 第1章 程序设计基础_第4页
C语言程序设计课件 第1章 程序设计基础_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

程序设计基础目

录1.1

信息存储和表示1.1.1

数制及其转换1.1.2

存储单位1.1.3

数值数据的表示和存储1.1.4

ASCII码1.2

程序和编程语言1.2.1程序与程序设计语言1.2.2算法1.2.3C语言概述1.1.1数制及其转换数制也称计数制,是一种用数码和位权来表示数值的方法,计算机上常用的数制有二进制、八进制、十进制和十六进制。1.1.1数制及其转换(1)二进制、八进制和十六进制⇒十进制二、八和十六进制转为十进制使用按权展开的方法,即将组成数值的各个数码乘以相应位置上的权值,然后求和,如:(10110.011)2=0*20+1*21+1*22+0*23+1*24+0*2-1+1*2-2+1*2-3=22.375(54.76)8=4*80+5*81+7*8-1+6*8-2=44.96875(4A.3)16=A*160+4*161+3*16-1=74.18751.1.1数制及其转换(2)十进制⇒R进制(R代表二进制、八进制和十六进制)整数部分:十进制整数转换为R进制整数,采用不断除以R取余法,一直除到商为零为止,然后再把所有余数逆序排列,就可得到对应的R进制整数。小数部分:十进制小数转换为R进制小数,采用乘以2取整法。即将十进制数的小数部分反复乘以2,直到没有小数或达到指定的精度为止。然后再把取出的各个整数正序排列,就可得到对应的R进制小数。

1.1.1数制及其转换【例】将十进制数40.56转换为二进制40.56=101000.10001B1.1.2

存储单位1.位(bit)位也称为比特,是计算机存储数据的最小单位,用小写b表示。一位只能存储二进制的一个0或者一个1。2.字节(Byte)字节是计算机存储数据的基本单位,用大写B表示,1B=8b。1KB=1024B=210B1MB=210KB=220B1GB=210MB=220KB=230B1TB=210GB=220MB=230KB=240B1.1.3

数值数据的表示和存储1.机器数把正负号数码化的数称为机器数。正号用“0”表示,负号用“1”表示。通常把一个数值所分配的存储空间的最高位用来存储数值的符号,称为符号位。2.定点数定点数分为定点整数和定点小数两类。定点整数就是纯整数,即小数点的位置约定在最低数值位的后面。定点整数又分为无符号整数和带符号整数。定点小数即纯小数,即小数点的位置约定在符号位的后面,最高数值位的前面。定点小数都是带符号的。1.1.3

数值数据的表示和存储【例】定点数的存储举例不同存储空间的整数表示的数值范围1.1.3

数值数据的表示和存储3.浮点数浮点数既有整数部分又有小数部分,其规格化表示方法如下所示:尾数和阶码都有正负之分,尾数的符号称为数符,阶码的符号称为阶符。尾数最高有效数值位为1(二进制表示),尾数越长,所能表示的数值精度越高。阶码必须是整数,阶码越大,表达的数值范围越大。例如:101.11B=0.10111×23

-101.11B=-0.10111×2-3

1.1.3

数值数据的表示和存储3.浮点数浮点数在计算机中的存储形式:

相比于定点小数,浮点数可以表达更大范围的数值,所以带小数点的数一般采用浮点型数的形式存储。分配不同存储空间的浮点型数1.1.3

数值数据的表示和存储4.原码原码和机器数一样。【例】求X=20,Y=-21的原码,假设分配8bit的存储空间。原码最大的好处是简单直观,但是原码的符号位不能直接参与运算,必须和数值位分开单独考虑,否则会影响计算结果,如:X原+Y原=00010100+10010101=10101001(十进制是-41)为了能使符号位直接参与运算,计算机引入了反码和补码的概念。1.1.3

数值数据的表示和存储5.反码反码通常作为原码和补码的中间过渡码。正数的反码和原码一致。负数的反码是把原码的数值位按位取反,但符号位保持不变。【例】求X=20,Y=-21的反码,假设分配8bit的存储空间。1.1.3

数值数据的表示和存储6.补码补码是计算机把减法运算转化为加法运算的关键编码。正数的原码、反码和补码是一样的,负数的补码是在反码基础上末位加“1”,符号位不变。【例】求X=20,Y=-21的补码,假设分配8bit的存储空间。1.1.4

ASCII码ASCII码(美国信息交换标准码)分为标准ASCII码和扩展ASCII码两种。1.标准ASCII码标准ASCII码用7位二进制表示一个字符,但实际分配了一个字节(8位)的存储空间,其最高位置为0。标准ASCII码可表示128个不同字符。在C语言编程中,很多操作都是以ASCII码为基础的,如字符的比较。1.1.4

ASCII码2.扩展ASCII码128个ASCII码字符可以满足英语处理的需要,但是还有一些非英语系的字符没法表示。于是,一些欧洲国家就将字节中闲置的最高位置1,又编入了128个新的符号。使用8位二进制数编码的ASCII码称为扩展ASCII码。扩展ASCII码的二进制最高位是1,其范围为128~255。无论哪个国家的ASCII码字符集,前128个一定是一样的,都是基本ASCII码中的字符,后128个不同国家有所不同。ASCII码的局限在于只能处理英语,对更多其他语言依然无能为力。因此,现在的软件系统大多采用Unicode编码,特别是与ASCII码向下兼容的UTF-8。1.2.1程序与程序设计语言程序设计语言也称为编程语言,具有特定的语法规则,能被计算机接受和处理,在人和计算机之间传递信息。程序设计语言经历了机器语言、汇编语言和高级语言3个阶段。机器语言是二进制形式,能被计算机直接识别和执行。汇编语言使用一些英文缩写、数字和字母取代二进制指令,方便了程序的编写。1.2.1程序与程序设计语言1.机器语言机器语言是二进制形式,能被计算机直接识别和执行。机器语言程序中的每一条指令都是一组二进制代码,由操作码和操作数组成,操作码说明了指令的功能,操作数是参与运算的数值或存储单元地址。如:10000110000000111000101000000100机器语言程序能被计算机直接执行,不需要任何翻译,运算效率高。但是机器指令不好记忆,直观性差,容易出错且不易查错修改,而且难移植。1.2.1程序与程序设计语言2.汇编语言

汇编语言使用一些英文缩写、数字和字母取代二进制指令,方便了程序的编写,如:MOVE A 3ADD A 4汇编语言使程序编写更容易,但是执行时必须先翻译成二进制,这个过程称为汇编。汇编语言编写的程序称为源程序,翻译后的二进制程序称为目标程序。汇编语言本质上仍然是面向机器的语言,使用起来仍然比较繁琐费时,通用性也比较差。1.2.1程序与程序设计语言3.高级语言

高级语言与自然语言相近,而且与硬件分离,具有使用简单、通用性强,兼容性好,便于移植的优点,如C、C++、C#、VC、JAVA、Python等。高级语言程序也必须翻译成二进制,计算机才能识别和执行。这种“翻译”有两种方式:编译和解释。编译方式是使用编译程序把高级语言源程序整个翻译成与源程序等价的二进制目标程序,然后计算机再执行该目标程序,如C、C++、C#、VC等。解释方式是通过解释程序对源程序逐句分析、翻译成二进制代码,解释一句,计算机执行一句,如JAVA、Python等。注意,解释方式不产生目标程序。1.2.2算法算法是对特定问题求解步骤的一种描述。算法应该具有以下特性:确定性:算法中的每一步必须无二义性,即有精确的定义。有穷性:算法必须能在经过有限步骤后结束。可行性:算法中的每一步必须能在有限时间内完成,也称为有效性。输入:算法必须要有输入,输入可以在算法中直接给出(也称为0个输入),也可以在算法运行时额外提供。输出:算法必须要有输出,也就是说算法执行必须要有结果,没有输出的算法是无意义的。1.2.2算法

1.2.2算法1.算法的评价标准空间复杂度指算法执行需要消耗的内存空间,可以使用算法执行过程中创建的变量个数来衡量。空间复杂度一般只有两种情况:O(1):创建了常数个变量,如前面程序段。O(n):创建了n个变量。在计算机发展的早期,由于存储空间比较小,所以算法很重视空间复杂度。但随着计算机存储空间越来越大,时间复杂度变得更重要。1.2.2算法2.算法的逻辑结构任何复杂的算法,都可以由顺序结构、分支结构和循环结构这三种基本结构构成。顺序结构:在顺序结构中,组成算法的若干步骤按照从上到下的顺序依次执行,直至结束。分支结构:分支结构也叫条件结构、选择结构或判断结构,需要先做判断,然后根据判断结果再决定执行哪些操作。循环结构:在算法设计过程中,需要重复执行某一组步骤的结构称为循环结构。需要反复执行的步骤称为循环体。循环体不能一直重复执行,必须要在某一刻终止,不能终止的循环称为死循环。三种基本结构可以并列、可以相互包含,但不允许交叉,即不允许从一个结构直接转到另一个结构的内部去。遵循这种原则构筑的算法,结构清晰,易于正确性验证,易于纠错,称为结构化方法。遵循这种原则的程序,就是结构化程序。1.2.2算法3.算法的描述方法算法可采用多种方法描述,常用的有自然语言、伪代码、流程图和计算机语言(如C语言)。自然语言方法就是用人们日常交流使用的语言来描述算法。伪代码是一种非正式的,类似于英语结构的算法描述语言。它介于自然语言和计算机语言之间,不拘泥于具体实现,重点在于功能的描述。伪代码的使用有一些简单的约定。1.2.2算法3.算法的描述方法流程图又称框图,是算法的一种图形化表示。它采用一些图框、线条以及文字描述算法从开始到结束的流程,具有直观、清晰、更易理解的特点。传统流程图通过流程线描述算法的进程,当算法比较复杂的时候,流程线就会很多,看起来会比较乱。顺序结构

分支结构图

当型循环

直到型循环1.2.2算法3.算法的描述方法N-S流程图去掉了传统流程图中带箭头的流程线,全部算法以一个大的矩形框表示,该框内还可以嵌套一些从属于它的小矩形框。顺序结构

分支结构图

当型循环

直到型循环1.2.3C语言概述1.C语言的产生和发展C语言诞生于美国贝尔实验室,由BCPL语言演变而来。1970年,贝尔实验室的KenHompson在BCPL语言的基础上设计出B语言,B语言又进一步发展成为C语言。ANSIC标准(C89标准)⇒ISOC标准(C90标准)⇒C99标准⇒C11标准⇒C18标准1.2.3C语言概述2.C语言的特点(1)C语言是一种结构化的编程语言,通过函数实现模块化编程,层次清晰,易于调试、维护和移植。(2)C语言包含丰富的数据类型和运算符:不仅有传统的整型、浮点型和字符型,还可以在这些传统类型的基础上构造复杂数据类型,如数组、结构体等。(3)C语言引入了指针,可以直接操作硬件;能进行位(bit)操作,可以实现汇编语言的大部分功

温馨提示

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

评论

0/150

提交评论