c教案ch3数据类型与运算符课件_第1页
c教案ch3数据类型与运算符课件_第2页
c教案ch3数据类型与运算符课件_第3页
c教案ch3数据类型与运算符课件_第4页
c教案ch3数据类型与运算符课件_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、制作人:制作人: 黄黄 荧荧制作人单位:河师大数学与信息科学学院制作人单位:河师大数学与信息科学学院c教案ch3数据类型与运算符( (变量是重点变量是重点!)!)( (重点重点, ,特别特别) )3.1 C C语言的数据类型语言的数据类型C C中的数据有中的数据有4 4类类9 9种种, ,常用的是其中的常用的是其中的3 3类类6 6种种. .C数据类型基本类型构造类型指针类型指针类型空类型: void字符型字符型: char枚举类型整整 型型: int浮点型浮点型单精度型: float双精度型: double数组数组结构体结构体共用体注意:注意:1 在计算机中所有数据都是以在计算机中所有数据都

2、是以存储的。存储的。2 ,C将将(整型、(整型、实型、字符型)实型、字符型)。这样在程序设计时可以。这样在程序设计时可以尽可能的节约存储空间,加快尽可能的节约存储空间,加快程序运行的速度。程序运行的速度。3.2 常量与变量一一 常量和符号常量常量和符号常量(即常数)(即常数) 程序程序其值其值的量的量 如,如,12、3.2、a、 abc 用用代表的常量。代表的常量。 一般形式:一般形式: 如如, #define PI 3.1415926优点:优点:含义清楚,灵活机动,易于修改。含义清楚,灵活机动,易于修改。注意注意:符号常量通常用大写字母表示。符号常量通常用大写字母表示。小资料小资料: : 标

