C语言程序设计(何钦铭_颜晖_主编)ppt课件_第1页
C语言程序设计(何钦铭_颜晖_主编)ppt课件_第2页
C语言程序设计(何钦铭_颜晖_主编)ppt课件_第3页
C语言程序设计(何钦铭_颜晖_主编)ppt课件_第4页
C语言程序设计(何钦铭_颜晖_主编)ppt课件_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

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

文档简介

.,Chap6数据类型和表达式,6.1数据的存储和基本数据类型6.2常量和变量6.3数据的输入和输出6.4类型转换6.5表达式,.,本章要点,C语言的基本数据类型有哪些?各种基本数据类型的常量和变量是怎样定义的?C语言有哪些表达式?各种表达式的求解规则是什么?,.,数据类型和表达式,数据类型基本数据类型整型int实型(浮点型)floatdouble字符型char构造数据类型数组、结构、联合、枚举指针类型空类型运算:对数据的操作运算符数据表达式,.,6.1数据的存储和基本数据类型,6.1.1数据的存储整型、实型、字符型数据的存储6.1.2基本数据类型整型、实型、字符型,.,6.1.1数据的存储整型数据,设整数在内存中用2个字节存储10000001100000010000000110000001,符号位1:负数0:正数,.,数值的表示方法原码反码补码,正数的原码、反码和补码相同1的补码000000000000000132767的补码0111111111111111(215-1,2个字节的存储单元能表示的最大正数)负数的原码、反码和补码不同-1原码1000000000000001反码1111111111111110原码取反补码1111111111111111反码1,.,原码反码补码,32767补码0111111111111111-32767原码1111111111111111反码1000000000000000原码取反补码1000000000000001反码1-32768=-32767-1补码1000000000000000(2个字节的存储单元能表示的最小负数),-32768-10132767,3276701111111111111111000000000000000100000000000000000-11111111111111111-21111111111111110-327671000000000000001-327681000000000000000,32767+1=32768?100000000000000=-32768-32768-1=-32769?0111111111111111=32767,.,实型和字符型数据的存储,实型数据的存储-1.2345e+02符号位阶码尾数字符型数据的存储一个字节存储ASCII码,.,5.1.2基本数据类型,整型有符号整型无符号整型数据长度intunsignedint16或32位shortintunsignedshortint16位longintunsignedlongint32位字符型char8位实型(浮点型)单精度浮点型float32位双精度浮点型double64位,.,基本数据类型整型,扩展的整数类型:shortlongunsignedint有符号整型无符号整型数据长度intunsignedint16或32位shortintunsignedshortint16位longintunsignedlongint32位,有符号short1000000000000000-32768-215011111111111111132767215-1无符号unsignedshort00000000000000000111111111111111165535216-1,.,整数类型的取值范围,int32位-21474836482147483647-231231-1shortint16位-3276832767-215215-1longint32位-21474836482147483647-231231-1unsignedint32位042949672950232-1unsignedshortint16位0655350216-1unsignedlongint32位042949672950232-1,.,基本数据类型字符型,字符具有数值特征A6501000001整型变量和字符变量的定义和赋值可以互换【ASCII码范围】charc;c=A;或c=65;,inti;i=65;或i=A;,.,基本数据类型实型,实型(浮点型)数据单精度浮点型float双精度浮点型double存储数据精度取值范围(有效数字)float4字节七/八位(10-381038)double8字节十六位(1030810308),.,数据精度和取值范围,数据精度与取值范围是两个不同的概念:floatx=1234567.89;虽在取值范围内,但无法精确表达。floaty=1.2e55;y的精度要求不高,但超出取值范围。并不是所有的实数都能在计算机中精确表示实型常量的类型都是double,1234567.80,.,6.2.1常量符号常量整型常量、实型常量、字符型常量6.2.2变量变量的定义和使用,6.2常量和变量,.,6.2.1常量,常量的类型通常由书写格式决定123(整型)4.56(实型)A(字符型)符号常量:用一个标识符代表一个常量:PI:EPS,.,例5-1求球的表面积和体积,#include#definePI3.14intmain(void)doubler,s,v;printf(“Enterr:);scanf(%lf,加分号?,通常用大写字母,.,符号常量的优点,#includeintmain(void)doubler,s,v;scanf(%lf,#include#definePI3.14intmain(void)doubler,s,v;scanf(%lf,3.14159,3.14159,3.14159,.,整型常量(整数),整数的表示三种表现形式:十进制整数:正、负号,09,首位不是0例:10,123八进制整数:正、负号,07,首位是0例:010,012316进制整数:正、负号,09,a-f,A-F,前缀是0 x,0X例:0 x10,0 x123,.,整数的表示,123=01111011(B)二进制=173(O)八进制=7B(X)十六进制12301730 x7b160200 x10100120XA100100 x10不能超出整型数据的取值范围比长整型数还要大的数只能用实数来表示,.,整数的类型,判断整数的类型整数后的字母后缀123Llong123Uunsigned123LUunsignedlong整数的值,.,实型常量(实数、浮点数),实数的表示浮点表示法0.123123.412.12科学计数法6.026E-271.2e+301E-5实数的类型double,.,字符型常量,字符常量aA9+$ASCII字符集列出所有可用的字符(256个)每个字符:惟一的次序值(ASCII码)0-9升序排列A-Za-z,.,字符的数值特征,字符ASCII码对字符进行运算对字符的ASCII码进行运算例如:A的ASCII码65则:A+1=66,对应字符B,区分数字字符和数字11,.,转义字符,反斜杠后跟一个字符或数字字符常量,代表一个字符n101x41A所有字符都可以用转义字符表示,.,6.2.2变量,在程序运行过程中,其值可以被改变的量。变量必须先定义,后使用定义变量时要指定变量名和数据类型变量应该先赋值,后引用,.,变量的定义,变量名:合法的标识符小写字母;见名知义变量的类型:在定义时指定变量定义的一般形式类型名变量名表;intcelsius,fahr;floatx;doublearea,length;变量名代表内存中的一个存储单元,存放该变量的值该存储单元的大小由变量的数据类型决定,.,变量的使用,必须先定义,后使用应该先赋值,后引用变量的赋值方法变量赋初值:在定义变量时对它赋值inta=5,b=3;赋值表达式inta,b;a=5;b=3;输入inta,b;scanf(%d%d,.,6.3.1整型数据的输入和输出6.3.2实型数据的输入和输出6.3.3字符型数据的输入和输出,6.3数据的输入和输出,.,6.3.1整型数据的输入输出,printf(格式控制,输出参数1,.,输出参数n);scanf(格式控制,输入参数1,.,输入参数n);格式控制说明%十进制八进制十六进制int%d%o%xlong%ld%lo%lxunsigned%u%o%xunsignedlong%lu%lo%lx,.,例6-2(1)输出整型数据,#includeintmain(void)printf(%d,%o,%xn,10,10,10);printf(%d,%d,%dn,10,010,0 x10);printf(%d,%xn,012,012);return0;,10,12,a10,8,1610,a,.,例6-2(2)输入整型数据,#includeintmain(void)inta,b;printf(inputa,b:);scanf(%o%d,inputa,b:17171517f,17,%x%d,.,6.3.2实型数据的输入和输出,输入scanf()float:%f或%e以小数或指数形式输入一个单精度浮点数double:%lf或%le以小数或指数形式输入一个双精度浮点数输出printf()float和double使用相同的格式控制说明%f以小数形式输出浮点数,保留6位小数%e以指数形式输出,.,实型数据输出示例,#includeintmain(void)doubled=3.1415926;printf(%f,%en,d,d);printf(%5.3f,%5.2f,%.2fn,d,d,d);return0;,3.141593,3.14159e+003.142,3.14,3.14,一共5位,小数3位,小数点一位,.,实型数据输入输出示例,假定float的精度为7位,double的精度为16位#includeintmain(void)floatf;doubled;printf(inputf,d:);scanf(%f%lf,inputf,d:1234567890123.1234561234567890123.123456f=1234567954432.000000d=1234567890123.123540d=1234567890123.120120,.,6.3.3字符型数据输入输出,scanf()和printf()%ccharch;scanf(%c,输入输出一个字符,.,例6-3(1)输入输出字符示例,#includeintmain(void)charch1,ch2;ch1=getchar();ch2=getchar();putchar(ch1);putchar(#);putchar(ch2);return0;,AbA#b,.,例6-3(2)输入输出字符示例,#includeintmain(void)charch1,ch2,ch3;scanf(%c%c%c,AbCA#b#C,AbCA#b,.,例6-4输出字符型数据,b的ASCII码98#includeintmain(void)charch=b;printf(%c,%dn,b,b);printf(%c,%dn,98,98);printf(%c,%dn,97,b-1);printf(%c,%dn,ch-a+A,ch-a+A);return0;,b,98b,98a,97B,66,#includeintmain()charch;ch=b;printf(%c,%dn,ch,ch);return0;,printfb%cputchar98%d142%o62%x,scanfb%cgetchar98%d142%o62%x,scanf(%c,.,字符运算,大小写英文字母转换b-a=B-Az-a=Z-AmM,a-AA-a,0,m-a+A=MM-A+a=m,8-0=88+0=8,数字字符和数字转换9-0=9-09=9+088,.,不同类型数据的混合运算,先转换为同一类型,再运算。6.4.1自动类型转换非赋值运算的类型转换赋值运算的类型转换6.4.2强制类型转换,6.4类型转换,.,6.4.1自动类型转换(非赋值运算),水平方向:自动垂直方向:低高,.,自动类型转换(非赋值运算),A+1210.05657766.95,.,自动类型转换(赋值运算),变量=表达式计算赋值运算符右侧表达式的值将赋值运算符右侧表达式的值赋给左侧的变量,将赋值运算符右侧表达式的类型自动转换成赋值号左侧变量的类型,.,自动类型转换(赋值运算),doublex;x=1;,x=?,shorta=1000;charb=A;longc;c=a+b;,c=?,intai;ai=2.56;,ai=?,shortbi;bi=0 x12345678L,bi=?,.,5.4.2强制类型转换,强制类型转换运算符(类型名)表达式(double)3(int)3.8(double)(5/2)(double)5/2,3.032.02.5,.,强制类型转换示例,#includeintmain(void)inti;doublex;x=3.8;i=(int)x;printf(x=%f,i=%dn,x,i);printf(double)(int)x=%fn,(double)(int)x);printf(xmod3=%dn,(int)x%3);return0;,x=3.800000,i=3(double)(int)x=3.000000 xmod3=0,.,表达式:由运算符和运算对象(操作数)组成的有意义的运算式子,它的值和类型由参加运算的运算符和运算对象决定。运算符:具有运算功能的符号运算对象:常量、变量和函数等表达式算术表达式、赋值表达式、关系表达式、逻辑表达式、条件表达式和逗号表达式等,6.5表达式,.,6.5.1算术表达式算术运算符,单目+-+-双目+-*/%注意/整数除整数,得整数1/4=0,10/3=3%模(求余):针对整型数据5%6=5,9%4=1,100%4=0+和单目运算符,+10和10双目运算符,x+10和y10双目运算符两侧操作数的类型要相同,否则,自动类型转换后,再运算。,.,自增运算符+和自减运算符-,intn;n+nn-n(只适合变量运算)使变量的值增1或减1+nn+n=n+1-nn-n=n-1取变量的值作为表达式的值+n:n=n+1;取n值作为表达式+n的值n+:取n值作为表达式n+的值;n=n+1,.,自增运算和自减运算,intn,m;n=2;m=+n;n=2;m=n+;,n=3,n=3,m=3,m=2,m=nm=n+1,n=n+1m=n,.,算术运算符的优先级和结合性,单目+-+-双目*/%双目+-,从右向左,-5+3%2=(-5)+(3%2)=-43*5%3=(3*5)%3=0-i+,-(i+),.,写出C表达式,数学式C算术表达式s(s-a)(s-b)(s-c)(x+2)e2x,.,6.5.2赋值表达式,赋值运算符=x=3*4优先级较低,结合性从右向左x=y=3,x=(y=3),.,赋值表达式,变量=表达式计算赋值运算符右侧表达式的值将赋值运算符右侧表达式的值赋给左

温馨提示

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

评论

0/150

提交评论