




已阅读5页,还剩60页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,Chap2基本数据类型和表达式,数据类型基本数据类型整型int实型(浮点型)floatdouble字符型char构造数据类型数组、结构、联合、枚举指针类型空类型对数据的操作运算运算符和表达式,.,Chap2基本数据类型和表达式,常量和变量整数类型实数类型字符类型表达式数据的存储和类型转换,.,2.1常量和变量,2.1.1常量常量(常数):数据123(整型)4.56(实型)A(字符型)符号常量:用标识符表示的常量数据:PI:EPS通常用大写字母,.,例21求球的表面积和体积,#includevoidmain()floatr,s,v;scanf(%f,s=4.0*3.14159*r*r;v=4.0/3.0*3.14159*r*r*r;,.,例22符号常量,#definePI3.14#includevoidmain()floatr,s,v;scanf(%f,#definePI3.14159,.,2.1.2变量,C语言中的量常量(常数):数据符号常量:用标识符表示的常量数据在程序的运行过程中,其值不能被改变变量:存放数据的工作单元在程序的运行过程中,其值可以改变,.,变量的定义,变量定义的一般形式类型名变量表;变量名:小写字母,见名知义类型名:整型int实型(浮点型)floatdouble字符型char,.,变量的定义,inti,j,k;(定义i,j,k为整型变量)charc;(定义c为字符型变量)floatx,y;doublearea,length;变量名代表内存中的一个存储单元用于存放该变量的值该存储单元的大小由变量的数据类型决定,.,变量的定义与使用,变量必须先定义,后使用。#includevoidmain()intx,y;x=3;y=x*x;printf(“%d”,y);,一个变量名只能定义一次。变量一般都定义在程序的头上,不能定义在程序的中间或后面。,.,变量的使用,变量:先定义,后使用先赋值,后引用#includevoidmain()intx,y;x=3;y=x*x;printf(“%d”,y);,.,变量的赋值,赋初值:在定义变量时对它赋值inta=5,b=3;赋值表达式:inta,b;a=5;b=3;输入函数:scanf(“%d%d”,.,2.2整数类型,2.2.1整型常量(整数)三种表现形式十进制整数:正、负号,09,首位不是0例:10,123八进制整数:正、负号,07,首位是0例:010,012316进制整数:正、负号,09,a-f,A-F,前缀是0 x,0X例:0 x10,0 x123,.,123=1111011(B)二进制=173(O)八进制=7B(X)十六进制inti=0173;intj=0 x7b;intk=123;例:160200 x10100120XA,.,2.2.2整型变量,intai,bi,ci,di=0;ai=1;bi=-27;ci=012;整型变量的值是整数,它的取值范围有限最小取值范围32768,32767,.,2.2.3整型数据的输入输出,printf(格式控制,输出参数1,.,输出参数n);scanf(格式控制,输入参数1,.,输入参数n);格式控制说明%d:以十进制形式输入、输出整数%o:以八进制形式输入、输出整数%x:以十六进制形式输入、输出整数,.,例2-3,#includevoidmain()printf(%d,%o,%xn,10,10,10);printf(%d,%d,%dn,10,010,0 x10);printf(%d,%xn,012,012);,运行结果为:10,12,a10,8,1610,a,.,例2-4,#includevoidmain()inta,b;scanf(%o%d,输入:1717,运行结果为:1517f,17,.,2.3实型数据,2.3.1实型常量(实数)浮点表示:0.123123.41.科学计数法:123e40.2e-12.3.2实型变量单精度浮点型floatx,y,z;双精度浮点型doubleu,v,w;,4字节存储8字节存储,.,数据精度和取值范围,数据精度取值范围单精度七位有效数字(10-381038)双精度十六位有效数字(1030810308),.,数据精度与取值范围是两个不同的概念:floatx=1.23456789;floaty=123456789;虽在数据表示范围内,但无法精确表达。floatz=1.2e55z的精度要求不高,但数据表示范围超出。并不是所有的实数都能在计算机中精确表示。实型常量的类型都是double,x=1.234568y=1.234567e8,.,2.3.3实型数据的输入和输出,输出printf()float和double使用相同的格式控制说明%f:以小数形式输出浮点数,保留6位小数。%e:以指数形式输出位整数.5位小数位指数,.,例2-5实型数据的输出,#includevoidmain()floatf=123.45;doubled=3.1415926;printf(%f,%en,f,f);printf(%f,%en,d,d);printf(%5.3f,%5.2f,%.2fn,d,d,d);一共5位,小数3位,小数点一位,运行结果为:123.450000,1.23450e+023.141593,3.14159e+003.142,3.14,3.14,.,例2-6,假定float的精度为7位,double的精度为16位#includevoidmain()floatf;doubled1,d2;f=1234567890123.123456;d1=1234567890123.123456;d2=1234567890123.12;printf(f=%fnd1=%fnd2=%fn,f,d1,d2);,运行结果为:f=1234567954432.000000d1=1234567890123.123540d2=1234567890123.120120,.,实型数据的输入,scanf()float和double使用不同的格式控制说明%f和%e相同%f:以小数或指数形式输入一个单精度浮点数%e%lf:以小数或指数形式输入一个双精度浮点数%le,.,例2-7,#includevoidmain()floatf1;doubled1;scanf(%f%lf,输入:121234567.12345,运行结果为:f1=12.000000d1=1234567.123450,.,2.4字符类型,2.4.1字符常量aA9+$ASCII字符集:列出所有可用的字符每个字符:惟一的次序值(ASCII码)0-9A-Za-z,.,2.4.1字符常量,字符的存储在内存中,每个字符占用一个字节,存储该字符的ASCII码字符ASCII码内存A6501000001B6601000010字符的数值特征字符可以当整数用,ASCII码A+1=?,.,2.4.2字符变量,charc1,c2,c3;c1=2;c2=#;c3=A;或c3=65;,inti;i=65;或i=A;整型变量和字符变量的定义和赋值可以互换【ASCII码范围】,.,2.4.3字符型数据输入输出,scanf()和printf()%ccharch;scanf(%c,输入输出一个字符,.,例2-9,#includevoidmain()charch1,ch2;ch1=getchar();ch2=getchar();putchar(ch1);putchar(#);putchar(ch2);,运行结果为:A#b,输入:Ab,.,例2-10,#includevoidmain()charch1,ch2,ch3;scanf(%c%c%c,运行结果1为:A#b#C,输入1:AbC,运行结果2为:A#b,输入2:AbC,.,输入数据包括字符和数值的混合#includevoidmain()inti;charc;floatx;scanf(%d%c%f,输入:3a1.2输出:3a1.200000,数据之间不能用空格等间隔,也不需要单引号,.,例2-11,已知:b的ASCII码98#includevoidmain()printf(%c,%dn,b,b);printf(%c,%dn,98,98);printf(%c,%dn,97,b-1);,运行结果为:b,98b,98a,97,.,#includevoidmain()charch=b;printf(%c,%dn,ch,ch);,printfb%cputchar98%d142%o62%x,scanfb%cgetchar98%d142%o62%x,scanf(%c,.,字符运算,大小写英文字母转换b-a=B-Az-a=Z-AmM,数字字符和数字9-0=9-09=9+088,a-AA-a,0,m-a+A=MM-A+a=m,8-0=88+0=8,.,2.4.4转义字符,反斜杠后跟一个字符或数字字符常量,代表一个字符n101x41A所有字符都可以用转义字符表示,.,2.5表达式,2.5.1算术表达式算术运算符单目+-+-双目+-*/%注意!%模(求余)整型数据565,941,10040/整数除整数,得整数1/20,9/42双目运算符两侧操作数的类型要相同,.,算术运算符的优先级和结合性,单目+-+-双目*/%双目+-,从右向左,-5+3%2=(-5)+(3%2)=-43*5%3=(3*5)%3=0-i+,-(i+),.,算术表达式,例2-15数学式-C表达式s(s-a)(s-b)(s-c)(x+2)e2x,s*(s-a)*(s-b)*(s-c),(x+2)*exp(2*x),.,2.5.2赋值表达式,赋值运算符=赋值表达式变量表达式计算赋值运算符右侧表达式的值将赋值运算符右侧表达式的值赋给左侧的变量将赋值运算符左侧的变量的值作为表达式的值n=2;n=n+1;赋值运算符的优先级和结合性优先级较低,从右向左x=y=3;,x=(y=3),.,例大小写字母转换,输入一个小写字母,输出对应的大写字母。#includevoidmain()charch;scanf(%c,.,2.5.3逗号表达式,表达式1,表达式2,,表达式n先计算表达式,然后计算表达式,,最后计算表达式n的值,并将表达式n的值作为逗号表达式的值.逗号运算符的优先级最低,从左向右a=(3+5,4*6)a=3+5,4*6,a=24a=8,.,自增运算符和自减运算符,自增运算符+和自减运算符-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,.,自增运算和自减运算,inti,k;i=2;k=+i;i=2;k=i+;,i=3,i=3,k=3,k=2,k=ii=i+1,i=i+1k=i,.,例2-17,#includevoidmain()inta,b,c;b=5;c=5;a=+b+c-;printf(%d,%d,%dn,a,b,c);a=b-c;printf(%d,%d,%dn,a,b,c);a=-b+c;printf(%d,%d,%dn,a,b,c);,b=b+1,a=b+c,c=c-1,a=b-c,b=b-1,a=-(b+)+c,a=(b-)-c,a=-b+c,b=b+1,.,复合算术赋值运算符,赋值运算符简单赋值运算符=复合(算术)赋值运算符+=-=*=/=%=赋值表达式变量赋值运算符表达式x+=exp,x=x+(exp),.,例2-18,#includevoidmain()intx,y,z;z=(x=7)+(y=3);printf(%d,%d,%dn,x,y,z);x=y=z=x+2;printf(%d,%d,%dn,x,y,z);x*=y-3;printf(%d,%d,%dn,x,y,z);,x=7,y=3,z=x+y,z=x+2,y=z,x=z,x=x*(y-3),.,2.6数据的存储和类型转换,2.6.1数据的存储整型数据的存储设整数占2个字节10000001100000010000000110000001,.,原码反码补码,正数的原码、反码和补码相同1的补码000000000000000132767的补码0111111111111111(215-1)负数-1原码1000000000000001反码1111111111111110原码取反补码1111111111111111反码1,.,原码反码补码,32767补码0111111111111111-32767原码1111111111111111反码1000000000000000原码取反补码1000000000000001反码1-32768=-32767-1补码1000000000000000,.,-32768-10132767,3276701111111111111111000000000000000100000000000000000-11111111111111111-21111111111111110-327671000000000000001-327681000000000000000,32768=32767+11000000000000000=-32768-32769=-32768-10111111111111111=32767,.,实型和字符型数据的存储,实型数据的存储-1.2345e+02符号位阶码尾数字符型数据的存储一个字节存储ASCII码,.,2.6.2整数类型的扩展,有符号无符号数据长度intunsignedint16或32shortintunsignedshortint16longintunsignedlongint32,无符号unsigned设整数占2个字节00000000000000000111111111111111165535(216-1),.,整数类型的最小取值范围,int-3276832767(-215215-1)shortintlongint-21474836482147483647(-231231-1)unsignedint065535(0216-1)unsignedshortintunsignedlongint04294967295(0232-1),.,整型常量的表示,不能超出整型数据的取值范围比长整型数还要大的数只能用实数来表示整型常量的类型整数后的字母后缀123Llong123Uunsigned123LUunsignedlong数值,.,整型数据的输入输出,printf(格式控制,输出参数1,.,输出参数n);scanf(格式控制,输入参数1,.,输入参数n);格式控制说明%十进制八进制十六进制int%d%o%xlong%ld%lo%lxunsigned%u%o%xunsignedlong%lu%lo%lx,.,例2-19,#includevoidmain()intai;longcl;unsignedbu;unsignedlongdul;ai=32767;bu=65535U;cl=-2147483648L;dul=4294967295LU
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 城管招聘面试题及答案
- 汽车肇事测试题及答案
- ARDS考试题及答案
- 湖北省荆州市沙市区沙市中学2026届化学高三第一学期期末达标测试试题含解析
- 经验法则面试题及答案
- 好评制度面试题及答案
- 磨工技师试题及答案
- 任现职期间工作总结
- 认知障碍老人护理全解析
- 家电公司客户分类管理规章
- 船舶拖带协议书
- 2025年房地产市场的变化趋势试题及答案
- 风电场危险源辨识、风险评价和风险控制清单
- 儿童血压测量课件
- 医疗AI算法揭秘如何构建高效的疾病预测模型
- 电商外包客服合同协议
- 糖尿病性黄斑水肿护理查房
- 《铁路建设项目安全穿透式管理实施指南》知识培训
- 企业研究院管理制度
- 工业管道安全评估方法-全面剖析
- 施工现场排水方案
评论
0/150
提交评论