收藏 分销(赏)

2022年程序设计基础完整.ppt

上传人:二*** 文档编号:5456230 上传时间:2024-11-06 格式:PPT 页数:92 大小:3.02MB
下载 相关 举报
2022年程序设计基础完整.ppt_第1页
第1页 / 共92页
亲,该文档总共92页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、第一章程序设计基础第一章程序设计基础优选第一章程序设计基础导言程序设计基础的学科地位 程序设计基础是计算机专业基础课,它为以后的面向对象技术的学习以及C可视化软件的学习奠定了基础,同时C语言也是数据结构和操作系统等计算机专业主干课程的上机工具,要求学生充分重视。导言如何学好程序设计基础(仅供参考)勤学课内、课外;中文、英文 多练实践是检验真知的唯一标准好问不“知”下问善于思考“学而不思则罔”教学要求 通过课堂授课与上机实验相结合的方式,使通过课堂授课与上机实验相结合的方式,使学生能够学生能够深刻理解结构化程序设计的思想与方法深刻理解结构化程序设计的思想与方法掌握掌握C C语言的基础知识语言的基

2、础知识能够在计算机上熟练使用能够在计算机上熟练使用C C语言的编辑环境来语言的编辑环境来编写、调试、运行程序编写、调试、运行程序具有一定实践体会和相关的编程能力,能编写具有一定实践体会和相关的编程能力,能编写超过超过10001000行的行的C C语言应用程序语言应用程序 。主要参考书目谭浩强,谭浩强,C C语言程序设计,清华大学出版社,语言程序设计,清华大学出版社,1999.1999.全国计算机等级考试二级全国计算机等级考试二级C C教材。教材。C语言教学网站集思广益集思广益考核办法课程考核办法:课程考核办法:最终成绩最终成绩=平时成绩平时成绩*30%+期末考试成绩期末考试成绩*70%平时成绩

3、平时成绩=出勤出勤*10%+作业作业*40%+实验实验*50%计算机是计算机是20世纪世纪40年代人类的伟大创造。年代人类的伟大创造。当今计算机应用日益普及,它广泛应用于科学计算、过程当今计算机应用日益普及,它广泛应用于科学计算、过程控制、信息传递和数据处理,而且已渗透到办公、教育、控制、信息传递和数据处理,而且已渗透到办公、教育、家庭等许多领域。家庭等许多领域。计算机系统能够按人的要求接收和存储信息,能对信息进计算机系统能够按人的要求接收和存储信息,能对信息进行处理并提供所需结果,其结果(输出信息)取决于所接行处理并提供所需结果,其结果(输出信息)取决于所接收的信息(输入信息)及相应的处理算

4、法。收的信息(输入信息)及相应的处理算法。计算机系统包括计算机硬件和计算机软件两大部分。计算机系统包括计算机硬件和计算机软件两大部分。计算机硬件是借助电、磁、光、机械等原理构成的各种物计算机硬件是借助电、磁、光、机械等原理构成的各种物理部件的组合,是系统赖以工作的实体。理部件的组合,是系统赖以工作的实体。计算机软件一般指计算机系统中的程序及其文档,用于指计算机软件一般指计算机系统中的程序及其文档,用于指挥和管理整个系统按指定的要求进行工作。挥和管理整个系统按指定的要求进行工作。1.0 计算机简介计算机简介1.0 计算机简介计算机简介计算机硬件组成计算机硬件组成主机主机输入设备输入设备:输入程序

5、和数据,如键盘、鼠标输入程序和数据,如键盘、鼠标输出设备输出设备:输出计算结果,如显示器、打印机输出计算结果,如显示器、打印机输入设备输入设备输入设备输入设备输出设备输出设备外部存贮器外部存贮器(外存外存):储存各种数据储存各种数据,如硬盘、如硬盘、软盘、软盘、U U盘盘存储设备:硬盘和软盘存储设备:硬盘和软盘存储设备:光盘和优盘存储设备:光盘和优盘1.0 计算机简介计算机简介一、计算机主机的组成一、计算机主机的组成1 1、中央处理器、中央处理器(CPU)CPU)运算器运算器 控制器控制器 寄存器组寄存器组对数据进行运算对数据进行运算控制计算机各部分协调工作控制计算机各部分协调工作存放指令和数