3、识符标识符: : 是用来作为变量名、常量名、函数名等是用来作为变量名、常量名、函数名等 由英文字母、数字、下划线组成的、第一个字符只能是英文字母或下由英文字母、数字、下划线组成的、第一个字符只能是英文字母或下划线的、且不为划线的、且不为C C关键字的一串字符关键字的一串字符(关键字(关键字P365P365) 。 注意注意: : C C中的符号对中的符号对大小写敏感大小写敏感! 如如,sum,sum与与SumSum是两个不同的是两个不同的标识符标识符. .例例 3.1 3.1 符号常量举例符号常量举例 某商品单价为某商品单价为3030元元, ,顾客要买顾客要买1010件件, ,编程计算商编程计算

4、商品的总价格品的总价格. .#include void main() int num,total; num=10; /1) 1) 输入输入 数据数据:num (:num (件数件数) ) total=num*PRICE; /2)2)计算总价计算总价: total: total printf(total=%dn,total); /3) 3) 输出总价输出总价二二 变量变量1 变量的概念:变量的概念: 程序程序其值其值的量的量.2 变量的定义方法变量的定义方法: 一般形式:一般形式: 类型符类型符 变量名列表变量名列表如,如, int n,m,k; int n,m,k; short a;short

5、 a; float x,y,z;float x,y,z; double t; double t; char c1,c2; char c1,c2; 3a变量的值变量的值变量的存储单元变量的存储单元变量名变量名实验程序:实验程序:#include #include void main()void main() printf(printf(各类变量所占字节数为:各类变量所占字节数为:nn););printf(printf(整型整型 int: int: nn,sizeof(int);,sizeof(int);printf(printf(短整型短整型 short: short: nn,sizeof(sh

6、ort);,sizeof(short);printf(printf(单精度实型单精度实型 float: float: nn,sizeof(float);,sizeof(float);printf(printf(双精度实型双精度实型 double: double: nn,sizeof(double);,sizeof(double); 3.3 整型数据整型数据 整型常量整型常量 (三种形式)(三种形式) 十进制常数十进制常数 如,如, 123、-12、0八进制常数八进制常数 由数字由数字07组成,最高位必须用组成,最高位必须用 做做引导符引导符!如,如, 012 - (12)8 =(10)10 、

7、-012 十六进制常数十六进制常数由由09和和af(AF)组成,最高位必须用组成,最高位必须用做做引导符引导符。如,如, 0 x12 - (12)16 =(18)10 0 xaf - (af)16 =10*16+15=(175)10 实验程序:实验程序:#include #include void main()void main() int n=012,m=0 x12;int n=012,m=0 x12; printf(printf(n=(n=(%o%o)8,()8,()10,()10,(%x%x)16n)16n,n,n,n);,n,n,n); printf(printf(m=(m=(%x%x

8、)16, ()16, ()10,()10,(%o%o)8n)8n,m,m,m);,m,m,m); /八进制、十六进制格式符(八进制、十六进制格式符(%o, %x)都是按无符号数输出的)都是按无符号数输出的 二二 整型变量整型变量(6 6种):种): ( int short long (3 int short long (3种种, ,占字节数占字节数:2 2 4 :2 2 4 (TcTc)) )0111000000000000int,int,有符号有符号: :最高数位为最高数位为0111000000000000unsigned,unsigned,无符号无符号: : unsigned int un

9、signed int 等相应等相应3 3种种( (占字节数占字节数: 2 2 4 : 2 2 4 (TcTc)) )类型名类型名 占字节数占字节数取值范围取值范围 short int short int 2 (162 (16个数位个数位) ) -2 -21515221515-1-1 int int int int2 (162 (16个数位个数位) ) 02 021616-1 (0-1 (065535) 65535) unsigned short intunsigned short int2 (162 (16个数位个数位) ) 02 021616-1-1unsigned long intunsi

10、gned long int4 (324 (32个数位个数位) ) 02 023232-1 (P43(10-1 (P43(10位数位数)整型变量:常用的是整型变量:常用的是 int int 和和 longlong二二 整型变量整型变量(6 6种):种): (类型名类型名 占字节数占字节数取值范围取值范围 short int short int 2 (162 (16个数位个数位) ) -2 -21515221515-1-1 int int int int2 (162 (16个数位个数位) ) 02 021616-1 (0-1 (065535) 65535) unsigned short intun

11、signed short int2 (162 (16个数位个数位) ) 02 021616-1-1unsigned long intunsigned long int4 (324 (32个数位个数位) ) 02 023232-1 (P43(10-1 (P43(10位数位数)实验程序:实验程序:#include #include void main()void main() printf(printf(各类各类在在VCVC中所占字节数为:中所占字节数为:nn););printf(printf(整型整型 int: int: nn,sizeof(int);,sizeof(int);printf(pr

12、intf(短整型短整型 short: short: nn,sizeof(short); ,sizeof(short); printf(printf(长整型长整型 long: long: nn,sizeof(long);,sizeof(long);printf(printf(无符号整型无符号整型 unsigned: unsigned: nn,sizeof(unsigned);,sizeof(unsigned); c教案ch3数据类型与运算符原码、反码、补码,计算机中负数的表示 1 原码:将一个整数,转换成二进制,就是其原码。最高位是符号位,0为正,1为负。 如:单字节情况下,5的原码为: 000

13、0 0101; -5的原码为:1000 0101。2 反码: 正数的反码就是其原码; 负数的反码是将其原码中,除符号位以外,每一位取反。它也恰好是 |x|的所有位取反. 如:单字节情况下,5的反码为: 0000 0101; -5的反码为: 1111 1010。3 补码:正数的补码就是其原码; 负数x的反码+1就是补码。它也恰好是 |x|每一位取反+1. 如:单字节情况下,5的补码为: 0000 0101; -5的补码为: 1111 1011。4 由负数x的补码求原来的数值: x-1 = 每一位取反 = 得到 |x|,再加上负号即可。如,x(补)= 1000 0000 0000 0000 (-1

14、) = 0111 1111 1111 1111 (取反) = 1000 0000 0000 0000 = 215 =|x| 所以 x= - 215 。(当有符号位时, 215不能用两个字节的二进制数码表达。两个字节最大能表达215 -1。)整型变量易错点整型变量易错点 - - 溢出错误发生原因:溢出错误发生原因:给变量的赋值给变量的赋值。 如:如: intint类型,占类型,占2 2个字节(个字节(Tc! Tc! 注意注意, ,vcvc中中shortshort是是2 2个字节个字节,int,int是是4 4个字节个字节. .)因为在内存中:因为在内存中:a: 0111 1111 1111 11

15、11 32767a: 0111 1111 1111 1111 32767b: 1000 0000 0000 0000 -32768b: 1000 0000 0000 0000 -32768的补码的补码例例 3.3 P44 3.3 P44 实验程序:变量中所放数据实验程序:变量中所放数据会怎样会怎样? ?#include #include void main() void main() a,b; a,b;/VC/VC中中intint变量占变量占4 4个字节。个字节。a=32767;a=32767;b=a+1;b=a+1;printf(%d,%dn,a,b);printf(%d,%dn,a,b);

16、 运行结果:运行结果:32767,-3276832767,-327681111111111111101int int 变量的最大允许值为变量的最大允许值为: : c教案ch3数据类型与运算符整型常量的类型:整型常量的类型:1)在一个整数,如果其值在)在一个整数,如果其值在-32768-+32767,则认为它是,则认为它是int型的型的(Tc)。2)一个整数,如果其值在超出了上述范围,且在)一个整数,如果其值在超出了上述范围,且在-2147485648-+2147485647范围内,范围内,则认为它是则认为它是long型的。(再大就看作实型的了。)型的。(再大就看作实型的了。)3)一个整常量后面

17、加一个字母)一个整常量后面加一个字母u,则认为它是,则认为它是unsigned型的。型的。4)一个整常量后面加一个字母)一个整常量后面加一个字母l或或L,则认为它是,则认为它是long型的。型的。 如,如,0L 占占4个字节个字节3.4 实型数据实型实型 (浮点数)(浮点数) 十进制小数形式十进制小数形式 如,如, .123、123.、123.0、0.0、0.、.0、 指数形式指数形式() 如,如,3.45e3、3.45E-3 (表示:(表示:3.45103和和 3.4510-3 的的) 注意注意:1) E的前后必须有数字的前后必须有数字,E后必须是整数。后必须是整数。 如,如,.3E3、3E

18、3、3.E3 3E、E3、1E0.3、 ( n=3*10k = n=3; i=1; while(i=k) n=n*10; i=i+1; ) 2) 指数形式的输出是按规范化形式输出的:小数部分的小数点前有且仅有指数形式的输出是按规范化形式输出的:小数部分的小数点前有且仅有一位非零数字。如,一位非零数字。如, 3.05e3规范规范, 30.5e2和和0.305e4都是不规范的。都是不规范的。 实型常量的类型:实型常量的类型: 后缀,后缀,f、F 为为float (占占4个字节个字节,有效数字有效数字:6-7). 如如: 1.2f 后缀,后缀,l、L 为为 long duoble(占占10个字节个字

19、节,有效数字有效数字:18-19) 如如: 1.2Lc教案ch3数据类型与运算符2424位位8 8位位小数部分占的大,则小数部分占的大,则有效数字多,结果精确。有效数字多,结果精确。指数部分占的大,则指数部分占的大,则表达的数值范围大。表达的数值范围大。在这一位上误差不超过这一位的半个单位,则称这一位在这一位上误差不超过这一位的半个单位,则称这一位是有效数字。是有效数字。二二 实型变量实型变量 (存储方式、分类、易错点等存储方式、分类、易错点等)在计算机中是按照在计算机中是按照存放的存放的( (如如,6.23E-10),6.23E-10) 如图所示:如图所示:2 实型变量的分类实型变量的分类(

20、3 3种)种) 类型名类型名 占字节数占字节数取值范围取值范围 long long double double 10 10 1818 19191010-4931-4931|x|10|x|1049324932 例例 3.4 3.4 实验程序:变量中所放数据实验程序:变量中所放数据会怎样会怎样? ?#include #include void main() void main() float a,b; float a,b; b=a+20; b=a+20; printf(%f,%fn,a,b); printf(%f,%fn,a,b); /%f: /%f:格式符格式符, ,以十进制小数形式输出以十进制

21、小数形式输出, ,默认保留默认保留6 6位小数位小数 运行结果:运行结果:12345678848.000000, 12345678868.00000012345678848.000000, 12345678868.000000 7 7位位实型变量易错点实型变量易错点 - - 舍入误差发生原因:舍入误差发生原因:在计算过程中在计算过程中不足。不足。 如:如: floatfloat类型有效数字为类型有效数字为7 7位。(位。(Tc!Tc!)3.5 字符型数据一一 字符常量字符常量 1 用用括起来的括起来的一个一个字符:字符: 如,如,a 、A、+、9等等。等等。2 转义字符:转义字符:如,如,nn

22、 - - 代表换行符代表换行符! (! (如如, ,printf(printf(* * * * * *););) )转义字符表转义字符表 P48转义字符含义vrdddbfxhh转义字符含义换行垂直制表回车响铃单引号3位8进制数代表的字符水平制表退格换页反斜线双引号2位16进制数代表的字符又如,又如,101101= =A A, , x41x41= =A A, , 00( (串结束符串结束符) ) 等等. . 其中其中(101)8=(41)16=(65)10(101)8=(41)16=(65)103 字符常量在内存中的存储方式字符常量在内存中的存储方式:(以以ASCIIASCII码形式,占一个字节

23、码形式,占一个字节) 如,在内存中:如,在内存中:aa97970011 00010011 0001AA65650010 00010010 0001因为字符数据在内存中是因为字符数据在内存中是的,所以的,所以:二二 字符型变量(占一个字节)字符型变量(占一个字节) 字符变量是用来存放字符的(同样存放的是字符的字符变量是用来存放字符的(同样存放的是字符的 ASCIIASCII码)码),且,且例例 3.6 3.6 实验程序:实验程序: 以以输出字符变量的值输出字符变量的值 验证字符变量中的数据是以验证字符变量中的数据是以格式存放的格式存放的#include #include void main()

24、void main() char c1, c2 ; char c1, c2 ; c1=97; c2=a; c1=97; c2=a; / a / a 响铃字符响铃字符 printf(printf(n,c1,c2); n,c1,c2); /以以字符字符格式格式输出输出 printf(printf(n,c1,c2); n,c1,c2); /以以数值数值格式格式输出输出 a a 97 97 7 7例例 3.7 3.7 小写字母转化为大写字母小写字母转化为大写字母 运行结果:A 65C 67#include #include void main() void main() char c1, c2 ; c

25、har c1, c2 ; c1=a; c2=c; c1=a; c2=c; c1=c1-32; c2=c2-32; c1=c1-32; c2=c2-32; printf(printf(n,c1,c1); n,c1,c1); printf( printf( n,c2,c2); n,c2,c2); 1 1 字符串常量:字符串常量: 字符串常量是用双引号括起来的一串字符。字符串常量是用双引号括起来的一串字符。 如,如,welcomewelcome、20082008、 a a 、 welcomenbeijingn welcomenbeijingn 等。等。2 2 字符串在内存中的存储方式与结束标记:字符

26、串在内存中的存储方式与结束标记:00如,如,welcomewelcome在内存中:在内存中:welcome3 3 字符串的长度,指的是字符串所包含的实际字符个数,而字符串的长度,指的是字符串所包含的实际字符个数,而不是其所占内存的字节数。不是其所占内存的字节数。 如,计算下列字符串的长度:如,计算下列字符串的长度: 1 1) 200820082 2) welcomenbei jingn welcomenbei jingn 3 3) 123328nxafgf123328nxafgf 实验实验程序:程序:#include #include void main() int n; n=strlen(1

27、23328nxafgf); printf(L = %dn,n); c教案ch3数据类型与运算符三种常用数据三种常用数据1) 1)整型整型: : 常量常量: : 三种形式三种形式 变量变量: : 常用的常用的 int longint long 易错易错: : 溢出溢出2)2)实型实型: : 常量常量: : 两种形式两种形式 变量变量: : 常用的常用的 float doublefloat double 易错易错: : 舍入误差舍入误差3)3)字符型字符型: : 以以ASCIIASCII码形式存储码形式存储! 常量常量: : 两种字符常量两种字符常量 变量变量: char : char 3.6 变

