2C语言的基本数据类型与表达式.ppt课件.ppt

上传人:醉**** 文档编号:15049336 上传时间:2022-05-10 格式:PPT 页数:40 大小:134.50KB
返回 下载 相关 举报
2C语言的基本数据类型与表达式.ppt课件.ppt_第1页
第1页 / 共40页
2C语言的基本数据类型与表达式.ppt课件.ppt_第2页
第2页 / 共40页
点击查看更多>>
资源描述

《2C语言的基本数据类型与表达式.ppt课件.ppt》由会员分享,可在线阅读,更多相关《2C语言的基本数据类型与表达式.ppt课件.ppt(40页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第第2章章 C语言的基本语言的基本数据类型与表达式数据类型与表达式2.1 C2.1 C语言的基本数据类型语言的基本数据类型(1)数据类型概述)数据类型概述 整型整型 int int 基本类型基本类型 字符型字符型 charchar 实型实型 floatfloat,doubledouble 枚举类型枚举类型 enumenum数据类型数据类型 数组数组 构造类型构造类型 结构体结构体 structstruct 共用体共用体 unionunion 指针指针 * * 空类型空类型 voidvoid(2)整数类型)整数类型u整型常量的表示方法整型常量的表示方法(a a)十进制整数)十进制整数 如如123

2、123,-456-456,0 0(b b)八进制整数)八进制整数 如如0 0开头是八进数,开头是八进数,01230123,表示为表示为8383。如:。如:0505,0100 0100 等。等。(c c)十六进制数)十六进制数 如如0 x1230 x123,表示,表示291291。如:。如:0X50X5,0X100 0X100 等。等。 u整型变量的分类整型变量的分类(a a)intint:基本整型:基本整型(b b) shortshort:短整型,也可写成:短整型,也可写成 short int short int,在,在MS DOSMS DOS上,与整型相同上,与整型相同(c c) longl

3、ong:长整型:长整型(d d)unsigned:unsigned:无符号型无符号型在在MS DOSMS DOS上,每个整型变量分配上,每个整型变量分配 16 bit 16 bit 存储空存储空间。整型又分成两类,一类表示有符号整数,用间。整型又分成两类,一类表示有符号整数,用 1 bit 1 bit 表示符号,表示符号,15 bit 15 bit 表示数值,可表示数值表示数值,可表示数值范围为范围为 -32768 -32768 至至 3276732767。一类表示无符号整数,。一类表示无符号整数,16 bit 16 bit 都表示数值,可表示数值范围为都表示数值,可表示数值范围为 0 0 至

4、至 6553565535。数值都用二进制存储。例如:。数值都用二进制存储。例如:int a; int a; unsigned int date; unsigned int date; 等等00000000 001 1001011111111 110 0111050=(110010)50=(110010)2 2 -50 -50例例2.1 2.1 整数变量的定义整数变量的定义void main()void main() int a,b,c,d; int a,b,c,d; unsigned u; unsigned u; a=12;b=-24;u=10; a=12;b=-24;u=10; c=a+u;

5、d=b+u; c=a+u;d=b+u; printf(a+u=%d,b+u=%dn,c,d); printf(a+u=%d,b+u=%dn,c,d); 例例2.2 2.2 整型数据的溢出整型数据的溢出 #include#include#include#includevoid main()void main() int a,b; int a,b; a=32767; a=32767; b=a+1; b=a+1; printf(%d,%d,a,b); printf(%d,%d,a,b); (3)实数类型)实数类型u实型常量的表示方法实型常量的表示方法(1 1)十进制)十进制 .123.123,123

6、.0123.0,0.00.0(2 2)指数形式)指数形式 123e3123e3,123E3123E3 e3 e3,2.1e3.52.1e3.5,.e3.e3,e e规范化指数形式,小数点左边只有一位非零的数规范化指数形式,小数点左边只有一位非零的数字字 2.3478e22.3478e2ufloatfloat:单精度浮点型,近似表示实数,在:单精度浮点型,近似表示实数,在MS DOSMS DOS上,每个浮点型变量分配上,每个浮点型变量分配 32 bit 32 bit 存储空间。浮点存储空间。浮点型都是有符号的,可表示数值范围分为三段:型都是有符号的,可表示数值范围分为三段:-10-103838

