您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > C案例教程教案(word文档)第二章
第2章数据类型及其运算第一节常量和变量常量是指在程序运行过程中其值不能被改变的量;变量是指在程序运行过程中其值能够被改变的量。一、常量常量是指在程序运行过程中,其值不变的量,在C语言中,常量分为数值常量,字符常量和字符串常量。数值常量又分为整型常量和实型常量。这三种常量无需说明就可以使用。C语言的常量主要有以下几种:(1)整型常量。如:-2,3,1234,01234,0xl234,2234L等。整型常量可以用十进制、八进制和十六进制表示,1234表示的是十进制数,01234表示的是八进制数,0x1234表示的是十六进制数,如果是长整型常量,后面还要加上小写l或大写L,比如1234L。(2)字符常量。如:’a’,’b’等,字符常量必须用英文的单引号引起来。(3)浮点型常量。如:2.55,2.55E-5等。浮点型常量有两种表示方法,小数表示法,如2.55;科学计数法,如2.55E-5,其中的E可以用e,表示255×10–5。(4)字符串常量。如:”a”,”abc”,”xyz”等。字符串常量必须用双引号引起来,可以使用汉字。注意字符串常量与字符常量不同,字符串常量需要用英文的双引号引起来,而字符常量用英文的单引号引起来;字符串常量如”mnl”在存储器内部存储的字符序列为mnl\0,\0(NULL)是结束符,而字符常量如’x’在存储器内部存储的只是字符x。(5)控制字符常量。如果要输入ASCII码值在0x00—0xFF之间的字符,需用反斜扛和特定字符组合表示,使用此方法表示的字符叫做转义字符,C语言中的转义字符如表2-1所示。表2-1C语言中的转义字符字符形式ASCII码功能\00x00NULL\a0x07响铃\b0x08退格\t0x09水平制表(Tab)\f0x0c走纸换页\n0x0a回车换行\v0x0b垂直制表\r0x0d回车不换行\\0x5c反斜杠\’0x27单引号\”0x22双引号\?0x3f问号\ddd0ddd1-3位八进制数所代表的字符\xhh0xhh1-2位十六进制数所代表的字符符号常量是使用标识符表示的常量,也称宏常量,用来增加程序的可维护性。其定义形式为:#define符号常量常量字串例2-1已知圆的半径(radius),计算圆周长(perimeter)、面积(area)和球体体积(volume)。#includestdio.h#definePI3.1415926/*PI是符号常量,代表3.1415926*/voidmain(){floatperimeter,area,radius,volume;printf(Inputradius:);scanf(%f,&radius);/*输入半径*/perimeter=2.0*PI*radius;area=PI*radius*radius;volume=4/3.0*PI*radius*radius*radius;printf(perimeter=%10.4f\narea=%10.4f\nvolume=%10.4f\n,perimeter,area,volume);}程序中定义的PI代表常量3.1415926,在编译源程序时,遇到PI就用常量3.1415926代替,PI可以和常量一样进行运算。C语言规定,每个符号常量的定义式占据一个书写行,而且符号常量不能被再赋值。习惯上,符号常量名用大写,而变量名用小写,以便于区别。使用符号常量的好处:(1)增加了程序的可读性。(2)增加了程序的易修改性。二、变量变量是指在程序运行过程中其值可以改变的量。变量用一个标识符表示,这个标识符叫做变量名。在C程序设计中使用变量时必须首先对它的数据类型进行说明,一般定义格式为:数据类型变量表例如:inti,j,k;/*i,j,k是变量chara,b,c;变量名有一定的命名规则:(1)标准C的变量名必须以小写字母或下划线开始。(2)能用作变量名的字符有a~z,0~9,$或下划线_。(3)TurboC规定,变量名的有效长度为32个字符。(4)不能使用C语言约定的关键字作变量名。使用已经定义的变量时,还要对它进行赋值,即变量初始化。例如:inti=5,j=10,k;然后才能进行计算k=i+j;用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列称为标识符。C语言规定,标识符只能由字母(a~z,A~z)、数字(0~9)和下划线(_)3种字符组成,而且第一个字符必须为字母或下划线。不能是汉字。在C语言中,大写字母和小写字母被认为是不同的字符。注意应该使用不同的标识符而不是以大小写来区分变量,习惯上作为变量名的标识符用小写字母来表示。ANSIC标准没有规定标识符的长度,即标识符应该有多少个字符组成.不同的C编译器有自己的规定,C语言规定,关键字不能用作变量名标识符,关键字是C语言内部规定了特殊含义的特殊的标识符,只能固定用做某些规定用途。另外,为了使程序具有较好的可读性,应该取代表某种意义的单词或其缩写作为变量名或其他标识符,尽量做到“见名知意”。C语言规定所有用到的变量在使用之前必须定义其数据类型,即“先定义,后使用”。变量定义的一般形式:类型标识符变量名表例如:ints1,s2,s3;/*定义整型变量*/charname;/*定义字符型变量*/C语言允许在定义变量的同时初始化变量(为变量赋初值),例如:ints1=3,s2=-6,s3=7,total;/*定义的同时赋初值*/第二节数据类型基本数据类型为常用类型。表2—2列出了TurboC语言基本数据类型长度和数值范围表2-2TurboC语言基本数据类型数据类型类型定义标识符长度/bit数值范围整型普通整型[signed]int16-32768~32767短整型[signed]short[int]16-32768~32767长整型[signed]long[int]32-2147483648~2147483647无符号整型unsigned[int]160~65535无符号短整型unsignedshort[int]160~65535无符号长整型unsignedlong[int]320~4294967295实型单精度浮点型Float32-3.4E±38~3.4E±38双精度浮点型Double64-1.7E±308~1.7E±38)长双精度浮点型longdouble80-3.4E±4932~3.4±E4932字符型字符型[signed]char8-127~127无符号字符型unsignedchar80~255空类型空类型Void0无值一、整型数据在微机上使用的TurboC语言编译系统,整型数据在内存中占2个字节或4个字节(B),16位或32位(bit)。1.整型常量整数型常量不仅可以用十进制表示,也允许用八进制或十六进制表示,例如:36十进制数028八进制数以0开头,由0~7构成。0x7b十六近制数以0x开头,由0~9和A~F或a~f构成。整数类型又可细分成不同长短的类型,应加上类型标识符构成,如:短整型shortint可简化为short标识定义。长整型longint可简化为long标识定义。无符号整unsignedint可简化为unsigned标识定义。2.整型变量在C语言中,整型的类型标识符为int。根据整型变量的取值范围又可以将整型变量定义为基本类型(int)、短整型(shortint或short)和长整型(longint或long)3类。根据实际需要还可以加限定词signed和unsigned,signed指定的是有符号数,unsigned指定的是无符号数,如果不指定signed或unsigned,则C编译器自动指定为有符号(signed)。归纳起来,可用以下6种整型类型:有符号基本整型[signed]int无符号基本整型unsigned[int]有符号短整型[signed]short[int]无符号短整型unsignedshort[int]有符号长整型[signed]long[int]无符号长整型unsignedlong[int]在存储有符号数时,存储单元的最高位代表符号位,0为正,1为负。而存储无符号数时,存储单元全部16位都用作存放数本身,一个无符号整型变量只能存放不带符号的整数,如23900等,而不能存放负数。如分别定义a和b两个变量:inta;unsignedb=65535;a=-9;在设计程序时,应该注意变量类型的取值范围,当赋值超过其取值范围时,会出现溢出错误,例如int型的数据被赋于大于最大允许值32767时会出现溢出错误,a=32767+1并不会得到预期的结果,相反最后结果为a=-32768。注意这种溢出错误在运行时并不报告。现举例分析如下。执行源程序例2-2溢出错误举例#includestdio.hvoidmain(){inta,b;a=32767;b=a+1;printf(“a=%d\n”,a);printf(“b=%d\n”,b);}3.整型常量的类型整型常量不必使用强制类型说明就可以直接使用,当遇到整型常量时,编译器会自动根据其值将该常量认定为相应的类型,保证其按适当的类型参与运算。一个整数,其值在(-32768~32767)之间时,被认为是int型,可以把它赋值给int型、short型或long型变量;但其值超出了此范围,而在(-2147483648~2147483647)范围之间,则被认为是长型,可以把它赋值给long型变量。一个整型常量后加U或u后缀则被认为是unsigned类型,在内存中按unsigned规定的方式存放。而一个整型常量后加l或L后缀则被认为是long类型,在内存中按long规定的位数存放。4.整型数据的应用整型数据有各种实际用途,如果取值范围在ASCII码值之内,则可以与字符类型的数据运算。ASCII码字符类型的数据代表一个字符,出一对单引号将字符括起来.可以用ASCII码表中的代码值表示,例如:‘b’ASCII码值是98‘B’ASCII码值是66例2-3编一个程序,利用ASCII码值大写转小写。#includestdio.hvoidmain(){charchar1,char2,char3,char4;/*定义字符类型*/char1=’B’;/*以字符型常量赋值*/char2=67;/*数值型常量赋值*/char3=char1+32;char4=char2+32;/*整型数值运算*/printf(“%c的小写是%c,%c的小写是%c\n”,char1,char3,char2,char4);printf(“%c的ASCII码是%d,%c的小写是%d\n”,char3,char3,char4,char4);printf(“%c的ASCII码是%d,%c的小写是%d\n”,char1,char1,char2,char2);}该程序运行后,分别以字符类型和整型ASCII码值输出,结果略。二、实型数据实型数据又称为浮点型数据,可包含有整数部分和小数部分,例如:0.062与.062等同5.0与5.等同科学计数法中,用“尾数e+指数”表示浮点数值,e表示以10为底的指数。字母“e”或“E”是exponent的英文缩写。例如:8.2e5等同于820000.0其中8.2就是尾数,含有整数部分(integerpart)为8和小数部分(fractionalpart)为2,而5就是指数(exponent)部分。尾数和指数也都有可能为负值,例如:-1.23e41.234567e-8-78e-12实型数据在内存中按指数形式存储,单精度实型数据在内存中占4个字节(32位)。实型数据的取值范围是数学中的实数集中的一个子集。1.实型常量实型常量有两种表示形式:(1)十进制小数形式:十进制小数形式由数字和小数点组成。(2)指数形式。指数形式由尾数、e(或E)以及指数3部分组成,其指数部分必须为整数。如1.e1(代表1.0×101)、9.8E0(代表9.8×100),8.997e-12(代表8997×10-12),-5.43E4(代表-(5.43×104))等那是合法的指数形式。而像5.4E,.E,e
本文标题:C案例教程教案(word文档)第二章
链接地址:https://www.777doc.com/doc-2907502 .html