28、量赋初值 在在给它赋初值,称为变量的初始化。给它赋初值,称为变量的初始化。 注意注意:1)绝对不允许:)绝对不允许: i=j=k=1; 2)允许:)允许:int i=2.3; - 但是小数部分但是小数部分会被直接裁掉,程序中赋值时也是如会被直接裁掉,程序中赋值时也是如此。此。 允许:允许:float x=2, y=a; - 转换为转换为实型,将原数值赋给相应变量。实型,将原数值赋给相应变量。 如,如,int a=3;float f=3.56;char c=a;int i,j,k=1; /int i=1,j=1,k=1; /3.7 各类各类数值型数据数值型数据之间的混合运算之间的混合运算 - -

29、 两个运算量类型不一致的时候,先转化为一致再运算两个运算量类型不一致的时候,先转化为一致再运算包括整、实、字符型。包括整、实、字符型。 数据类型转化的原则为:数据类型转化的原则为:高高 doubledoublefloatfloat long long unsigned unsigned 低低 intint char, short char, short说明:必定的转换运算对象类型不同时转换v 混合运算示例混合运算示例: 10+ a + 1.5 - 123456789 10+ a + 1.5 - 123456789 * * b bintintintintintintlonglongcharcha

30、rcharchardoubledoubledoubledoubledoubledoubledoubledoubledoubledoublelonglonglonglong3.8 几个常用运算符几个常用运算符c c运算符总表:运算符总表:2 2 关系运算符关系运算符 = = = !=3 3 逻辑运算符逻辑运算符 !(!(逻辑非逻辑非) &() &(逻辑与逻辑与) |() |(逻辑或逻辑或) ) 4 4 位运算符位运算符 () (右移右移) ) ( (按位取反按位取反) |() |(按位或按位或) () (按位异或按位异或) &() &(按位与按位与) )6 6 条