7、至至 -10-10-38-38, 0, 10, 0, 103838 至至 10103838。数值都先化成指数,。数值都先化成指数,再用二进制存储。再用二进制存储。6 - 7 6 - 7 位有效数字。位有效数字。例如:例如:float x, y; float x, y; 等。等。udoubledouble:双精度型,近似表示更大实数,在:双精度型,近似表示更大实数,在MS MS DOSDOS上,每个浮点型变量分配上,每个浮点型变量分配 64 bit 64 bit 存储空间。双存储空间。双精度型都是有符号的,可表示数值范围分为三段:精度型都是有符号的,可表示数值范围分为三段:1010308308

8、至至 -10-10-308-308, 0, 10, 0, 10308308 至至 1010308308。数值都先。数值都先化成指数,再用二进制存储。化成指数,再用二进制存储。15 - 16 15 - 16 位有效数字。位有效数字。例如:例如:double x, y; double x, y; 等。等。 (4)字符类型)字符类型u转义字符(见转义字符(见p15p15)v v 纵向制表纵向制表a a 响铃响铃b b 退格退格 ddddddxhhxhh0 0 空空使用(见程序例使用(见程序例2.32.3)字符形式字符形式 功能功能nn换行换行tt横向跳格横向跳格( (跳到下一个输出区跳到下一个输出区

9、) )vv竖向跳格竖向跳格bb退格退格rr回车回车, ,本行开头本行开头ff走纸换页走纸换页, ,下页开头下页开头反斜杠字符反斜杠字符单引号字符单引号字符u 字符变量字符变量charchar:字符型,表示一个字符,如:字符型,表示一个字符,如A-Z,0-A-Z,0-9,!,%9,!,%等。在等。在MS DOSMS DOS上,每个字符型变上,每个字符型变量分配量分配 8 bit8 bit(1 byte1 byte)存储空间。字符型变)存储空间。字符型变量用二进制存储字符的量用二进制存储字符的 ASCII ASCII 码值。例如:码值。例如:一个变量存储字符一个变量存储字符AA,实际上是存储,实际

10、上是存储AA的的 ASCII ASCII 值:值:6565。 u 字符型也分成两类,一类有符号,用字符型也分成两类,一类有符号,用 1 bit 1 bit 表示符号,表示符号,7 bit 7 bit 表示数值,可表示数值范表示数值,可表示数值范围为围为 -128 -128 至至 127127。一类无符号,。一类无符号,8 bit 8 bit 都都表示数值,可表示数值范围为表示数值,可表示数值范围为 0 0 至至 255255。u 字符型常量写成字符型常量写成A,t,65A,t,65等形式。等形式。 u 字符串常量:严格的说,这不是一种数据类字符串常量:严格的说,这不是一种数据类型。只有常量,没

11、有变量。一个字符串常量型。只有常量,没有变量。一个字符串常量用双引号括起来:用双引号括起来:Hello,World!nHello,World!n。(2009.3)(2009.3)13.13.以下选项中以下选项中, ,能用作数据常量的是能用作数据常量的是A)o115A)o115B)0118B)0118C)1.5e1.5C)1.5e1.5D)115LD)115LD D(2008.9)(2008.9)13.13.以下选项中不能作为以下选项中不能作为C C语言合法常语言合法常量的是量的是A)cdA)cdB)0.1e+6B)0.1e+6C)aC)aD)011D)011A A(2008.9)(2008.9

12、)16.C16.C源程序中不能表示的数制是源程序中不能表示的数制是A)A)二进制二进制B)B)八进制八进制C)C)十进制十进制D)D)十六进制十六进制A2.2 2.2 常量与变量常量与变量(1)概述)概述 直接常量直接常量 数值常量(整型、实型)数值常量(整型、实型) 字符型常量(字符、字符串)字符型常量(字符、字符串)C C语言常量语言常量 符号常量符号常量(2 2)常量与符号常量)常量与符号常量u 常量:在程序运行时,其值不能被改变的量常量:在程序运行时,其值不能被改变的量叫常量。如叫常量。如 5, 3.14159, 3.618 5, 3.14159, 3.618 等等const int