6、据等存放指令和数据等1.0 计算机简介计算机简介2 2、存储器、存储器(内存内存):):存放程序代码及数据存放程序代码及数据3 3、主板、主板、声卡、显卡、数据线、电源等声卡、显卡、数据线、电源等二、计算机基本结构二、计算机基本结构外部设备外部设备中央处理器中央处理器 (CPU)存储器存储器输入输入/输出输出接口电路接口电路数据总线数据总线控制总线控制总线地址总线地址总线1.0 计算机简介计算机简介高高级级语语言言编编译译系系统统操作系统操作系统(Operating System)Operating System):OSOS是各种软件的核心与基础是各种软件的核心与基础功能功能:cpucpu管理

7、、存储管理、文件管理、设备管理、作业管理管理、存储管理、文件管理、设备管理、作业管理常用的常用的OS:OS:MS-DOSMS-DOS、WindowsWindows、UnixUnix、LinuxLinux操作系统操作系统用户源程序用户源程序裸机裸机编译系统和高级语言环境编译系统和高级语言环境用户源程序用户源程序1.0 计算机简介计算机简介程序设计语言程序设计语言一、程序的概念一、程序的概念二、计算机软件二、计算机软件程序程序是计算任务的处理对象和处理规则的描述。是计算任务的处理对象和处理规则的描述。计算机软件计算机软件 =程序程序 +文档文档1.计算机处理的任务都是计算任务。计算机处理的任务都是

8、计算任务。2.处理对象是数据。处理对象是数据。3.处理规则是指处理的动作和步骤。处理规则是指处理的动作和步骤。三、软件语言三、软件语言软件语言是书写计算机软件的语言软件语言是书写计算机软件的语言程序设计语言程序设计语言四、程序设计语言四、程序设计语言程序设计语言是用于书写计算机程序的语言。程序设计语言是用于书写计算机程序的语言。基本成分:基本成分:1.数据成分:描述程序所涉及的数据数据成分:描述程序所涉及的数据2.运算成分:描述程序所包含的运算运算成分:描述程序所包含的运算3.控制成分:表达程序的控制构造控制成分:表达程序的控制构造4.传输成分:表达程序的数据传输传输成分:表达程序的数据传输判

9、断判断程序设计语言程序设计语言=软件语言软件语言程序设计语言程序设计语言五、程序设计语言的发展五、程序设计语言的发展1.机器语言机器语言 二进制代码表示的计算机能二进制代码表示的计算机能直接识别和执行的一种机器指令直接识别和执行的一种机器指令集合。集合。执行速度快,但较难掌握,不执行速度快,但较难掌握,不同型号的计算机,其语言也不同。同型号的计算机,其语言也不同。根据语言与硬件的关联程度,程序设计语言分为:根据语言与硬件的关联程度,程序设计语言分为:低级语言和高级语言低级语言和高级语言发展过程是从低级到高级发展过程是从低级到高级程序设计语言程序设计语言2.汇编语言汇编语言 用助记符号描述的指令

10、系统。如用助记符号描述的指令系统。如:ADD a,b 汇编语言机器不能直接执行汇编语言机器不能直接执行,必须翻译成机器语言,较难掌握。必须翻译成机器语言,较难掌握。汇编语言汇编语言机器语言机器语言编译编译不能直接执行不能直接执行较为简单,一一对应替换较为简单,一一对应替换程序设计程序设计3.高级语言高级语言 接近于自然语言的计算机程序设计语言。不能直接运行,接近于自然语言的计算机程序设计语言。不能直接运行,需要转换为机器语言。通常有解释和编译两种。需要转换为机器语言。通常有解释和编译两种。使用较普遍的高级语言:使用较普遍的高级语言:FORTRAIN,ALGOL,BASIC,PASCAL,C,C

11、+,JAVA,Delphi等。等。高级语言高级语言机器语言机器语言解释解释编译编译类似于自然语言类似于自然语言需要专门的编译需要专门的编译器、解释器,过器、解释器,过程较为复杂。程较为复杂。程序设计程序设计三种语言的比较三种语言的比较高级语言高级语言汇编语言汇编语言机器语言机器语言程序设计程序设计六、程序设计的具体步骤:六、程序设计的具体步骤:1.方案确定:方案确定:建立问题的数学模型建立问题的数学模型2.算法描述:描述处理规则算法描述:描述处理规则3.数据描述:描述处理对象数据描述:描述处理对象4.编写程序(编码):转换为程序语言编写程序(编码):转换为程序语言5.程序测试:检测程序的正确性