31、件运算符条件运算符 ? : (? : (这是这是c c中唯一的一个三元运算符中唯一的一个三元运算符) )8 8 指针运算符指针运算符 * *( (指针运算符指针运算符) &() &(地址运算符地址运算符) )9 9 求字节数运算符求字节数运算符 (sizeof)(sizeof)11 11 分量运算符分量运算符 . - (. - (也称为结构体成员运算符也称为结构体成员运算符) )12 12 下标运算符下标运算符 13 13 其他其他 如,函数调用运算符:如,函数调用运算符: 函数名函数名()()学习运算符需要注意的问题:学习运算符需要注意的问题:1 1)运算符的功能)运算符的功

32、能2 2)运算符的适用范围)运算符的适用范围3 3)运算符的优先级和结合方向)运算符的优先级和结合方向1 1 基本算术运算符基本算术运算符: : + - + - * * (取余)(取余) 如,如, 3/4 = 0 3/4 = 0 1.0/2 = 0.5 1.0/2 = 0.5 5%2 = 1 5%2 = 1 2%5 = 2 2%5 = 2 优先级:优先级: * * / %/ % + - + - 结合方向:结合方向: 由左到右。由左到右。 2 2 强制类型转换强制类型转换(左结合)(左结合) 一般形式:一般形式: 例例3 38 8 强制类型转换运算符的使用强制类型转换运算符的使用#include

