学期C程序设计(第三版)教材PPT-第3章-1讲稿.ppt_第1页
学期C程序设计(第三版)教材PPT-第3章-1讲稿.ppt_第2页
学期C程序设计(第三版)教材PPT-第3章-1讲稿.ppt_第3页
学期C程序设计(第三版)教材PPT-第3章-1讲稿.ppt_第4页
学期C程序设计(第三版)教材PPT-第3章-1讲稿.ppt_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

,主要内容,3.1C语言的数据类型3.2常量与变量3.3整型数据3.4浮点型数据3.5字符型数据3.6变量赋初值3.7各类数值型数据间的混合运算3.8算术运算符和算术表达式3.9赋值运算符和赋值表达式3.10逗号运算符和逗号表达式,3.1C语言的数据类型,基本概念:,一个程序应包括两个方面的内容:,对数据的描述:数据结构(datastructure)对操作的描述:算法(algorithm)为解决一个问题而采取的方法和步骤,就称为“算法”。算法处理的对象是:数据;数据的组织形式即数据结构。,3.1C语言的数据类型,C提供了以下一些数据类型,它们还可以构造其它类型。,数据类型,指针类型,空类型void,程序中用到的所有数据必须指定其类型。,3.2常量与变量,3.2.1常量和符号常量在程序运行过程中,其值不能被改变的量称为常量。常量区分为不同的类型:1)字面常量或直接常量,整型100,125,-100,0实型3.14,0.125,-3.789字符型a,b,2字符串a,ab,1232,2)例3.1符号常量的使用#definePRICE30#includevoidmain()intnum,total;num=10;total=num*PRICE;printf(total=%dn,total);,说明:程序中用#define命令行定义PRICE代表常量30,此后凡在本文件中出现的PRICE都代表30,可以和常量一样进行运算,说明:用一个标识符代表一个常量的,称为符号常量,即以标识符形式出现的常量。符号常量的值在其作用域(在本例中为主函数)内不能改变,也不能再被赋值。,说明:如再用赋值语句给PRICE赋值是错误的。PRICE=40;/*错误,不能给符号常量赋值。习惯上,符号常量名用大写,变量名用小写。符号常量的好处为:含义清楚-“见名知意”;需要改变一个常量时,能够“一改全改”,运行结果:total=300光标,3.2常量与变量,3.2.2变量变量代表内存中具有特定属性的一个存储单元,它用来存放数据,这就是变量的值,在程序运行期间,这些值是可以改变的。,C中用来对变量、符号常量、函数、数组、类型等数据对象命名的有效字符序列统称为标识符。标识符的命名规则:语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。例:sum,_total,month,Student_name,lotus_1_2_,BASIC,li_lingM.D.John,¥123,3D64,ab,3.2常量与变量,注意:编译系统将大写字母和小写字母认为是两个不同的字符。建议变量名的长度最好不要超过8个字符。,3.2常量与变量,ANSIC标准没有规定标识符的长度(字符个数),但各个编译系统都有自己的规定。有的系统取前8个字符有效,例如IBM-PCMSCstudent_name和student_numberTurboC允许32个字符,为了可移植性,建议标识符长度不要超过8。,注意:在选择变量名和其它标识符时,应注意做到“见名知意”,即选有含意的单词(或缩写)作标识符。要求对所有用到的变量作强制定义,也就是“先定义,后使用”。,3.2常量与变量,(1)凡是未被事先定义的,不作为变量,以保证程序变量名使用的正确性。编译出错:Undefinedsynmbolstadentinfunctionmain(2)每一个变量被指定为已确定类型,在编译时就能为其分配相应的存储单元。例如:inta,b;TurboC编译系统为a,b各分配2个字节,并按照整数方式存储。(3)指定每一变量的类型,便于编译时,检查变量所进行的运算是否合法。例如:floata,b;则a%b是不合法的运算。“%”是“求余”运算,两个操作数必须都为整型数据。,3.3整型数据,3.3.1整型常量的表示方法整型常量即整常数。在语言中,整常数可用以下三种形式表示:(1)十进制整数。如:123、-456、4。(2)八进制整数。以0(零)开头的数是八进制数。如:0123表示八进制数123,等于十进制数83,-011表示八进制数-11,即十进制数-9。(3)十六进制整数。以0 x开头的数是十六进制数。如:0 x123,代表16进制数123,等于十进制数291。-0 x12等于十进制数18。,3.3.2整型变量(1)整型数据在内存中的存放形式数据在内存中是以二进制形式存放的。如:inti;/*定义为整型变量*/i=10;/*给i赋以整数10*/,3.3整型数据,注意:十进制数10的二进制形式为1010,TurboC2.0和TurboC+3.0为一个整型变量在内存中分配2个字节的存储单元(不同的编译系统为整型数据分配的字节数是不相同的,VC+6.0则分配4个字节)。数值是以补码(complement)表示的。,3.3整型数据,十进制数10的二进制形式为1010,数值是以补码表示的:正数的补码和原码相同;负数的补码:将该数的绝对值的二进制形式按位取反再加1。,例如:求-10的补码:,3.3整型数据,(2)整型变量的分类:,共六种,有符号基本整型有符号短整型有符号长整型无符号基本整型无符号短整型无符号长整型,signedintsignedshortintsignedlongintunsignedintunsignedshortintunsignedlongint,注意:方括号表示其中的内容是可选的.,3.3整型数据,一个无符号整型变量中可存放的正数的范围比一般整型变量中正数的范围扩大一倍。,3.3整型数据,C没有规定各类数据所占内存的字节数,只要求long型长度不短于int型,short型长度不长于int型。p42,3.3整型数据,下表列出了TurboC/TurboC+整数类型的有关数据:,VisualC+6.0为整型数据分配4个字节,取值范围:-231(231-1),(3)整型变量的定义:规定在程序中所有用到的变量都必须在程序中定义,即“强制类型定义”。例如:inta,b(指定变量、为整型)unsignedshortc,d;(指定变量、为无符号短整型)longe,f;(指定变量、为长整型)变量的定义一般放在函数开头的声明部分,也可以放在函数中某一段分程序内,但涉及变量作用域的问题。,3.3整型数据,例3.2整型变量的定义与使用#includevoidmain()inta,b,c,d;/*指定a、b、c、d为整型变量*unsigned;*指定为无符号整型变量*=12;=-24;=10;=a+u;=b+u;printf(a+u=%d,b+u=%dn,c,d);,说明:不同种类的整型数据可以进行算术运算.,运行结果:a+u22,b+u-14光标,例3.3整型数据的溢出#includevoidmain()inta,b;a=32767;b=a+1;printf(“%d,%dn”,a,b);,说明:数值是以补码表示的。TurboC/TurboC+中,一个整型变量只能容纳-3276832767范围内的数,无法表示大于32767或小于-32768的数。遇此情况就发生“溢出”,但运行时并不报错。,运行结果:32767,-32768光标,32767,-32768,(1)范围在-32768+32767的整型常量,可认为是int,可以赋值给int和longint型变量。(2)范围超出-32768+32767但在-21474836482147483647范围内的整型常量被认为是长整型,可以赋值给longint型变量。(3)如果某一计算机系统的C版本确定shortint与int型数据在内存中占据的长度相同,则shortint与int可以相互赋值。,3.3.3整型常量的类型,3.3整型数据,整型常量赋值给6种整型变量时如何进行类型匹配?假定整型数据在内存中占2个字节。,3.3整型数据,(4)一个整常量后面加一个字母u或U,认为是unsignedint型,如12345u,在内存中按unsignedint规定的方式存放。如果写成-12345u,则先将-12345转换成其补码53191,然后按照无符号数存储。(5)在一个整常量后面加上一个字母l或L,则认为是longint型常量。例如123l、432L、0L等。这往往用于函数调用中。如果函数的形参为longint型,则要求实参也为longint型。,3.3.3整型常量的类型,3.4浮点型数据,3.4.1浮点型常量的表示方法实型也称为浮点型。它有两种表示形式:十进制小数形式,指数形式。1)十进制小数形式:由数字和小数点组成。例如:0.0、25.0、5.789、0.13、5.0、300.、-267.8230、.32等均为合法的实数。注意,必须有小数点。2)指数形式:由十进制数,加阶码标志“e”或“E”以及阶码组成。其一般形式为:aEn(a为十进制数,n为十进制整数)其值为a*10n。注意:字母e或E之前必须有数字,并且e后面的指数必须为整数.,例如:123e3或123E3都代表123103如e3、2.1e3.5、.e3、e都是不合法的指数形式。一个实数可以有多种指数表示形式。例如,123.456可以表示为123.456e0、12.3456e1、1.23456e2、0.123456e3、0.0123456e4、0.00123456e5等等。把其中的1.23456e2称为是“规范化的指数形式”,即在字母e或E之前有一位(且只能有一位)非零的数字。,3.4浮点型数据,3.4浮点型数据,一个浮点数在用指数形式输出时,是按照规范化指数形式输出的。例如:指定将实数5689.65按指数形式输出,必须输出5.68965e+003,而不会是0.568965e+004或56.8965e+002。,3.4浮点型数据,3.4.2浮点型变量(1)浮点型数据在内存中的存放形式浮点型数据一般在内存中占4个字节。与整型数据的存储方式不同,浮点型数据是按照指数形式存储的。系统把一个浮点型数据分成小数部分和指数部分,分别存放。小数部分最前面有一个隐含的小数点。,数符小数部分指数,1,.314159,+,+.314159101=3.14159,3.4浮点型数据,*小数部分占的位(bit)数愈多,数的有效数字愈多,精度愈高。*指数部分占的位数愈多,则能表示的数值范围愈大。,很多C编译系统以24位表示小数部分,以8位表示指数部分,3.4浮点型数据,(2)浮点型变量的分类浮点型变量分为单精度(float型)、双精度(double型)和长双精度型(longdouble)三类形式。ANSIC没有规定每种类型的长度、精度和数值范围TurboC、TurboC+、MSC中浮点型数据,每个实型数据在使用前加以定义。如:floatx,y;单精度doublez;双精度longdoublet;长双精度,例3.4浮点型数据的舍入误差#includevoidmain()floata,b;a=123456.789e5;b=a+20;printf(“%fn”,b);,说明:浮点型数据用有限的存储单元存储的,所提供的有效数字是有限的。有效位以外的数据将被舍去。可能会产生一些误差。浮点型变量只能保证的有效数字是7位有效数字,后面的数字是无意义的,并不准确地表示该数。应当避免将一个很大的数和一个很小的数直接相加或相减,否则就会“丢失”小的数,运行结果:123456.789e5光标,(3)浮点型数据的舍入误差,3.4浮点型数据,3.4.3浮点型常

温馨提示

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

评论

0/150

提交评论