13、k=3;const int k=3;u 符号常量可以使用一个标识符表示常量,符号常量可以使用一个标识符表示常量,如:如:PI PI 表示表示 3.141593.14159,RETIREMENT RETIREMENT 表示退表示退休年龄休年龄 60 60 等(等(C C 语言中写作语言中写作 #define PI #define PI 3.14159, #define RETIREMENT 603.14159, #define RETIREMENT 60),这样),这样的标识符叫符号常量,一般大写。见的标识符叫符号常量,一般大写。见P17P17#define MAX 1000#define MA

14、X 1000#define MIX 10#define MIX 10#define PI 3.14159#define PI 3.14159#define END $#define END $u变量:在程序运行时,其值能被改变的量叫变变量:在程序运行时,其值能被改变的量叫变量。程序运行时,计算机给每个变量分配一定量量。程序运行时,计算机给每个变量分配一定量的存储空间。每个变量必须有一个类型,如整型、的存储空间。每个变量必须有一个类型,如整型、浮点型等,它指明给这个变量分配多大量的存储浮点型等,它指明给这个变量分配多大量的存储空间;每个变量还必须有一个名字,如空间;每个变量还必须有一个名字,如

15、x, y x, y 等,等,它指明是哪个变量;一般,一个变量还要有值,它指明是哪个变量;一般,一个变量还要有值,值放在变量的存储空间内值放在变量的存储空间内类型类型 变量表;变量表;int I,j,k;int I,j,k;short int si;short int si;double balance,profit,loss;double balance,profit,loss; u变量赋初值变量赋初值赋值语句是将一个值传给一个变量。赋值语句是将一个值传给一个变量。例如:例如: int x; x = 5; int x; x = 5; 将值将值 5 5 传给变量传给变量 x x。例如:例如: i

16、nt a,b,x; a = 5; b = 3; x = int a,b,x; a = 5; b = 3; x = a+b; a+b; 将值将值 5 5 传给变量传给变量 a a,值,值 3 3 传给变量传给变量 b b,将将 a+b a+b 的值,也就是的值,也就是 8 8 传给变量传给变量 x x。例如:例如: int a,b; a = 5; b = 3; a = a+b; int a,b; a = 5; b = 3; a = a+b; 将值将值 5 5 传给变量传给变量 a a,值,值 3 3 传给变量传给变量 b b,将,将 a+b a+b 的值,也就是的值,也就是 8 8 传给变量传给

17、变量 a a。例例2.4 整型变量定义及赋初值整型变量定义及赋初值void main() int x,y,z,w; unsigned int k; x=10; y=-20; k=30; z=x+k; w=y+k; printf(x+k=%d,y+k=%dn,z,w);例例2.5 字符型变量定义及赋初值字符型变量定义及赋初值void main() char c1,c2; c1=a; c2=b; c1=c1-32; c2=c2-32; printf(%c %c,c1,c2);(2008.9)(2008.9)14.14.以下选项中正确的定义语句是以下选项中正确的定义语句是A)doubleA)doub

18、lea;b;a;b;B)doubleB)doublea=b=7;a=b=7;C)doubleC)doublea=7,b=7;a=7,b=7;D)double,a,b;D)double,a,b;C C2.3 2.3 运算符与表达式运算符与表达式(1)概述)概述 C C语言的运算符非常丰富,主要有语言的运算符非常丰富,主要有3 3大类:大类:算术运算符、关系运算符与逻辑运算符、按位算术运算符、关系运算符与逻辑运算符、按位运算符。除此之外运算符。除此之外, ,还有一些用于完成特殊任还有一些用于完成特殊任务的运算务的运算, ,如赋值运算符、条件运算符、逗号如赋值运算符、条件运算符、逗号运算符等。归纳如