12、程序测试:检测程序的正确性注:编写程序只是程序设计的一个步骤,不等于程序设计注:编写程序只是程序设计的一个步骤,不等于程序设计数据结构数据结构数据结构数据结构(Data Structure):计算机存储、组织数据:计算机存储、组织数据的方式。的方式。数据结构一般包括三个方面的内容:数据结构一般包括三个方面的内容:1.数据之间的逻辑关系,也称数据的逻辑结构数据之间的逻辑关系,也称数据的逻辑结构(Logical Structure)2.数据元素及其关系在计算机存储器内的表示,称为数据数据元素及其关系在计算机存储器内的表示,称为数据的存储结构(的存储结构(Storage Structure)3.数据

13、的运算,即对数据施加的操作。数据的运算,即对数据施加的操作。数据结构数据结构 =逻辑结构逻辑结构 +存储结构存储结构 +运算运算算法概述算法概述一、一、算法的概念及特性算法的概念及特性 1 1、算法的概念、算法的概念 广义上讲,算法就是为解决一个问题而采取的广义上讲,算法就是为解决一个问题而采取的 方法和步骤。方法和步骤。对同一个问题可能有不同的解决方法和步骤,对同一个问题可能有不同的解决方法和步骤,即不同的算法为了快速有效的解决问题,在保证即不同的算法为了快速有效的解决问题,在保证算法正确的基础上,还要考虑算法的质量,选择算法正确的基础上,还要考虑算法的质量,选择较优的算法。(方法较优的算法

14、。(方法简单,运算步骤少,运算快,简单,运算步骤少,运算快,内存开销小的算法内存开销小的算法)数据结构数据结构+算法算法=程序程序对数据的描述对数据的描述对操作的描述对操作的描述2、计算机算法的分类:、计算机算法的分类:(1)数值运算算法数值运算算法-用于求数值解,如求解一个多元方程用于求数值解,如求解一个多元方程(2)非数值运算算法非数值运算算法-多用于管理领域,如图书管理多用于管理领域,如图书管理 著名计算机科学家沃思提出的一个公式:著名计算机科学家沃思提出的一个公式:算法概述算法概述有穷性:有穷性:空间有穷:一个算法包含有限的操作步骤;空间有穷:一个算法包含有限的操作步骤;时间有穷:算法

15、可以在合理的时间内运行完。时间有穷:算法可以在合理的时间内运行完。确切性:算法中的每一个步骤是确定的,含义是唯一的确切性:算法中的每一个步骤是确定的,含义是唯一的可行性:算法中每一个步骤是可行的。可行性:算法中每一个步骤是可行的。有零个或多个输入有零个或多个输入有一个或多个输出有一个或多个输出3、算法的五大特性、算法的五大特性算法概述算法概述例例1-1:对于给定的有序数列:对于给定的有序数列3,5,11,17,21,23,28,30,32,50,如何查找如何查找30这个数据元素。这个数据元素。算法概述算法概述算法一:将算法一:将30按顺序与给定数列逐一比较直到找到为止。这种按顺序与给定数列逐一

16、比较直到找到为止。这种算法在最坏的情况可能需要比较整个序列。算法在最坏的情况可能需要比较整个序列。算法二:查找过程中采用跳跃式方式查找,即先以有序数列算法二:查找过程中采用跳跃式方式查找,即先以有序数列的中点位置为比较对象,如果要找的元素值小于该中点元素,的中点位置为比较对象,如果要找的元素值小于该中点元素,则将待查序列缩小为左半部分,否则为右半部分。通过一次则将待查序列缩小为左半部分,否则为右半部分。通过一次比较,将查找区间缩小一半。比较,将查找区间缩小一半。递推法递推法递归法递归法穷举搜索法穷举搜索法贪婪法贪婪法分治法分治法动态规划法动态规划法迭代法迭代法4、算法设计与分析常用的方法、算法

17、设计与分析常用的方法算法概述算法概述一、一、算法的表示方法算法的表示方法常用的算法表示方法:自然语言、流程图、常用的算法表示方法:自然语言、流程图、N-S图、图、伪代码、程序语言等。伪代码、程序语言等。1、自然语言表示法、自然语言表示法 用自然语言描述的算法。用自然语言描述的算法。例例1-2:用自然语言表示求两个数的和用自然语言表示求两个数的和(如如2+3)1.2 算法表示方法算法表示方法Step1:将输入的第一个数将输入的第一个数2存入存入xStep2:将输入的第二个数将输入的第二个数3存入存入yStep3:将将x和和y相加的结果存入相加的结果存入zStep4:输出结果输出结果z通俗易懂,通

18、俗易懂,比较冗余,比较冗余,容易出现歧容易出现歧义义2、流程图表示法、流程图表示法 用图框表示各种操作,用箭头表示算法流程用图框表示各种操作,用箭头表示算法流程 1.2 算法表示方法算法表示方法调用子程序调用子程序双边矩形框双边矩形框循环循环尖头框尖头框流程的起点或终点流程的起点或终点圆弧边框圆弧边框判断判断菱形菱形输入或输出输入或输出平行四边形平行四边形连接点连接点圆形圆形处理功能处理功能矩形矩形流向或路径流向或路径箭头箭头含义含义名称名称符号符号2、流程图表示法、流程图表示法 用图框表示各种操作,用箭头表示算法流程用图框表示各种操作,用箭头表示算法流程 用流程图表示求两个数的和用流程图表示

19、求两个数的和1.2 算法表示方法算法表示方法开始开始Zx+y 结束结束输出输出z输入输入x输入输入y直观形象直观形象,易于理解易于理解流程线没流程线没有严格限有严格限制。制。C语言是一种结构化程序设计语言,结构化程序语言是一种结构化程序设计语言,结构化程序设计主要采用自上而下、逐步细化的方法。结构化程设计主要采用自上而下、逐步细化的方法。结构化程序有三种基本结构:序有三种基本结构:顺序结构顺序结构选择结构选择结构循环结构循环结构ABPAB成立成立不成立不成立不成立不成立AP成立成立AP成立成立不成立不成立“当型当型”循循环环“直到型直到型”循循环环流程图表示法流程图表示法传统的程序流程图例图传

20、统的程序流程图例图结束结束输入输入a,b,cab?bc?ac?输出输出c输出输出b输出输出c输出输出a开始开始YNYYNN即结构化程序设计流程图,提供了描述三种基本逻辑即结构化程序设计流程图,提供了描述三种基本逻辑结构的图形工具,与传统的程序流程图对照描述如下:结构的图形工具,与传统的程序流程图对照描述如下:1、顺序结构、顺序结构A模块模块B模块模块A模块模块B模块模块图表示法图表示法(b)N-S图表示图表示(a)流程图表示流程图表示2、选择结构(分支结构)、选择结构(分支结构)A模块模块B模块模块判断条件判断条件成立吗?成立吗?判断条件判断条件成立吗?成立吗?成立成立 不成立不成立A模块模块

21、B模块模块图表示法图表示法(b)N-S图表示图表示(a)流程图表示流程图表示由分支结构派生出来的多分支结构由分支结构派生出来的多分支结构A1块块判断条件判断条件成立吗?成立吗?A2块块An块块图表示法图表示法(a)流程图表示流程图表示(b)N-S图表示图表示K=?K1 K2 KnA1块块 A2块块 An块块3、循环结构、循环结构a.当型循环结构:先判断循环条件是否满足,当条件满足,执行当型循环结构:先判断循环条件是否满足,当条件满足,执行一遍循环体,再判断循环条件,仍满足再执行一遍循环体一遍循环体,再判断循环条件,仍满足再执行一遍循环体直直到不满足条件,则退出循环,执行循环体后的下一语句。若第

22、一到不满足条件,则退出循环,执行循环体后的下一语句。若第一次判断条件就不满足,则一次也不执行循环体。次判断条件就不满足,则一次也不执行循环体。循环体循环体循环条件循环条件满足吗?满足吗?不满足不满足满足满足图表示法图表示法(b)N-S图表示图表示(a)流程图表示流程图表示 循环体循环体循环条件满足吗?循环条件满足吗?(b)N-S图表示图表示b.直到型循环结构:先执行一遍循环体,再判断循环条件是否满足,直到型循环结构:先执行一遍循环体,再判断循环条件是否满足,如不满足再执行一遍循环体如不满足再执行一遍循环体直到条件满足,则退出循环,执行直到条件满足,则退出循环,执行循环体后的下一语句。这种循环结

23、构至少要执行一遍循环体。循环体后的下一语句。这种循环结构至少要执行一遍循环体。不满足不满足满足满足循环体循环体循环条件循环条件满足吗?满足吗?图表示法图表示法(a)流程图表示流程图表示 直到循环条件满足为止直到循环条件满足为止循环体循环体2、N-S流程图表示法流程图表示法ABAB成立成立不成立不成立P A当当P成立成立 直到直到P不成立不成立 A 顺序结构顺序结构选择结构选择结构循环结构循环结构“当型当型”循循环环“直到型直到型”循循环环图表示法图表示法例例 描述求描述求n!的值的算法的值的算法图表示法图表示法F=1,i=1F=1,i=1开始开始开始开始输入输入输入输入 n ni n?i n?

24、F=F*iF=F*i输出输出输出输出 F F结束结束结束结束 i=i+1 i=i+1例:输入例:输入10个数,找出其中最大的数,并输出。个数,找出其中最大的数,并输出。step6:step6:若若i=9imaxxmax,则将,则将x x的值送入的值送入max,max,输入一个数输入一个数 maxmax1 1 i i输入输入 x x x x max?max?是是否否x x max maxi+1 i+1 i i当当 i=9i=9输出输出 maxmax#include void main()int x,max,i;scanf(“%d”,&max);i=1;do scanf(“%d”,&x);if (

25、xmax)max=x;i=i+1;while(i=9);printf(“max=%d”,max);1.3 程序设计方法程序设计方法一、一、结构化程序设计结构化程序设计(SP方法方法)1.程序的基本单元是函数。程序的基本单元是函数。2.SP方法主张使用顺序、选择、循环三种基本结构来嵌套方法主张使用顺序、选择、循环三种基本结构来嵌套连结成具有复杂层次的连结成具有复杂层次的“结构化程序结构化程序”,严格控制,严格控制GOTO语句(无条件转移)的使用。语句(无条件转移)的使用。3.“自顶而下,逐步求精自顶而下,逐步求精”的设计思想,的设计思想,“独立功能,单出、独立功能,单出、入口入口”的模块仅用的模

26、块仅用3种种(顺序、分支、循环顺序、分支、循环)基本控制结构基本控制结构的编码原则。的编码原则。4.C语言就是结构化设计语言。语言就是结构化设计语言。结构化程序设计方法结构化程序设计方法1、自顶向下、自顶向下2、逐步细化、逐步细化3、模块化设计、模块化设计4、结构化编码、结构化编码 需要解决的问题需要解决的问题 P 子问题子问题p1 子问题子问题p2 子问题子问题p3 p12 p11 p32 p31 p33 设计设计设计设计设计设计设计设计设计设计设计设计编码编码编码编码编码编码编码编码编码编码编码编码程程序序结结构构图图1.3 程序设计方法程序设计方法二、二、面向对象程序设计面向对象程序设计

27、(OOP)1.这种语言把现实世界看成是由许多对象所组成的这种语言把现实世界看成是由许多对象所组成的,对象之间对象之间通过互相发送和接收消息进行联系。通过互相发送和接收消息进行联系。2.程序的基本单元是对象。程序的基本单元是对象。3.具有三大特性:封装性、继承性和多态性。具有三大特性:封装性、继承性和多态性。4.C+语言就是面向对象的程序设计语言。语言就是面向对象的程序设计语言。类类关关系系图图程序设计基础基本数据类型常量和变量n十进制n二进制n八进制n十六进制常用进制有哪些?各种进制数如何区别?B B表示二进制数制;OO表示八进制数制;D D或不带字母表示十进制数制;H H表示十六进制数制。5

28、3数制及其转换数制及其转换nr进制数的展开和式ana1a0a-1a-m(r)anrna1ra0a-1r-1a-mr-m其中r r为基数,整数为n n1 1位,小数为mm位54 数制及其转换数制及其转换n二、八、十六进制转换为十进制 展开式!怎样转换?(1101.01)212312202112002-112-28410.2513.25(237.4)828238178048-11282470.5159.5(A05.C)1610162016151601216-125605 0.752 565.7555n十进制转换为二、八、十六进制怎样转换?十进制整数 r r进制数:除以 r r取余数,直到商为0 0

29、时结束。所得余数序列,先余为低位,后余为高位。十进制小数 r r进制数:乘以 r r取整数,直到余数为0 0时结束。所得整数序列,先整为高位,后整为低位。数制及其转换数制及其转换56十进制数转化为二进制数十进制数转化为二进制数 (1 1)整数转换:)整数转换:除除2 2反序取余反序取余 直至商为直至商为0 0为止。为止。例如例如:(:(86)10=()286余数余数0 0最初得到的余数为最低位。最初得到的余数为最低位。2 4321 12 212 100 02 51 1220 02 11 1 01 11010110数制及其转换数制及其转换57(2 2)小数转换:)小数转换:乘乘2 2顺序取整顺序