33、 #include void main()void main() int i; int i; float x=3.56;float x=3.56; i=i=(int)x(int)x%2; %2; printf(x=%printf(x=%f, i=%dn,x,i);f, i=%dn,x,i); 运行结果:运行结果:x=3.56, i=1x=3.56, i=1如:如:float x=3.14,y; float x=3.14,y; y=(int)x; y=(int)x; 强制类型转换只是一种强制类型转换只是一种, 如:如:(int)x(int)x得到一个整型的运算结果,但是并不能得到一个整型的运算结

34、果,但是并不能改变变量改变变量x x本身的值。本身的值。如,如,i=3;i=3;j=i+;j=i+;printf(i=%d, j=%dn,i,j);printf(i=%d, j=%dn,i,j);又如,又如,i=3;i=3;j= +i;j= +i;printf(i=%d, j=%dn,i,j);printf(i=%d, j=%dn,i,j);输出结果为:输出结果为:i=4, j=4i=4, j=4输出结果为:输出结果为:i=4, j=3i=4, j=33 3 自增自减运算符自增自减运算符: :(右结合(右结合!) i+i+ i=i+1 i=i+1 i- i- i=i-1 i=i-1关于+ -运

35、算的说明#include #include void main() void main() / /* *1 1)printf()printf()函数在处理输出项的时候,是函数在处理输出项的时候,是按按从右向左从右向左的顺序的顺序输出项的值输出项的值的,的, 然后然后再按再按从左向右从左向右的顺序的顺序。所以输出:。所以输出:5 4 5 4 * */ / / /* * 2 2) VCVC在处理在处理 的时候是的时候是的。但是同时注意到,的。但是同时注意到,当表达式中出当表达式中出现现i+i+时时,VC,VC都是在计算完整个表达式的值以后,才对都是在计算完整个表达式的值以后,才对i i进行自加,对

36、于函数参数也是如此。进行自加,对于函数参数也是如此。 * */ / / /* * 3 3) i+ii+i从左向右从左向右 尽可能多的尽可能多的取字符构成一个运算取字符构成一个运算, ,所以所以 i+i (i+)+i i+i (i+)+i * */ / / /* * * */ /尽量避免在尽量避免在输出项中输出项中出现出现+或或- -运算。运算。(右结合(右结合!)!)两种赋值运算符:两种赋值运算符: 一般赋值运算符:一般赋值运算符: = = 复合赋值运算符:复合赋值运算符: += -= += -= * *= /= %= /= %=1 1) 一般的赋值表达式一般的赋值表达式: : = 赋值运算的

