基本数据类型、运算符和表达式.ppt_第1页
基本数据类型、运算符和表达式.ppt_第2页
基本数据类型、运算符和表达式.ppt_第3页
基本数据类型、运算符和表达式.ppt_第4页
基本数据类型、运算符和表达式.ppt_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

第二章基本数据类型、运算符和表达式,2.1C语言的数据类型2.1.1概述程序设计主要解决两个问题:一个是动作,即怎样做的问题,这由语句来实现;另一个是动作的对象,即数据的存放问题,这由数据类型来决定。世界上著名的计算机科学家沃斯(N.Wirth)提出这样一个公式:程序=数据结构+算法为什么要规定数据类型呢?不同数据类型的数据在内存中占据不同长度的存储区(2)一种数据类型对应着一个值的范围。(3)一种数据类型对应着一个运算集。,2.1.2数据类型,数据类型,1,2.2常量(2)常量:程序运行过程中其值不发生变化的量。三类常量:数值、字符和字符串。2.2.1数值常量一、整数常量的表示1、计数制的通用表示方法A=an-1bn-1an-2bn-2.a1b1a0b0a-1b-1a-2b-2.a-mb-m基数(b):所含数码的个数权(bx):表明数码所在的位置数码:0b-1,整数常量,实数常量,数值常量,二进制数:基数:2权:2x数码:01例如:1010.11=12302212102012-112-2=10.75二进制数权值:1286432168421注:计算机中使用二进制编码表示数据,且只存在二进制。2、十进制表示基数:10权:10 x数码:09例如:123.45=110221013100410-1510-2,3、八进制表示基数:8权:8x数码:07例如:023=281380=19注:八进制是二进制的短格式计数法,一位对三位。例如:023对应的二进制数为010011注:C语言中八进制数第一个数字必须为0(八进制标志)例如:0213-030+056-01234、十六进制表示基数:16权:16X数码:09,A,B,C,D,E,F例如:0XBF3C=1116315162316112160=48956,注:十六进制是二进制的短格式计数法,一位对四位。例如:0XBF3C对应的二进制数为1011111100111100注:十六进制数前两个数字必须为0X(十六进制标志)例如:0X213-0X30+0X56-0X12A二、整数常量的几种表示方式之间的转换,红色:连续除基数,取余数直到商为零浅蓝:按权值位展开。黄色:借助二进制数转换。,1、十进制变八进制或十六进制(红色)(1)将139变为八进制数(0213)8139817余382余10余2将3158变为十六进制数(0XC56)2、八进制或十六进制变十进制(浅蓝)(1)将0213变为十进制数(139)0213=282+181+380=139(2)将0XC56变为十进制数(3158)3、八进制与十六进制变换(黄色)(1)将0X1A3变成八进制数(0643)P19(2)将0334变为十六进制数(0XDC)P19,三、整数常量的取值范围短整型数:基本整型数:长整型数:四、溢出整数的值超出了所能表示的范围,有符号短整型(16位):-32768+32767,无符号短整型(16位):065535,有符号整型(16位):-32768+32767,无符号整型(16位):065535,有符号长整型(32位):-2147483648+2147483647,无符号长整型(32位):04294967295,五、实数实数只使用十进制形式表示两种表示方法:小数形式与指数形式1、小数形式:由整数部分、小数点、小数部分组成2.7180.123123.0.123123.0.02、指数形式:+整数部分.小数部分+e前部分称为尾数,表示实数的有效值,符号表示整体的正负。e后部分称为阶码,表示小数点在尾数基础上的移动位数,符号表示移动的方向例如:-3.14e2,3.14e-2实数的分类,单精度,例如:3.1415f双精度,例如:3.1415长双精度,例如:3.1415L,实数取其值的绝对值范围。当实数超出它的类型所能表示的范围时产生溢出。如果实数的绝对值小于所能表示的最小值则产生下溢,例如:实数1.7e-309和-1.7e-309均产生下溢,因为|1.7e-309|1.7e+308|。上溢时将产生错误的结果。实数又分为单精度(float)、双精度(double)和长双精度(longdouble)三类。实数的缺省类型为双精度数(double型);在实数后面加后缀字母f或F表示单精度数(float型),例如3.14159F;在实数后面加后缀字母l或L表示长双精度数(longdouble型),例如1.7e+309L.,单精度实数具有67位十进制有效数字;双精度实数具有1516位十进制有效数字;长双精度数具有1819位十进制有效数字。,2.2.2字符常量一对单引号括起来的单一字符。例如:A,2,+字符常量在内存中占一个字节存放,存放的值为该字符的ASCII码值。美国标准信息交换码ASCII码(AmericanStandardCodeforInformationInterchange),前32个,0 x00 x1f为控制字符是空格,编码为OX203编码为OX339编码为OX39A编码为OX41Z编码为OX5Aa编码为OX61z编码为OX7A,2.2.3转义字符用于表示一些没法表示的字符,例如控制字符、单引号等两种表示形式:1、反斜杠后面跟一个字符例如:0空字符n换行t横向跳格b退格r回车字符单引号双引号2、反斜杠后面跟一个字符的ASCII码(两位十六进制数xhh或三位八进制数ddd)例如:换行字符可以表示为:n、012、12、XA,2.2.4字符串常量一对双引号括起来的零个或多个的字符序列,字符序列中的字符个数称为字符串的长度。例如:thisisastringnthisisacprogram长度为0的字符串(即一个字符都没有的字符串)称为空串,表示为(一对紧连的双引号)。在存储字符串常量时,由系统在字符串的末尾自动加个空字符0作为字符串的结束标志例如:有一个字符串“CHINA”,它在内存中的实际存储如下所示。字符串如果有n个字符,则占用n+1个内存空间。,字符串必须写成一行,如下写法是错误的:printf(Hello,howareyou?);字符串常数必须写成一行。如果一行写不下,则有两种方法可以将行扩展到下一行。printf(hello,howareyou?);两个字符串中间只有空白字符(分隔符),认为这是一个字符串。2、续行符printf(hello,howareyou?);2.2.5符号常量将一个常量定义为一个标识符,这个标识符可以代替对应的常量,称为符号常量。例如:#definePI3.1415926(符号常量名使用大写字母),使用符号常量的优点:1、输入很长的常量可以避免出错,简化输入。2、含义直观。3、修改容易例如:计算相同半径下的圆周长、圆面积和圆球体积。#definePI3.14159main()main()floatl,s,v,r;floatl,s,v,r;printf(inputr:);printf(inputr:);scanf(%f,2.3变量及数据类型2.3.1变量和变量的地址变量:程序运行中可以改变的量。本质是内存中的一块存储区,变量名:是这块存储区的首地址的符号标识(通过变量名找到这块存储区在内存中的位置,找到该块存储区内存储的内容)注:使用变量名表示存储的数据。使用取值范围为-3276832767unsignedintb;取值范围为065535,二、计算机中数的表示无符号数表示00000000=00000000000000000=011111111=2551111111111111111=65535表示有符号数加正负号用0和1代表正负用某种编码方式使符号位也直接参与运算,不用特殊处理并得到正确结果机器数:符号数值化了的数(最高位为符号位,1表示负号,0表示正号,其余为真值)原码表示法:符号+绝对值例如:+3原码=00000011=03H-3原码=10000011=83H+0原码=00000000=00H-0原码=10000000=80H,八位,十六位,补码表示法:计算机中有符号数用补码表示正数的补码=正数的原码负数的补码=该负数相对应的正数的补码按位取反再加一例如:-46补码=?46补码=0010111011010001(按位取反)11010010=D2H(加一)n位补码的表数范围:-2n-1N2n-1-1n=8-128N127n=16-32768N32767,三、实型变量实型变量为:单精度型、双精度型和长双精度型。单精度:float(四个字节存储)双精度:double(八个字节存储)长双精度:longdouble(字节数8,取决于计算机系统)取值范围:单精度型:有67位有效数字,范围约为|3.4e-38|3.4e+38|双精度型:有1516位有效数字,范围约为|1.7e-308|1.7e+308|长双精度型:如TurboC中的长双精度型变量的值在内存中占10个字节)。四、字符变量用于存放字符常量,存放的是字符的ASCII码。类型标识符为char。,2.3.3变量说明变量遵循先定义(说明)后使用的原则,变量说明的目的:在编译时便于发现未经定义的变量名。(2)根据类型信息来检查对变量施加的运算是否合理。(3)编译时根据类型为变量分配固定长度的存储单元,并确定数据在内存中的表示方法。变量说明形式:存储类别存储类别决定变量的存储位置,同时也决定变量的生存期和作用域。数据类型用于指明变量名表中所列变量的数据类型。例如:intnumber,score;unsignedlongdistance;,【例2.1】不同整型变量的混合运算。main()inta,b,c,d,x,y;unsignedinte;a=20;b=-15;c=50;d=-10;e=25;x=a+b+e;y=c+d+e;printf(na+b+e=%d,c+d+e=%dn,x,y);运行结果为:a+b+e=30,c+d+e=65,【例2.2】整型数据的溢出问题。main()inta,x;unsignedintb,y;a=3;b=65532;x=a+b;y=a+b;printf(x=%d,y=%un,x,y);运行结果为:x=-1,y=6553500000000000000113a(+)111111111111110065532b1111111111111111,【例2.3】字符型数据和整型数的混合运算。main()charc1,c2,c3;c1=A+3;c2=65;c3=A;printf(%c,%c,%cn,c1,c2,c3);printf(%d,%d,%dn,c1,c2,c3);运行结果如下:D,A,A68,65,65,2.3.4变量的初始化变量说明只是指定了变量的名字和数据类型,并没有给它们赋初值。但程序中有些变量在使用前必须赋初值例如,作为计数器(n=n+1)使用的整型变量n通常要置初值0在C语言程序中,没有赋初值的变量并不意味着该变量中就没有数值,因为该变量所标识的存储单元中还保留着以前使用该单元时留下的内容,只是尚未对该变量定义特定值。于是,直接引用该变量就会产生莫名其妙的结果。(没有赋值的变量内存单元会有随机值存在)变量赋初值的一般形式:=,.例如:intn=0,s=1;doubleprice=35.5;intx,y=10,z;,2.4运算符和表达式2.4.1概述运算符:C语言中用于描述数据运算的特殊符号。操作数:运算符的运算对象(常量、变量、函数等)。表达式:用运算符将C语言的各种运算对象连接起来,组成符合C语言语法要求的式子(一个常量或变量也可称为表达式)。目:对一个运算符而言,参加运算的操作数的个数(单、双、三)例如:(a+b)*sin(x)+2优先级:运算符的优先级。规定表达式中不同运算符相邻出现时,运算符的计算顺序。优先级高的运算符先进行计算。结合性:C语言特有的、用来规定同样优先级的运算符相邻出现时表达式的计算方式(计算方向)。例如:a+b*c-d(a+(b*c)-d-i+-(i+)注:括号可以用来改变表达式的优先级和结合方式,2.4.2算术运算符和算术表达式1.基本算术运算符+加法或正值运算符-减法或负值运算符*乘法运算符/除法运算符%求余数运算符(1)整数除法和实数除法整数除:两个操作数全是整数,商为整数,小数部分被舍弃。例如:5/22-10/3-3实数除:两个操作数只要有一个是实数,商为实数。例如:3.0/5.00.63/5.00.6(2)关于求余数运算两个操作数必须全为整数,结果为整数,符号与被除数相同例如:53%7453%-74-53%-7-4,(3)混合运算运算符两侧的数据类型可以不同,系统先将两个运算对象转换成相同的数据类型,再进行实际计算。这种由混合运算引起的类型转换是自动进行的。例如:a+2.718*b+10-5%2*(a+b)/*设a和b是实型变量*/转换原则:表示范围小的类型转换为表示范围大的类型2.自增、自减运算符“+”和“-”功能:将一个变量加1或减1,常用来修改计数次数、下标或指针。i+ii-i例如:intx,a=5;x=a+x=a,a=a+1x=a-x=a,a=a-1x=+aa=a+1,x=ax=-aa=a-1,x=a(1)操作数必须是变量“+”和“-”运算符的操作数只能是变量,而不能是常量或表达式,例如:25+/*是不合法的*/(i+j)+/*是不合法的*/,(2)单目运算符,优先级与取负数运算符“-”相同,结合方向是从右至左。例如:inti=4;printf(“%d”,-i+);输出-4,i最终等于5。相当于printf(“%d”,-(i+);注意:(1)优先级和结合性(+、-、-)(*、/、%)(+、-)单目运算符+、-和-是从右至左结合的,+、-、*、/和%是从左至右结合的。(2)书写表达式要使用括号使表述清晰例如:i+j写成(i+)+j,2.4.3赋值运算符和赋值表达式赋值:把表达式的值存入变量所对应的存储空间1、简单赋值运算符“=”格式:大于=大于等于=c+dxy!=za=xyz例如:intx=2,y=3;求z1和z2的值z1=0=xy)!=z,a=(xy)z),z1=(0=x)0?1:x0?1:(x0?-1:0),2.4.7其它运算符1、逗号运算符“,”(1)格式表达式1,表达式2,.(2)

温馨提示

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

最新文档

评论

0/150

提交评论