30、取整,直至小数部分为直至小数部分为0 0 或达到题目规定的保留小数的位数。或达到题目规定的保留小数的位数。例例1 1:(0.75)10=()2例例2:2:(0.8)10=()2 保留小数点后保留小数点后6 6位。位。0.110.1100110.752整数整数1 1.51 121 1.01 10.82整数整数1 1.61 121 1.21 120 0.40 020 0.80 021 1.61 121 1.21 158数制及其转换数制及其转换n实例:求(11.375)10()2。整数转换除2 2取余,小数转换乘2 2取整。将转换后的整数与小数相拼,有:(11.375)10(1011.011)2。5

31、9数制及其转换数制及其转换n实例:求(93.4375)10()8。将转换后的整数与小数相拼,有:(93.4375)10(135.34)8。60二进制数与八进制数的转换二进制数与八进制数的转换 三位一组,分别转换三位一组,分别转换如如:(101010110)2=(101 010 110)2526=(526)8 二进制二进制 八进制八进制一位拆三位一位拆三位整数从右向左三位并一位整数从右向左三位并一位小数从左向右三位并一位小数从左向右三位并一位数制及其转换数制及其转换61二进制数与十六进制的转换二进制数与十六进制的转换 四位一组,分别转换四位一组,分别转换二进制二进制十六进制十六进制一位拆四位一位

