1、Teacher teaching designCONTENTS 目 录赋值运算符类型转换复合的赋值运算符案例分析 交流提升仿真演练 体验探索赋值运算符PART 01赋值运算符符号“=”就是赋值运算符,它的作用是将一个数据赋给一个变量。如:“x=12”的作用是把常量12赋给变量x。也可以将一个表达式的值赋给一个变量。赋值运算符具有右结合性,其优先级为14,低于算术运算符。赋值表达式:一般形式为:变量=表达式 说明:表达式是指由C的合法运算符连接常量、变量、函数而成的合法式子。赋值表达式的值:赋值表达式的值就是被赋值变量的值。由于C语言将“=”定义为赋值运算符,因此其求值过程应按运算符的规定进行。
2、假如:int a=12,b=5,c=3;则赋值表达式x=a/b*c 的计算结果为x=6,既赋值表达式x=a/b*c 的值为6。赋值表达式 a=b=c=13的值为13。a=b=c=13可理解为 a=(b=(c=13)x=(a=10)+(b=20)的值为 30。其含义是把10赋给a,20赋给b,再把a,b相加的和赋给x,故x应等于30。赋值运算的功能是先计算右边表达式的值,然后再把此值赋给赋值号左边的变量,确切地说,是把数据放入以该变量为标识的存储单元中去。类型转换PART 02类型转换如果赋值运算符两边的数据类型不相同,系统将自动进行类型转换,即把赋值号右边的类型换成左边的类型。例如:(1)实型
3、赋予整型,舍去小数部分。如:int x;x=3.14159;结果x=3。(2)整型赋给单、双精度变量时,数值不变,但将以浮点数形式存储。如:将89赋给float变量y,先将89转换为89.00000,再存储到y中。(3)字符型赋予整型,由于字符型为一个字节,而整型为二个字节,故将字符的ASCII码值放到整型量的低八位中,高八位为0。整型赋予字符型,只把低八位赋予字符量。复合的赋值运算符PART 03复合的赋值运算符在赋值符“=”之前加上其它二元运算符可构成复合赋值符。如+=,-=,*=,=,%=都是复合赋值符。复合赋值运算的一般格式为:变量 双目运算符=表达式 复合赋值运算符它等价于:变量=变
4、量 双目运算符(表达式)。例如:x%=y 相当于 x=x%y a*=b+c 相当于 a=a*(b+c):复合赋值符的优先级和赋值运算符相同(14级),结合性也相同。这种写法的目的是可以提高编译效率并产生质量较高的目标代码。案例分析 交流提升PART 04案例分析 交流提升【例1】程序运行的结果为:main()int x=3,y=5;x*=x+y;printf(“x=%dn”,x);【例2】以下程序运行后的输出结果是 。main()int a=1,b=2,c=3;if(c=a)printf(%dn,c);else printf(%dn,b);【例3】以下程序运行后的输出结果是 。main()ch
5、ar c;int n=100;float f=10;double x;x=f*=n/=(c=50);printf(%d%fn,n,x);仿真演练 体验探索PART 05仿真演练 体验探索1、赋值运算符的使用(1)若有定义int x=3,y=2;float a=2.5,b=3.5;则表达式(x+y)%2+(int)a/(int)b的值为()A)1.0 B)1 C)2.0 D)2(2)设a和b均为double型变量,且a=5.5,b=2.5,则表达式(int)a+b/b的值是()A)6500000 B)6 C)5.500000 D)6.000000(3)若已定义x 和y 为double,则表达式x
6、=1,y=x+3/2 的值是()A)1 B)2 C)2.0 D)2.5(4)下列程序的输出结果是()#includemain()double d=3.2;int x,y;x=1.2;y=(x+3.8)/5.0;printf(%dn,d*y);A)3 B)3.2 C)0 D)3.07(5)有以下程序运行后的输出结果是()main()int m=3,n=4,x;x=-m+;x=x+8/+n;printf(%dn,x);A)3 B)5 C)-1 D)-2 仿真演练 体验探索2、表达式的使用(1)下面哪个表达式的值为4.(单选)A.11/3 B.11.0/3 C.(float)11/3 D.(int)(11.0/3+0.5)(2)已知整型变量a=6,b=7,c=1,则下面表达式的值为多少?a+3 _ (b-a*3)/5 _ c*(a+b)+b*(c+a)_ 3.2*(a+b+c)_3、复合赋值表达式的使用 (1)设x,y,z均为整型变量,则执行语句x=(y=(z=10)=5)-5;后x,y和z的值是()A)x=10,y=15,z=10 B)x=10,y=10,z=10 C)x=10,y=10,z=15 D)x=10,y=5,z=10 (2)假设int型变量a的初值为10,表达式a+=a-=a*=a的值为()