37、运算过程:赋值运算的运算过程: 计算计算的值,赋的值,赋给左端的变量给左端的变量 左端的左端的的值的值的值。的值。如如, x=3.4, x=3.4 a=x+2.1 a=x+2.1 y=(x=1)+2 y=(x=1)+2练习练习: :1 int a, b, c; a=b=c=21 int a, b, c; a=b=c=22 int a, b; float c;2 int a, b; float c; a=b=c=2.4 a=b=c=2.43 3 求求 a=(b=-2)+(c=12)a=(b=-2)+(c=12)赋值运算赋值运算-最重要的运算之一最重要的运算之一, ,它具有它具有的功能的功能!如,

38、如, r=3.14/4; s=3.14r=3.14/4; s=3.14* *r r* *r; v=4.0/3r; v=4.0/3* *pipi* *r r* *r r* *r; y=sin(r)/r;r; y=sin(r)/r;2 2) 复合的赋值运算符:复合的赋值运算符: += -= += -= * *= /= %= /= %=如:如: x+=5 x+=5 x=x+5 x=x+5 x x* *=5 =5 x=x x=x* *5 5 x%=5 x%=5 x=x%5 x=x%5特别:特别: y y* *=x+5 =x+5 y=y y=y* *(x+5)(x+5)练习练习: :1 int a=2,

39、 c; a+=5+(c=31 int a=2, c; a+=5+(c=3)2 2 若若a=8a=8 求求 a/=(b=-2)+(c=12)a/=(b=-2)+(c=12)3 3 若若a=5 a=5 -注意:在计算过程中变量注意:在计算过程中变量a a的值在不断变化!的值在不断变化! 求求a+=a-=aa+=a-=a* *a a4 4 若若a=5a=5 求求a+=a-=aa+=a-=a* *=a=a编程计算当编程计算当a=5a=5时,表达式时,表达式a+=a-=aa+=a-=a* *a a的值。的值。实验程序:实验程序:#include #include void main()void main

40、() int a=5,b;int a=5,b; a+=a-=aa+=a-=a* *a a printf(b=%dnprintf(b=%dn,b);,b); 5 5 逗号运算符逗号运算符( (顺序求值运算符顺序求值运算符): ): (左结合(左结合, ,优先级最低)优先级最低) 一般格式:一般格式: 表达式表达式1 1,表达式,表达式2 2逗号运算的运算过程:逗号运算的运算过程: 依次计算依次计算和和 的值。的值。 如如, x=(, x=(););逗号表达式的一般形式可以扩展为:逗号表达式的一般形式可以扩展为: 表达式表达式1 1,表达式,表达式 2 2,表达式,表达式n n练习:练习:1 1

41、表达式表达式 a=3a=3* *5,a5,a* *4 4 的值为的值为_ _ 。2 (a=32 (a=3* *5,a5,a* *4),a+5 4),a+5 的值是的值是_。3 1) x=(a=3,63 1) x=(a=3,6* *3)3) 的值是的值是_。 2) x=a=3,6 2) x=a=3,6* *3 3 的值是的值是_。 60602020181818184 1) printf( %d %d %d , a,b,c);4 1) printf( %d %d %d , a,b,c); 的含义。的含义。 2) printf( %d %d %d , 2) printf( %d %d %d ,( a

42、,b,c)a,b,c),b,cb,c); ; 的含义。的含义。3.8 几个常用运算符几个常用运算符1 1 基本算术运算符基本算术运算符 + - + - * * (取余)(取余)2 2 强制类型转换运算符强制类型转换运算符 3 3 自增自减运算符自增自减运算符(右结合(右结合!) i+i+i=i+1i=i+1(右结合(右结合!)!) 1 1)一般的赋值表达式)一般的赋值表达式: : = 2 2) 复合的赋值运算符:复合的赋值运算符: += -= += -= * *= /= %= /= %=5 5 逗号运算符逗号运算符( (): ): (左结合)(左结合)Ch3Ch3数据类型与运算符数据类型与运算