32、拆四位整数从右向左四位并一位整数从右向左四位并一位小数从左向右四位并一位小数从左向右四位并一位数制及其转换数制及其转换62数制及其转换数制及其转换n二进制与八、十六进制间的转换二进制与八进制转换表二进制与八进制转换表1位八进制数位八进制数012345673位二进制数位二进制数000001010011100101110111二进制与十六进制转换表二进制与十六进制转换表1位十六进制数位十六进制数012345674位二进制数位二进制数000000010010001101000101011001111位十六进制数位十六进制数89ABCDEF4位二进制数位二进制数10001001101010111100

33、11011110111163n实例:实例:求求(93.437 5)10()8。将转换后的整数与小数相拼,有:(93.4375)10(135.34)8。64数据在计算机内的表示数据在计算机内的表示n数值数据的机内表示:(1)定点表示 用半字表示的定点整数X的数值范围是:-(215-1)X +(215-1)或-16383 X +16383 65数据在计算机内的表示数据在计算机内的表示n数值数据的机内表示:(1)定点表示 如果是定点小数,如+0.100111,-0.100111。则半字表示如图 66数据在计算机内的表示数据在计算机内的表示(2)浮点表示(Floating point)要在计算机内用浮

34、点形式表示一个实数的关键是表示出数的阶码和尾数。一般地,计算机用32位的单元,即一个机器字表示一个实数。机机器字的第一个字节表示数的阶码,其余三个字节表示尾数器字的第一个字节表示数的阶码,其余三个字节表示尾数。67标识符和关键字n标识符C语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线n关键字关键字是由语言规定的具有特定含义的字符串(英文单词),又称为保留字。68n数据类型数据类型的概念n数据类型是一类数据的抽象表示,这类数据具有相同的形式,遵从相同的运算规则程序处理的基本数据按性质划分属于同一类的各个数据都具有同样的性质同样的操作同样的编码方式把程序语言中具