19、下:运算符等。归纳如下:p19p19先掌握以下五个:先掌握以下五个:+、-、*、/、%(2)算术运算符与算术表达式)算术运算符与算术表达式 一般的程序设计语言都提供了以下的算术运算符:一般的程序设计语言都提供了以下的算术运算符:加法加法 + +减法减法 - -乘法乘法 * *除法除法 / /求余求余 % %前四种用于所有数据类型,最后一种只用于整型、前四种用于所有数据类型,最后一种只用于整型、长整型、字符型。乘法、除法、求余运算符的优长整型、字符型。乘法、除法、求余运算符的优先级高于加法、减法,即:先乘、除、求余,后先级高于加法、减法,即:先乘、除、求余,后加、减。加、减。 类型转换类型转换各

20、类数值型数据间的混合运算各类数值型数据间的混合运算10+a+1.5-8765.123410+a+1.5-8765.1234* *bbdoublefloatlongunsignedintchar,short运算符优先级关系和结合方向运算符优先级关系和结合方向 参见课本参见课本p21-22p21-22页,和页,和350350页附录页附录(2008.9)(2008.9)15.15.以下不能正确表示代数式以下不能正确表示代数式2ab/cd2ab/cd的的C C语言表达式是语言表达式是A)2A)2* *a a* *b/c/db/c/dB)aB)a* *b/c/db/c/d* *2 2C)a/c/dC)a

21、/c/d* *b b* *2 2D)2D)2* *a a* *b/cb/c* *d dD D(3)赋值运算符与赋值表达式)赋值运算符与赋值表达式 赋值运算符赋值运算符为为”=“=“x=10 x=10Y=3Y=3* *x+5x+5* *a a赋值表达式赋值表达式是指由赋值运算符将一个变量和一个是指由赋值运算符将一个变量和一个表达式连接起来。表达式连接起来。 X=y=z=8X=y=z=8X=10+(y=5)X=10+(y=5)A=(b=10)/(c=2)A=(b=10)/(c=2)X=6yX=6yA=b=20/4A=b=20/4 复合赋值运算符复合赋值运算符一般的程序设计语言都提供了以下的算术运算

22、符:一般的程序设计语言都提供了以下的算术运算符:+ +、- -、* *、/ /、% %。C C语言为提高效率,提供了一些特有的语言为提高效率,提供了一些特有的算术运算符:算术运算符:算术运算符例子相当于算术运算符例子相当于+i+i+、+i+ii=i+1;i=i+1;-i-i-、-i-ii=i-1;i=i-1;+=+=x+=yx+=yx=x+yx=x+y-=-=x-=yx-=yx=x-yx=x-y* *= =x x* *=y=yx=xx=x* *y y/=/=x/=yx/=yx=x/yx=x/yx+=5x+=5x=x+5x=x+5x x* *=y+8=y+8x=xx=x* *(y+8)(y+8)

23、x%=3x%=3x=x%3x=x%3a a* *=b=ba=aa=a* *b b设设a=10,b=4,c=5a=10,b=4,c=5求求:a:a* *=b+c=b+c9090(2009.3)(2009.3)14.14.设有定义设有定义:int x=2;,:int x=2;,以下表达式中以下表达式中, ,值不为值不为6 6的是的是A)xA)x* *=x+1=x+1B)x+,2B)x+,2* *x xC)xC)x* *=(1+x)=(1+x)D)2D)2* *x,x+=2x,x+=2D 自增与自减运算符自增与自减运算符自增为自增为”+”+”,自减为,自减为”-”-”i+i+和和+i+i略有不同,例

24、如:略有不同,例如:a=i+; a=i+; 是先将是先将 i i 的值赋与的值赋与 a a,i i 再加再加 1 1,a=+i; a=+i; 是是i i先加先加1 1,再将再将 i i的值赋给的值赋给a a。a+=a-=aa+=a-=a* *a(a(设设a=12)a=12)思考:思考:i=5;a=i+;i=5;a=i+;与与i=5;a=+i;i=5;a=+i;有什么不同,有什么不同,a,ia,i各等于什么?各等于什么?(i+)+(i+)+(i+)(i+)+(i+)+(i+)i+ji+jprintf(“%d,%d”,i,i+)printf(“%d,%d”,i,i+)设有变量说明设有变量说明”in

