收藏 分销(赏)

第三章 数据类型、运算符、表达式.ppt

上传人:pc****0 文档编号:13182192 上传时间:2026-01-31 格式:PPT 页数:103 大小:2.32MB 下载积分:10 金币
下载 相关 举报
第三章 数据类型、运算符、表达式.ppt_第1页
第1页 / 共103页
第三章 数据类型、运算符、表达式.ppt_第2页
第2页 / 共103页


点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,3,章 数据类型、运算符、表达式,第,3,章 数据类型、运算符、表达式,3.1,数据在计算机中是怎样存储的,3.2,整型数据的运算与分析,3.3,实型数据的运算与分析,3.4,字符型数据的运算,3.5,变量赋初值,3.6,各类数值型数据之间的混合运算,3.7,算术运算符和算术表达式,3.8,赋值运算符和赋值表达式,3.9,逗号运算符和逗号表达式,3.10,编程的一般规范,3.1,数据在计算机中是怎样存储的,3.1.1,数据在计算机中是以二进制形式存储的,3.1.2,位、字节和地址,3.1.3,常量和变量,计算机内部的信息都是用,二进制,表示,计算机存储器是用半导体集成电路构成的,有两种稳定的工作状态:“导”与“截止”,即电脉冲的“有”与“无”,分别用“,1,”,和“,0,”,表示,3.1.1,数据是以二进制形式存储的,若相邻的,8,个二极管元件中第,1,3,5,7,个元件处于“导通”状态,第,2,4,6,8,个元件处于“截止”状态,用“,10101010”,表示,导通 截止 导通 截止 导通 截止 导通 截止,1 0 1 0 1 0 1 0,3.1.1,数据是以二进制形式存储的,十进制数,二进制数,0,0,1,1,2,10,3,11,4,100,5,101,十进制数,二进制数,6,110,7,111,8,1000,9,1001,10,1010,3.1.1,数据是以二进制形式存储的,3.1.2,位、字节和地址,位,(bit),,又称“比特”,。每一个二极管元件称为一个“二进制位”,是,存储信息的最小单位,。它的值是“,1”,或“,0”,字节,(byte),,又称“拜特”,。一般将,8,个“二进制位”组织成一组,称为“字节”。这是人们,最常用的存储单位,1,字节,=8,位,2001,2002,2003,2004,2005,2006,地址,。计算机的存储器包含许多存储单元,操作系统把所有存储单元以字节为单位编号,3.1.2,位、字节和地址,3.1.3,常量和变量,常量和变量,常量是指在程序运行过程中其值不能改变的量,变量是指在程序运行过程中其值可以改变的量,常量,包括:,1.,直接常量(字面常量),整形常量,实型常量,字符常量,2.,符号常量:用标识符代表一个常量,定义形式为:,#define,标识符 常量,3.1.3,常量和变量,符号常量,的作用,例,:,求以,r,为半径的圆周长,c,和圆面积,s,,再求以,r,为半径的圆球体积,v,。,c=2*3.1415926*r;,s=3.1415926*r*r;,v=4/3*3.1415926*r*r*r;,#include,void main(),double r=3.67,c,s,v;,c=2*3.1415926*r;,s=3.1415926*r*r;,v=4/3*3.1415926*r*r*r;,printf(“c,=%fns=%,fnv,=%,fn”,c,s,v,);,c=23.059290,s=42.313797,v=155.291633,有错,4.0/3.0,#include,void main(),double r=3.67,c,s,v;,c=2*3.1415926*r;,s=3.1415926*r*r;,v=,4.0/3.0,*3.1415926*r*r*r;,printf(“c,=%fns=%,fnv,=%,fn”,c,s,v,);,c=23.059290,s=42.313797,v=,207.055511,pow(r,2),pow(r,3),#include,#include,#include,void main(),double r=3.67,c,s,v;,c=2*3.1415926*r;,s=3.1415926*,pow(r,2),;,v=4.0/3.0*3.1415926*,pow(r,3),;,printf(“c,=%fns=%,fnv,=%,fn”,c,s,v,);,c=23.059290,s=42.313797,v=207.055511,#define PI 3.1415926,PI,PI,PI,#include,#include,void main(),double r=3.67,c,s,v;,c=2*,PI,*r;,s=,PI,*,pow(r,2),;,v=4.0/3.0*,PI,*,pow(r,3),;,printf(“c,=%fns=%,fnv,=%,fn”,c,s,v,);,c=23.059290,s=42.313797,v=207.055511,#define PI 3.1415926,符号常量,符号常量的性质和使用方法,#define,不是,C,语句,行末没有分号,#define,是一个,“,预编译命令,”,符号常量,一般,用大写,,,以示,与变量,区别,好处:,含义清楚,在需要改变一个常量时能做到,“,一改全改,”,用符号常量能保护所代表的数据不被破坏,要注意区别,变量名,和,变量值,16,h,2000,存储单元,变量名,变量地址,变量值,变量,要注意区别变量名和变量值,16,h,2000,执行,h=37;,37,变量,3.2,整型数据的运算与分析,3.2.1,整型数据运算程序举例和分析,3.2.2,整型常量与整型变量,3.2.1,整型数据运算程序举例和分析,例,2.1,鸡兔同,笼,。在一个茏子里同时养着一些鸡和兔子,你想了解有多少只鸡和多少只兔,主人对你说:我只告诉你鸡和兔的总头数是,16,和,总脚数是,40,,你能不能自己计算有多少只鸡和多少只兔,?,3.2.1,整型数据运算程序举例和分析,解题思路:,设,x,代表鸡的数量,,y,代表兔的数量,总头数为,h,,总脚数为,f,列出下面的方程式:,x+y=h (1),2x+4y=f (2),解方程得到:,3.2.1,整型数据运算程序举例和分析,#include,void main(),int,h,f,x,y,;,h=16;,f=40;,y=(f-2*h)/2;,x=,h-y,;,printf(“%d%dn”,x,y,);,定义整型变量,h,f,x,y,使,h,的值等于,16,使,f,的值等于,40,计算兔的个数,计算鸡的个数,3.2.1,整型数据运算程序举例和分析,#include,void main(),int,h,f,x,y,;,h=16;,f=40;,y=(f-2*h)/2;,x=,h-y,;,printf(“%d%dn”,x,y,);,输出鸡和兔个数,124,%,d,%d,3.2.1,整型数据运算程序举例和分析,#include,void main(),int,h,f,x,y,;,h=16;,f=40;,y=(f-2*h)/2;,x=,h-y,;,printf(“%d%dn”,x,y,);,输出鸡和兔个数,12,4,%,d,%d,cock=%d,rabbit=%d,3.2.1,整型数据运算程序举例和分析,#include,void main(),int,h,f,x,y,;,h=16;,f=40;,y=(f-2*h)/2;,x=,h-y,;,printf(“%d%dn”,x,y,);,输出鸡和兔个数,12,4,cock=%d,rabbit=%d,cock=12,rabbit=4,整型常量的表示形式,在语言中,整常数可用,3,种形式表示,:,10,进制整数,如,123,,,-456,8,进制整数,特点是逢,8,进,1,。在程序中凡以,0,开头的数都认作,8,进制数,16,进制整数。特点是逢,16,进,1,。用,0,9,、,a,f,分别代替,0,15,。在程序中凡以,0 x,或,0X,开头的数都认,作,16,进制数,a=83;/*10,进制数,*/,a=0123;/*8,进制数,*/,a=0 x53;/*16,进制数,*/,3.2.2,整型常量与整型变量,整形常数的取值范围是有限的,后缀:,L,或,l,(长整型数),,U,或,u,(无符号数),a=83L;/*,分配,4,个字节,*/,a=123u;/*,无符号数,*/,a=0XA5Lu;/*16,进制,无符号长整数,*/,整型常量的类型,数据是要存储的,不同类型的数据所分配的字节和存储方式是不同的,整型变量有类型,,因此,整型常量也应该有类型,才能在赋值时匹配,根据常量的大小、数后面加的,字母,l,或,L,、,u,或,U,判断其类型,整型,数据的存储方式,先转换为二进制形式,,以,补码,表示。,正数的补码与原码相同,负数的补码是该数绝对值的二进制形式按位取反加,1,如整数,10,,以二进制形式表示是,1010,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,用两字节存放,求补码的方法,求,-1,的,补码的方法是:,0,0,0,0,0,0,0,1,原码,1,1,1,1,1,1,1,0,诸位取反,反码,1,1,1,1,1,1,1,1,反码加,1,补码,求补码的方法,求,一个负数的,补码的方法是:,取该数,(,不考虑数的符号,),的二进制形式,它就是原码,对该原码逐位,“,取反,”(,逐位把,0,变,1,,把,1,变,0),,得到其,“,反码,”,将得到的反码加,1,求补码的方法,求,-10,的,补码的方法是,?,0,0,0,0,1,0,1,0,原码,1,1,1,1,0,1,0,1,诸位取反,反码,1,1,1,1,0,1,1,0,反码加,1,补码,整型变量的类型,可以定义和使用以下,6,种整型变量:,有符号基本整型,signed,int,无符号基本整型,unsigned,int,有符号短整型,signed short,int,无符号短整型,unsigned short,int,有符号长整型,signed long ,int,无符号长整型,unsigned long ,int,IBM PC,机器所对应的不同形式整型数据的存储范围,定义变量的一般形式是:,类型名 变量名,变量名,,;,例如:,int,h,f,x,y,;,变量都必须在使用前定义,指定,其,类型,赋值:,h=37;f=88;,整型变量,的定义,变量名的取名规则,变量名第一个字符必须是字母或下划线,其后字符必须是字母、数字或下划线,合法,:,sum,,,average,_total,Class,day,month,Student_name,,,tan,,,li_ling,不合法,:,Zhang-sun,,,Students,,,,,$123,,,33,变量名的取名规则,变量名第一个字符必须是字母或下划线,其后字符必须是字母、数字或下划线,大小写字母代表不同的字符,一般,程序中的变量名用小写字母表示,变量名的长度不是无限的,变量名尽量简单易记、见名知意,在同一函数中,不同变量不能取相同名,变量必须,“,先定义,后使用,”,根据定义变量时指定的类型,编译系统为变量分配相应的存储单元,凡未被事先定义的,系统不把它认作变量名,保证程序中变量名使用得正确,指定了每一变量属于一个类型,就便于在编译时据此检查在程序中要求对该变量进行的运算是否合法,整型,数据的溢出,参见课本例,3.3,不同类型数据间运算,参见课本例,3.4,3.3,实型数据的运算与分析,3.3.1,实型数据的运算举例,3.3.2,实型常量的表示形式,3.3.3,实型变量,3.3.1,实型数据的运算举例,例,2.2,分期付款的计算。张先生为购房,向银行贷款,贷款额为,D,元,每月准备还,P,元,月利率为,R,,求需要多少个月才能还清。,m,是还清贷款所需月数,d=324500,,,p=3245,,,r=0.8%,3.3.1,实型数据的运算举例,(1)d,和,p,是整数,,r,是一个小数,因此程序中要分别定义整型变量和实型变量。,(2),公式中用到对数,log,,这个对数是以,10,为底的。对数,log,的函数,log10,3.3.1,实型数据的运算举例,#include,#include,void main(),int,d,p,;,float,r,m,;,d=324500;p=3245;r=0.008;,m=(log10(p)-log10(p-d*r)/log10(1+r);,printf(“month,=%,fn”,m,);,printf(“total,=%,fn”,m,*p);,用到,数学函数,时,定义整型变量,d,p,定义,实,型变量,r,m,赋值,求,m,的值,3.3.1,实型数据的运算举例,#include,#include,void main(),int,d,p,;,float,r,m,;,d=324500;p=3245;r=0.008;,m=(log10(p)-log10(p-d*r)/log10(1+r);,printf(“month,=%,fn”,m,);,printf(“total,=%,fn”,m,*p);,输出,m,的值,计算并输出还款数,total=655436.127930,month=201.983404,输出实数时,3.3.1,实型数据的运算举例,#include,#include,void main(),int,d,=324500,p,=3245,;,double,r,=0.008,m;,m=(log10(p)-log10(p-d*r)/log10(1+r);,printf(“month,=%,fn”,m,);,printf(“total,=%,fn”,m,*p);,定义变量时赋初值,定义,double,型无警告错,3.3.2,实型常量的表示形式,实数在计算机语言中常称为浮点数,十进制小数形式,(,必须有小数点且小数点前后不能同时没有数字,),如:,0.123,123.23,0.0,,,12.,指数形式,(,e,前必须有数字且,e,后必须为整数,),如:,123e3,或,123E3,3.3.2,实型常量的表示形式,实数在计算机语言中常称为浮点数,可加后缀,f,或,F,:表示该浮点数占,4,个字节(,float,),若不加是按,8,个字节存的(,double,),输出格式字符为:,%f,实数的存储形式,对于实数,一律采用,指数,形式存储,123.456,标准化指数形式,为,0.123456,10,3,+,.12345,+,3,数符,数值部分,指数符号,指数,3.3.3,实型变量,实型变量的分类,单精度实型变量(,float,型),双精度实型变量(,double,型),长双精度实型变量(,long double,型),3.3.3,实型变量,实型变量的分类,实型数据的舍入误差,实型变量是由有限的存储单元组成的,能提供的有效数字总是有限的,在有效位以外的数字将被舍去,会产生一些误差,3.3.3,实型变量,实型变量的分类,实型数据的舍入误差,例,:,实型数据的舍入误差,#include,void main(),float a;,a=,1234.141,5926;,printf(a=%fn,a);,a=,1234.141,6,02,7,位有效位,3.3.3,实型变量,实型变量的分类,实型数据的舍入误差,把实数按双精度数处理,把程序中的实常量处理成双精度型,分配,8,个字节,以提高精度。,float a,;,a=1234.1415926;,双精度,单精度,编译时有警告,最好:,double,a;,3.4,字符型数据的运算,3.4.1,字符数据运算的简单例子,3.4.2,字符常量和字符变量,3.4.3,字符串常量,3.4.1,字符数据运算的简单例子,例,2.4,逐个输出英文字母,C,H,I,N,A,。然后按反序输出,即,A,N,I,H,C,。,#include,void main(),char,a=,C,b,=,H,c,=,I,d,=,N,e,=,A,;,printf(“%c%c%c%c%cn”,a,b,c,d,e,);,printf(“%c%c%c%c%cn”,e,d,c,b,a,);,定义字符变量,3.4.1,字符数据运算的简单例子,例,2.4,逐个输出英文字母,C,H,I,N,A,。然后按反序输出,即,A,N,I,H,C,。,#include,void main(),char,a=,C,b,=,H,c,=,I,d,=,N,e,=,A,;,printf(“%c%c%c%c%cn”,a,b,c,d,e,);,printf(“%c%c%c%c%cn”,e,d,c,b,a,);,用单撇号括起来,输出字符,CHINA,ANIHC,3.4.2,字符常量和字符变量,字符常量,字符常量是用单撇号括起来的一个字符,英文字母可以作为字符常量,键盘上的字符都可以作为字符常量,小写字母和大写字母是不同的字符常量,3.4.2,字符常量和字符变量,转义字符,(形式上不是一个字符,但它是占一个字符),用,开头的特殊形式的字符常量,用以产生一个动作。如:,n,r,、,t,、,v,、,、,123,等。,转义字符必须以反斜杠,“”,开头,“”,后只能有一个字符,(,或代表字符的,8,进制或,16,进制数,),3.4.2,字符常量和字符变量,t,跳到下一个输出区,b,消除前一个已输出的字符,r,将当前的输出位置返回在本行开头,f,将当前的输出位置移到下页的开头,0,常用于字符串中,作为串结束标志,代表一个反斜杠字符“,”,代表一个单撤号字符,”,代表一个双撤号字符,ddd,1,3,位,8,进制数所代表的字符,xhh,1,2,位,16,进制数所代表的字符,3.4.2,字符常量和字符变量,ASCII,表,G,107,x47,等价,3.4.2,字符常量和字符变量,字符变量,用来存放字符常量,只能放一个字符,字符变量的定义形式:,char,字符变量列表,;,字符的存储方式,对于字符,按,ASCII,代码,存放;分配,一个字节,的内存空间;所以只能表示,0-255,间的数,A,的,ASCII,代码是,65,(,1000001,),0,1,0,0,0,0,0,1,3.4.2,字符常量和字符变量,字符数据与整型数据在一定条件下通用,char c=,a,;,与,char c=,97,;,等价,3.4.2,字符常量和字符变量,字符数据与整型数据在一定条件下通用,例,2.5,将两个整数分别赋给两个字符变量,再将字符数据按字符和整数形式输出。,#include,void main(),char c1=,97,c2=,98,;,printf(“%c,%cn”,c1,c2);,printf(“%d,%dn”,c1,c2);,char c1=,a,c2=,b,;,a b,97 98,值的输出形式取决于,printf,函数格式串中的格式符,输出字符,输出整数,3.4.2,字符常量和字符变量,字符数据与整型数据在一定条件下通用,例,2.5,将两个整数分别赋给两个字符变量,再将字符数据按字符和整数形式输出。,字符,a,的存储(用,ASCII,代码存放),0,1,1,0,0,0,0,1,按,%c,输出:,a,按,%d,输出:,97,printf(“%c,%cn”,97+1,a+1);,输出什么?,3.4.2,字符常量和字符变量,字符数据与整型数据在一定条件下通用,例,2.5,将两个整数分别赋给两个字符变量,再将字符数据按字符和整数形式输出。,b b,printf(“%d,%dn”,97+1,a+1);,输出什么?,98,98,3.4.2,字符常量和字符变量,字符数据与整型数据在一定条件下通用,例,2.6,将小写字母转换为大写字母。,#include,void main(),char c1=a,c2=b;,c1=c1-,32,;,c2=c2-,32,;,printf(%c,%cn,c1,c2);,a97,A65,b98,B66,c99,C67,规律是?,A,B,3.4.3,字符串常量,字符串常量是一对双撇号括起来的字符序列,How do you do.,CHINA,a,都是合法的字符串,要点:,请区别,”A”,与,A,的不同。,因为它们各自在内存中存放的长度不同。,“,A”A,ASCII,码为0的字符,即空操作字符,不引起任何控制动作,也不是一个可显示的字符,A,A 0,3.4.3,字符串常量,3.4.3,字符串常量,字符串常量是一对双撇号括起来的字符序列,是字符常量,是字符串常量,二者的含义是不同的,char c;,c=,a,;,正确,char c;,c=,”,a,”,;,错误,存放字符,a,的存储单元,存放字符串,”a”,的存储单元,a,0,a,3.5,变量赋初值,1,、变量赋初值的一般形式,类型说明符 变量,1=,值,1,,变量名,2=,值,2,,、,2,、对变量的初始化:,C,允许在变量定义时直接用“,=”,对其进行赋值。,如:,int,sum=0;,int,a,b,c,=5;,int,a=3,b=3,c=5;,char c1=w;,不能这样写:,int,a=d=e=10;,例,:,字符数据的算术运算。,main()char ch1,ch2;ch1=a;ch2=B printf(“ch1=%c,ch2=%cn”,ch1-32,ch2+32);printf(ch1+200=%,dn,ch1+200);,printf(ch1+200=%,cn,ch1+200);/*,字符形式输出一个大于,255,的数值*,/printf(ch1+256=%,dn,ch1+256);printf(ch1+256=%,cn,ch1+256);,程序运行结果:,ch1=A,ch2=b,ch1+200=297,ch1+200=),ch1+256=353,ch1+256=a,思考题:用字符形式输出一个大于,255,的数值,会得到什么结果?,分配,一个字节,的内存空间;所以只能表示,0-255,间的数,3.6,各类数值型数据之间的混合运算,3.6.1,自动转换,3.6.2,强制转换,3.6.1,自动转换,各类数值型数据,间的混合运算,char,和,short,型转换为,int,型,float,型一律转换为,double,型,整型,(,包括,int,short,long,),数据与,double,型数据进行运算,先将整型转换为,double,型,各类数值型数据,间的混合运算,10+a+i*f-d/e,先将,a,转换成整数,97,,运算结果为,107,i,为整型,f,为,float,型,d,为,double,型,e,为,long,型,3.6.1,自动转换,各类数值型数据,间的混合运算,10+a+i*f-d/e,107,先将,i,与,f,转成,double,型,运算结果为,double,型,i,为整型,f,为,float,型,d,为,double,型,e,为,long,型,3.6.1,自动转换,各类数值型数据,间的混合运算,10+a+i*f-d/e,107,double,型,先将,107,转换成双精度,型,,结果为,double,型,i,为整型,f,为,float,型,d,为,double,型,e,为,long,型,3.6.1,自动转换,各类数值型数据,间的混合运算,10+a+i*f-d/e,107,double,型,double,型,转换为,double,型,double,型,最终结果为,double,型,i,为整型,f,为,float,型,d,为,double,型,e,为,long,型,3.6.1,自动转换,3.6.2.,强制转换,强制类型转换,在表达式中也可以利用,“,强制类型转换,”,运算符将数据转换成所需的类型,(,double)a,(将转换成,double,类型),(,int,)(,x+y,),(将,x+y,的值转换成,int,型),(float)(5%3),(将,5%3,的值转换成,float,型),强制类型转换,强制类型转换的一般形式为,:,(类型名)(表达式),例,2.8,强制类型转换。,#include,void main(),float f=3.6;,int,i;,i=(,int)f,;,printf(f,=%,f,i,=%,dn,f,i,);,f,3.600000,i=3,不改变,f,的值,3.6.2.,强制转换,强制类型转换的,应用:,(,1,)为满足运算的要求:,如:,int,i=4;,float x=13.6;,(,int)x%i,;(13%4=1),(,2,)提高运算精度:,如:,int,i=10;,float x;,x=i/3+25.5;(3+25.5=28.5),或,x=,(,float)i/3+25.5;(3.33+25.5=28.83),3.6.2.,强制转换,3.7,算术运算符和算术表达式,3.7.1 C,运算符,3.7.2,算术运算符,3.7.3,算术表达式,3.7.1 C,运算符,(1),算术运算符,(,+-*/%,),(2),关系运算符,(,!),(3),逻辑运算符,(!,|,),(4),位运算符,(,|,),(5),赋值运算符,(及其扩展赋值运算符),(6),条件运算符,(?:),3.7.1 C,运算符,(7),逗号运算符,(,,),(8),指针运算符,(,*,),(9),求字节数运算符,(,sizeof,),(10),强制类型转换运算符,(,(,类型,),),(11),成员运算符,(,.-,),(12),下标运算符,(,),(13),其他,(如函数调用运算符(),算术,表达式,。如,2+6.7*3.5+sin(0.5),赋值表达式,。如,a=5.6,逗号表达式,。如,a=3,y=4,z=8,用逗号连接若干个表达式,顺序执行这些表达式,整个逗号表达式的值是最后一个表达式的值,(,今为,8),3.7.1 C,表达式,3.7.2,算术运算符,1.,基本的算术运算符,(,双目,),:,+,:,加法运算符,-,:,减法运算符,*,:,乘法运算符,/,:,除法运算符,%,:,求余运算符,(,要求,两侧均,为整数,。如,19%4,,结果为,3,。,P47,例,),3.7.2,算术运算符,两个整数相除的结果为整数,如,5/3,的结果值为,舍去小数部分,若一个是实型,那么结果为,double,型,P47,例,3.7.2,算术运算符,如果参加,+,、,-,、,*,、,/,运算的两个数中有一个数为,float,或,double,型,则结果都是,double,型,因为系统将所有,float,型数据都先转换为,double,型,然后进行运算。这是为了提高运算精度,。,强制类型转换运算符,3.7.2,算术运算符,2.,自增、自减运算符:,作用是使变量的值增或减,+i,与,-i,称为前缀形式:在计算时先改变变量的值,再参与其它运算,i+,与,i-,称为后缀形式:在计算时先参与其它运算,再改变变量的值,3.7.2,算术运算符,2.,自增、自减运算符:,作用是使变量的值增或减,例:若,i=1,则,k=+i+2,运行后,i=2,、,k=4,而,k=i+2,运行后,i=2,、,k=3,+,与-运算符的的结合性为右结合。,P48,页,3.16,3.7.3.,算术表达式,用算术运算符和括号将运算对象(也称操作数)连接起来的、符合语法规则的式子,称为算术表达式,运算对象包括常量、变量、函数等,运算符的优先级,运算符的结合性,运算符的优先级与结合性,先按运算符的优先级别高低次序执行,如果优先级别相同,则按规定的,“,结合方向,”,处理,算术运算符,赋值运算符,逗号运算符,+,和,-,高于其他,3.8,赋值运算符和赋值表达式,3.8.1,赋值运算符,3.8.2,类型转换,3.8.3,复合赋值运算符,赋值运算符的使用要点,1,、含义:将,“,=,”,右边的运算对象之值赋给左边的运算对象。,如:,x=1;x=x+1;,2,、使用要点:,(,1,)当,“,=,”,两边数据类型不同时,将进行数据类型的自动转换,原则是:以,“,=,”,左边运算对象的数据类型,为准。,如:,int,x;,float y=3.5;,x=y;,则运行结果为,int,型,说明:,(,2,),复合赋值运算符,赋值运算时不同类型数据间的自动转换,1,、,实型数据赋值给整型数据时,舍弃小数部分;,即:,int,=float,的结果为,int,型。,如:,float a;,int,s;,a=12.34;,s=a;,这时,s,的值为,12,。,2,、将整型数据赋值给实型变量时,数值不变,但数据是浮点形式的;,即,float=,int,的结果为,float,型。,如:,int,s;,float a;,s=12;a=s;,这时,a,的值为,12.00000,。,舍弃,3,、当字符数据赋值给整型变量时,则将字符数据放到整型变量的低,8,位中,即:,int,=char,如:,unsigned char c;,int,x;,c=,376,;,x=c;,则,x,的值为,254,。,1 1 1 1 1 1 1 0,1 1 1 1 1 1 1 0,0 0 0 0 0 0 0 0,赋值运算时不同类型数据间的自动转换,复合赋值运算符的使用要点,1,、含义:在赋值运算符,“,=,”,之前加上其它运算符构成的运 算符。,2,、一般形式:表达式,1,运算符,=,表达式,2,等价于:表达式,1=,表达式,1,运算符 表达式,2,如:,a+=3,等价于,a=a+3,x*=3,等价于,x=x*3,x%=3,等价于,x=x%3,x/=y+3,等价于,x=x/(y+3),3,、使用要点,凡是二元(二目)运算符,都可以与,“,=,”,组合成复合赋值符,如:,+=,-=,*=,/=,%=,=,&=,=,|=,等。,使用复合赋值符的目的:简化程序;提高编译效率。,1,、含义:用于分隔各个表达式,最后一个表达式的值代表整个表达式的值,2,、形式:,简单形式:表达式,1,,表达式,2,如:,a=1,a+2,一般形式:表达式,1,,表达式,2,,表达式,3,,。,表达式,n,如:,a=3,a+3,a+10,a=a+20,a+1,3,、求解过程,从左至右依次计算各个表达式的的值,最后一个表达式的值即为整个表达式的值。,例:,1,),a=3*5,a*4,结果为,60,2,),(a=3*5,a*4),a+5,结果为20,“,顺序求值运算符,”,4,、使用要点,优先级在所有运算符中为最低,。,如:,x=(a=3,6*a),结果为,x=18,x=a=3,6*a,结果为,18(x=3),并非任何地方出现的,“,,,”,都是作为运算符使用的。如:,printf(,“,%d,%d,%d,”,a,b,c,);,即函数参数间的,“,,,”,只作为分隔符。,3.9,逗号运算符和逗号表达式,(,1,)花括号,它用来包括一个控制模块,如果这个模块是在一个函数中,那么左花括号放在函数名的下一行,紧靠左边界,如:,int,add,(,int,x,int,y),如果花括号被用来在程序中限制一个运算块,则也使左花括号放在控制表达式的下一行,右花括号放在被包括的语句的下一行,都与控制表达式的边界对齐。,如:,3.10,编程一般规范,for(i=0;i256;i+),printf(,“,%d,%,dn,”,I,x,);,x+=5;,(2),缩进,缩进总是以,3,个空格为单位。,题目:,1,、若有以下定义,则能使值为,3,的表达式是,int,k=7,x=12,A)x,%=(k%=5),B)x,%=(k-k%5),C)x,%=k-k%5,D)(x,%=,k)-(k,%=5),D,2,、已知字母,A,的,ASCII,码为十进制数,65,且,c2,为字符型,则执行语句,c2=,A,十,6,3;,后,c2,中的值为,A)D B)67 C),不确定的值,D)C,3,、设以下变量均为,int,类型,则值不等于,7,的表达式是,A)(x=y=6,x+y,x+1),B)(x,=y=6,x+y,y+1),(x=6,x+1,y=6,x+y)D)(y=6,y+l,x=y,x+1),4,、设变量,a,是整型,f,是实型,i,是双精度型,则表达式,10+a+i*f,值的数据类型为,A)int,B)float C)double D),不确定,A,C,C,5,、设,C,语言中,一个,int,型数据在内存中占,2,个字节,则,unsigned,int,型数据的取值范围为,:,0,255 B)0,32767 C)0,65535 D)0,2147483647,6,、若有说明语句,:char c=72,则变量,c,A),包含,1,个字符,B),包含,2,个字符,C),包含,3,个字符,D),说明不合法,c,的值不确定,C,A,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服