35、有这样性质的数据集合称为数据类型。什么是数据和数据类型 69C语言的数据类型n数据类型的分类数据类型数据类型空类型空类型指针类型指针类型构造类型构造类型结结构构体体类类型型数数组组类类型型共共用用体体类类型型基本类型基本类型整型整型实型实型字符型字符型标准类型标准类型用户定义类型用户定义类型枚举型枚举型单精度型单精度型 双精度型双精度型指针类型指针类型n n用于存放地址(指针),用用于存放地址(指针),用来解决动态数据的建立、删来解决动态数据的建立、删除和使用除和使用空类型空类型n n用于数据类型的转换用于数据类型的转换基本类型基本类型n n构造简单,已由系统定义好构造简单,已由系统定义好构造

36、类型构造类型n n由其它数据类型按一定规则由其它数据类型按一定规则构造而成。构造而成。70C语言的数据类型n数据类型的分类每个数据类型都有固定的表示方式n这个表示方式确定了可能表示的数据范围以及数据在内存中的存放形式nC程序中所出现的所有数据都必须明确指定其数据类型n数据类型的体现常量和变量是在计算机中数据类型的表现形式n存放的是实在的数据,这些数据符合对数据类型的规定n常量和变量之间的区别在于程序执行过程中的变化情况常量是一成不变的变量则可以不断改变71C语言的数据类型n数据类型的长度在计算机中,由于软硬件的各种原因,数据类型必须有一个长度的限制n这个长度是指数据存储在计算机中需要占用多少个