43、符1 C1 C的数据类型的数据类型2 2 常量与变量常量与变量3 3 各类数值数据间的混合运算各类数值数据间的混合运算4 4 几种常用的运算符几种常用的运算符整型数据整型数据 实型数据实型数据 字符型数据字符型数据算术运算符算术运算符自加、自减运算符自加、自减运算符赋值运算符赋值运算符(!)(!)作业作业: P66 : P66 Ex 3.5 3.7 3.9 3.10 3.12Ex 3.5 3.7 3.9 3.10 3.12阅读程序:/ / 题目:题目: 输入一个实数,分别输出其整数部分和小数部分。输入一个实数,分别输出其整数部分和小数部分。#include #include void main

44、()void main() float x,f;float x,f;int r;int r;scanf(%f,&x);scanf(%f,&x);r=(int)x;r=(int)x;f=x-r;f=x-r;printf(%dt%fn,r,f);printf(%dt%fn,r,f); 阅读程序:/ /* * 输出几个常用类型的变量所占的字节数输出几个常用类型的变量所占的字节数 函数函数 sizeof(sizeof(类型名类型名); ); 返回指定类型的变量所占的字节数返回指定类型的变量所占的字节数 不同的计算机中,同一数据类型占用的空间不一定相同,可用不同的计算机中,同一数据类型占

45、用的空间不一定相同,可用sizeofsizeof操作符测试操作符测试* */ /#include #include void main()void main() printf( printf( 在在VCVC系统中,各类变量所占字节数为:系统中,各类变量所占字节数为:nn);nn);printf( short - %dn,printf( short - %dn,sizeof(short)sizeof(short) ); );printf( int - %dn,printf( int - %dn,sizeof(int)sizeof(int) ); );printf( long - %dnn,pri

46、ntf( long - %dnn,sizeof(long)sizeof(long) ); );printf( unsigned short - %dn,printf( unsigned short - %dn,sizeof(unsigned short)sizeof(unsigned short) ); );printf( unsigned int - %dn,printf( unsigned int - %dn,sizeof(unsigned int)sizeof(unsigned int) ); );printf( unsigned long - %dnn,printf( unsigned

47、 long - %dnn,sizeof(unsigned long)sizeof(unsigned long) ); );printf( float - %dn,printf( float - %dn,sizeof(float)sizeof(float) ); );printf( double - %dn,printf( double - %dn,sizeof(double)sizeof(double) ); );printf( long double - %dnn,printf( long double - %dnn,sizeof(long double)sizeof(long double

48、) ); );printf( char - %dn,printf( char - %dn,sizeof(char)sizeof(char) ); );printf( unsigned char - %dnn,printf( unsigned char - %dnn,sizeof(unsigned char)sizeof(unsigned char) ); ); c教案ch3数据类型与运算符关于不同类型数据之间赋值的说明:关于不同类型数据之间赋值的说明: 赋值的原则是赋值的原则是尽量保持所赋的值不变。尽量保持所赋的值不变。 一一 涉及到实型数据的赋值涉及到实型数据的赋值(1 1) “ “实实”到

49、到“整整”,截去小数后,再赋值。,截去小数后,再赋值。 ( (不四舍五入。不四舍五入。) ) 如,如,int i; i=3.999; int i; i=3.999; 3 = 3 = i i(2 2) “ “整整” ” 到到“实实”, , 如,如,float x; x=3; float x; x=3; 3.000000 =3.000000 = x x(3 3)“双精度双精度”到到“单精度单精度”,截取,截取7 7位有效数字后,再赋值。位有效数字后,再赋值。 如,如,duoble d; fload f;duoble d; fload f; d=12.34567890; d=12.34567890; f=d; f=d; 12.34567 =12.34567 = f f 反之与反之与 “整整” ” 到到“实实”类似,类似,数值不变,补足有效位后,再赋值。数值不变,补足有效位后,再赋值。c教案ch3数据类型与运算符二二 整型数据之间的赋值整型数据之间的赋值首先回顾补码与整型数据的存储方式首先回顾补码与整

温馨提示

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

评论

0/150

提交评论