25、t m=4;”,int m=4;”,则执则执行语句行语句”m+=mm+=m* *=m-=m/=m;”=m-=m/=m;”后,后,m m的值为的值为: : 0 0(2008.9)(2008.9)6.6.设变量设变量a a和和b b已正确定义并赋初值。已正确定义并赋初值。请写出请写出a-=a+ba-=a+b等价的赋值表达式【等价的赋值表达式【6 6】a=-b a=-b 如果如果int I=3;int I=3;则则k=(I+)+(I+)+(I+),k=(I+)+(I+)+(I+),则则k k =(), I=();=(), I=(); 如果如果 int I=3;int I=3;则则k=(I+)+(+I

26、)+(I+),k=(I+)+(+I)+(I+),则则k=(), I=();k=(), I=(); 如果如果 int I=3;int I=3;则则k=(+I)+(+I)+(I+)k=(+I)+(+I)+(I+),则,则k=(),I=();k=(),I=(); 如果如果 int I=3;int I=3;则则k=(+I)+(+I)+(+I),k=(+I)+(+I)+(+I),则则k=(),I=();k=(),I=();(4)逗号运算符与求字节运算符)逗号运算符与求字节运算符 表达表达1 1,表达,表达2 2(表达(表达2 2的值)的值)a=3a=3* *5,a5,a* *4 4sizeof(size

27、of(变量名)变量名)sizeof(sizeof(类型名)类型名)float f;float f;printf(“%d”,sizeof(f);printf(“%d”,sizeof(f);printf(“%d”,sizeof(int);printf(“%d”,sizeof(int);若有说明若有说明”int a,b;”int a,b;”,执行语,执行语句句”b=(a=3b=(a=3* *5,a5,a* *4),a+15;”4),a+15;”之后,之后,b b的值为的值为: : 6060设有变量说明设有变量说明”int x;”int x;”,则表,则表达式达式”(x=4(x=4* *5,x5,x*

28、 *5),x+25”5),x+25”的值的值为:为: 4545(5)条件运算符)条件运算符 ?:3void main()void main() char ch; char ch; scanf(%c,&ch); scanf(%c,&ch); ch=ch=A&ch=A&ch=Z?ch+32:ch; printf(%c,ch); printf(%c,ch); 设有说明设有说明”int int x,y,z,m=10,n=5;”x,y,z,m=10,n=5;”,执行下面三,执行下面三个语句:个语句: x=(-m=n+)?-m:+n;x=(-m=n+)?-m:+n; y=m+; y=m+; z=n; z=

29、n;则则x,y,zx,y,z的值分别为的值分别为: :7,9,77,9,7(2008.9)(2008.9)17.17.若有表达式若有表达式(w)?(-x):(+y),(w)?(-x):(+y),则则其中与其中与w w等价的表达式是等价的表达式是A)w=1A)w=1B)w=0B)w=0C)w!=1C)w!=1D)w!=0D)w!=0D D(6)强制类型转换)强制类型转换 (类型名)(表达式)(类型名)(表达式)(double)a(double)a(int)(x+y)(int)(x+y)(float)(5%3)(float)(5%3)例:例:int a=7,b=2; float y1,y2;int

30、 a=7,b=2; float y1,y2;y1=a/b;y1=a/b; y2=(float)a/b; y2=(float)a/b;(2009.32009.3)6.6.表达式表达式(int)(double)(5/2)+2.5)(int)(double)(5/2)+2.5)的值是的值是【 】4 4(2009.3)(2009.3)12.12.若函数中有定义语句若函数中有定义语句:int k;,:int k;,则则A)A)系统将自动给系统将自动给k k赋初值赋初值0 0B)B)这时这时k k中的值无定义中的值无定义C)C)系统将自动给系统将自动给k k赋初值赋初值-1-1D)D)这时这时k k中无任何值中无任何值B

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com