37、字节数n不同类型的数据在内存中占用的字节数是不同的n溢出处理不同的数据类型规定了不同的机内表示长度,也决定了对应数据量的变化范围,当某一数据超出该数据类型所规定的范围时,计算机会拒绝接受,而将之转换成范围内的另外某个数,这种情况称之为溢出处理。72常量n n常量常量在程序运行过程中其值不能被改变的量值n例1:1,2003.1,-4.0A,b“abc”,“ABn”在程序中使用常量时,一般不需要具体指出它属于哪一种类型C语言编译系统会自动根据常量的数据大小和直观形式来确定它的数据类型n例2:3,3.0,3,“3”73常量n n语言提供的常量语言提供的常量数值常量数值常量n n整型整型n n实型实型

38、字符常量字符常量n n字符常量字符常量n n字符串常量字符串常量这些类型决定了各种常量所占存储空间的大小和这些类型决定了各种常量所占存储空间的大小和数的表示范围数的表示范围特殊形式常量特殊形式常量n n符号常量符号常量74常量n整型常量一个整数常用的整数类型整型(VC中)4字节n长整型8字节n无符号整型4字节n无符号长整型8字节75常量n整型常量三种形式n十进制,有效的十进制数字串例:100,32767,-120n八进制,以数字“0”开头的八进制数字串例:0100,0123,-012n十六进制,以数字0 x或0X开头的十六进制字符串例:0 x123,0 x100,-0 x12n长整型常量n可表

39、示为:十进制、八进制、十六进制n在常数之后加上字母或76常量n实型常量实数,又称浮点数类型n单精度型4字节:10-381038n双精度型8字节:10-30810308n长双精度型16字节:10-493110493277常量n实型常量有效位数n单精度有效数字位数为十进制数的67位n双精度有效数字位数为十进制数的1516位n长双精度型有效数字位数为十进制数的1819位两种形式n小数形式由正负符号、整数部分、小数点及小数部分组成例:3.0,5.123,-120.1,0.0n指数形式由尾数、字母e或E及指数部分组成例:123.0E-1,-1.23e3标准的指数形式是:小数点的左侧只有一位数字78常量n

40、实型常量提示n在语言中,实型常量一般都作为双精度来处理n注意指数必须是不超过数据表示范围的正负整数,并且在e或E前必须有数字n对于超过有效数字位的数位,系统存储时自动舍去79常量n字符常量包括可以全部在计算机上显示的符号nASCII码表上的全部字符n一个字符的存储占用一个字节表示方法n用单引号括起来的一个字符A,1n用单引号括起来的以字符开始的字符n,t80常量n字符常量C语言中字符型数据和整型数据可以通用n字符型数据在计算机中存储的是字符的ASCII码ASCII码形式上就是0到255之间的整数例如字符A的ASCII码值用是65A+32;/*执行结果65+32=97,是a的ASCII码值*/8

41、1常量n字符串常量是用一对双引号括起来的字符序列n双引号仅做定界符使用,本身不算入字符串常量n例如“ABC”,“”(有空格),“a”,“HappynewYear”,“abcn”,“”(无空格)等C语言规定字符串的最后必须以空字符0结尾n编译程序总是自动地在字符串的结尾加上一个转义字符0ASCII码是0,所对应的字符是空空字符并不计算在字符串的长度里,但是存储时,空字符将会额外的占用一个字节空间82常量n n字符串常量字符串常量字符串常量与字符常量的区别字符串常量与字符常量的区别n n形式形式字符常量是用单引号括起的单个字符字符常量是用单引号括起的单个字符字符串常量是用双引号括起的一串字符字符串

42、常量是用双引号括起的一串字符n n存储方式存储方式字符常量在内存中占一个字节字符常量在内存中占一个字节字符串常量除了每个字符各占一个字节外,字符串常量除了每个字符各占一个字节外,其字符串结束符其字符串结束符00也要占一个字节也要占一个字节n n例如例如字符常量字符常量aa占一个字节占一个字节字符串常量字符串常量aa占占2 2个字节个字节011000010110000100000000a a“a”“a”9797083常量n符号常量在C语言中允许程序中的常量定义为一个标识符,这个标识符称为符号常量n带有名字的常量定义格式n#definen例如:#defineAGE35#defineM1.97340

43、67e9提示n简化书写格式、减少出错率n定义符号常量可以提高程序的可读性,便于程序的调试和修改n符号常量不同于变量,在其作用域内不能被改变和重新赋值n习惯上人们把符号常量名用大写字母表示84变量n变量在程序运行过程中其值发生改变(可以被改变)的量值C语言规定所有用到的变量都必须在程序中指定其数据类型,必须“先定义后使用”n一个变量应该有一个名字(标识符)定义变量时要给其命名n一个变量应该有一种数据类型编译系统根据定义变量的数据类型为其分配存储单元并在该存储单元中存放变量的值85变量n变量的命名每个变量都由一个变量名来标识在C语言中,变量名作为变量的标识,其命名规则符合标识符的所有规定n语言规定

44、标识符只能由字母、数字和下划线组成且第一个字符必须是字母或下划线提示n大、小写字母被认为是不同的变量名例:Sun、sun、SUN是三个不同的变量n尽量取与变量含义接近的名称86变量n变量的定义变量定义的目的n定义变量名n定义变量的数据类型变量的类型决定变量的存贮结构,使C语言的编译程序为所定义的变量分配存储空间n变量的定义说明了变量叫什么以及用来做什么定义一个变量的过程,实际上就是向内存申请一个变量的数据类型大小的空间的过程变量实质上就是内存某一单元的标识符号,对这个符号的引用就是对相应的内存单元的存取操作87变量n变量的定义用类型说明语句对变量进行定义定义格式typenamelist;变量表

45、namelist的形式是:变量1,变量2,变量名n,用逗号分隔的变量名的集合n例inta,b23,C_123;floatsum;charmax_ch;变量的基本数据类型n整型、实型、字符型88变量n整型变量不同类型的差别在于占用不同的存储空间n采用不同位数的二进制编码方式计算机内部总是采用二进制补码形式表示一个数值型数据例如:整型的最高位为符号位:“1”表示负数,“0”表示正数,其余15位表示数值无符号整型数全部16位表示数值89变量n整型变量整型类型的基本标志是int基本型(int)短整型(shortint、short)长整型(longint、long)无符号整型(unsignedint、u

46、nsignedlong、unsignedshort)例ninta;longb;unsignedintc;提示n使用某种类型的变量时,一定要注意该类型变量的取值范围90变量n实型变量存储实型数据ANSIC允许的定义三种实型变量nfloat单精度型nDouble双精度型nlongdouble长双精度型n例floata,b;doublex;longdoubley;n提示运用实数运算时要合理使用不同的类型,尽可能减少误差91变量n字符变量用来存放一个字符常量n即一个字节存放一个字符标示:charn例:charc1,a2;提示n不能将一个字符串常量赋给一个字符变量例:charc1,c2;c1=a;c2=b;合法c1=“a”;c2=“b”;非法92

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服