
运算符和表达式.ppt
35页第第3章章 运算符和表达式运算符和表达式第第3章章 运算符和表达式运算符和表达式v3.1 3.1 算术表达式算术表达式算术表达式算术表达式 v3.2 3.2 赋值表达式赋值表达式赋值表达式赋值表达式 v3.3 3.3 关系表达式关系表达式关系表达式关系表达式 v3.4 3.4 逻辑表达式逻辑表达式逻辑表达式逻辑表达式 v3.5 3.5 条件表达式条件表达式条件表达式条件表达式v3.6 3.6 逗号表达式逗号表达式逗号表达式逗号表达式v3.7 3.7 多种类型混合运算多种类型混合运算多种类型混合运算多种类型混合运算 学习目标学习目标 v学会使用常用的运算符学会使用常用的运算符学会使用常用的运算符学会使用常用的运算符v学会正确书写学会正确书写学会正确书写学会正确书写C C表达式表达式表达式表达式v掌握运算符的优先级、结合性和运算对象掌握运算符的优先级、结合性和运算对象掌握运算符的优先级、结合性和运算对象掌握运算符的优先级、结合性和运算对象数目数目数目数目v理解表达式的求解过程理解表达式的求解过程理解表达式的求解过程理解表达式的求解过程v了解隐式类型转换和强制类型的转换了解隐式类型转换和强制类型的转换了解隐式类型转换和强制类型的转换了解隐式类型转换和强制类型的转换第第3章章 运算符和表达式运算符和表达式C C运运运运算算算算符符符符算术运算符:(算术运算符:(算术运算符:(算术运算符:(+ - * / % ++ --+ - * / % ++ --))))关系运算符:(关系运算符:(关系运算符:(关系运算符:(< <= == > >= !=< <= == > >= !=))))逻辑运算符:(!逻辑运算符:(!逻辑运算符:(!逻辑运算符:(! && ||&& ||))))位运算符位运算符位运算符位运算符 :(:(:(:(<< >> ~ | ^ &<< >> ~ | ^ &))))赋值运算符:(赋值运算符:(赋值运算符:(赋值运算符:(= = 及其扩展)及其扩展)及其扩展)及其扩展)条件运算符:(条件运算符:(条件运算符:(条件运算符:(?:?:))))逗号运算符:(逗号运算符:(逗号运算符:(逗号运算符:(, ,))))指针运算符:(指针运算符:(指针运算符:(指针运算符:(* * & &))))求字节数求字节数求字节数求字节数 :(:(:(:(sizeofsizeof))))强制类型转换:(类型)强制类型转换:(类型)强制类型转换:(类型)强制类型转换:(类型)分量运算符:(分量运算符:(分量运算符:(分量运算符:(. ->. ->))))下标运算符:(下标运算符:(下标运算符:(下标运算符:([ ][ ]))))其它其它其它其它 :(:(:(:(( ) -( ) -))))vv学习运算符应注意:学习运算符应注意:学习运算符应注意:学习运算符应注意:§运算符功能运算符功能运算符功能运算符功能§与运算量关系与运算量关系与运算量关系与运算量关系•要求运算量个数、要求运算量个数、要求运算量个数、要求运算量个数、•要求运算量类型要求运算量类型要求运算量类型要求运算量类型§运算符优先级别运算符优先级别运算符优先级别运算符优先级别•优先级高优先级高优先级高优先级高( (级别数值小级别数值小级别数值小级别数值小) )者先运算者先运算者先运算者先运算§结合方向(优先级相同时)结合方向(优先级相同时)结合方向(优先级相同时)结合方向(优先级相同时)•左结合:运算对象先参加左边的运算,结果再参左结合:运算对象先参加左边的运算,结果再参左结合:运算对象先参加左边的运算,结果再参左结合:运算对象先参加左边的运算,结果再参加右运算。
加右运算加右运算加右运算•右结合:运算对象先参加右边的运算,结果再参右结合:运算对象先参加右边的运算,结果再参右结合:运算对象先参加右边的运算,结果再参右结合:运算对象先参加右边的运算,结果再参加左运算加左运算加左运算加左运算§结果的类型结果的类型结果的类型结果的类型3.1 算术表达式vv3.1.1 3.1.1 算术表达式算术表达式算术表达式算术表达式§表达式表达式表达式表达式::::常量,变量,函数,运算符组成的有意义的式子常量,变量,函数,运算符组成的有意义的式子常量,变量,函数,运算符组成的有意义的式子常量,变量,函数,运算符组成的有意义的式子§基本算术运算符:基本算术运算符:基本算术运算符:基本算术运算符: + + - - * / % * / %•结合方向:从左向右结合方向:从左向右结合方向:从左向右结合方向:从左向右•优先级:优先级:优先级:优先级: - - ----> ---->* / %* / % -----> + - -----> + - (2) (3) (4)(2) (3) (4)•说明:说明:说明:说明:– –“-”“-”为为为为单目单目单目单目运算符时运算符时运算符时运算符时, ,右结合性右结合性右结合性右结合性– –两整数相除,结果为整数两整数相除,结果为整数两整数相除,结果为整数两整数相除,结果为整数– –%%要求两侧均为整型数据要求两侧均为整型数据要求两侧均为整型数据要求两侧均为整型数据例例 5/2 得得 2 -5/2.0 得得 -2.5例例 5%2 得得 1 -5%2 得得 -1 1%10 得得 1 6%2 得得 0 5.5%2 ( )写成写成写成写成C C表达式:表达式:表达式:表达式:1.0/2*(a*x+(a+x)/4/x) 1.0/2*(a*x+(a+x)/4/x) 写成写成写成写成C C表达式:表达式:表达式:表达式:(a+b)/(c+d*e/(f+g*h)) (a+b)/(c+d*e/(f+g*h)) §作用:使变量值加作用:使变量值加作用:使变量值加作用:使变量值加1 1或减或减或减或减1 1§种类:种类:种类:种类:•前缀前缀前缀前缀++i, --i (++i, --i (先执行先执行先执行先执行i i+1+1或或或或i-1i-1,,,,再使用再使用再使用再使用i i值)值)值)值)•后后后后缀缀缀缀i++,i-- (i++,i-- (先使用先使用先使用先使用i i值值值值, ,再执行再执行再执行再执行i i+1+1或或或或i-1i-1))))§说明:说明:说明:说明:•++ -- ++ -- 不能不能不能不能用于常量和表达式用于常量和表达式用于常量和表达式用于常量和表达式, ,如如如如5++5++,,,,( (a+b)++a+b)++•++ --++ --结合方向:结合方向:结合方向:结合方向: 自右向左自右向左自右向左自右向左•优先级:优先级:优先级:优先级:- ++ -- ------>* / % ----->+ -- ++ -- ------>* / % ----->+ - (2) (2) (3) (3) (4) (4)3.1.2 自增、自减运算自增、自减运算例例例例 3.1 3.1 注意下列程序运行后变量注意下列程序运行后变量注意下列程序运行后变量注意下列程序运行后变量x x与与与与y y的区别。
的区别include <#include
赋值运算符的使用赋值运算符的使用赋值运算符的使用include <#include
分析下面程序的运行结果分析下面程序的运行结果分析下面程序的运行结果include <#include
的式子v关系表达式格式:关系表达式格式:关系表达式格式:关系表达式格式:表达式表达式表达式表达式 关系运算符关系运算符关系运算符关系运算符 表达式表达式表达式表达式v关系表达式的值:关系表达式的值:关系表达式的值:关系表达式的值: 1 1 1 1 关系成立,关系成立,关系成立,关系成立,0 0 0 0 关系不成立关系不成立关系不成立关系不成立例例例例 3.4 3.4 若有若有若有若有intint x=2,y=3,z=5; x=2,y=3,z=5;,,,,计算下列关系表达计算下列关系表达计算下列关系表达计算下列关系表达式的值1 1))))x%2= =0x%2= =0 表达式值是表达式值是表达式值是表达式值是1 1 “x%2”x%2”值为值为值为值为0 0,再计算,再计算,再计算,再计算“ “0= =0”0= =0”结果为结果为结果为结果为1 12 2))))z=x–1>=y–2
3 3))))8<5<38<5<3 表达式值是表达式值是表达式值是表达式值是1 1先计算“ “8<5”8<5”其值为其值为其值为其值为0 0,再计算,再计算,再计算,再计算“ “0<3”0<3”,值为,值为,值为,值为1 1,表达式的值为,表达式的值为,表达式的值为,表达式的值为1 13.4 逻辑表达式逻辑表达式vv逻辑运算是判断运算对象的逻辑关系,运算对象为关系表达逻辑运算是判断运算对象的逻辑关系,运算对象为关系表达逻辑运算是判断运算对象的逻辑关系,运算对象为关系表达逻辑运算是判断运算对象的逻辑关系,运算对象为关系表达式或逻辑量式或逻辑量式或逻辑量式或逻辑量vv运算量运算量运算量运算量: : : : 0 0 0 0表示表示表示表示““““假假假假””””,,,,非非非非0 0 0 0表示表示表示表示““““真真真真””””运算结果运算结果运算结果运算结果: : : : “ “ “ “假假假假””””为为为为0 0 0 0,,,,““““真真真真””””为为为为1 1 1 1vv逻辑运算种类:逻辑运算种类:逻辑运算种类:逻辑运算种类: ! !(逻辑非)(逻辑非)(逻辑非)(逻辑非) &&&&(逻辑与)(逻辑与)(逻辑与)(逻辑与) || ||(逻辑或)(逻辑或)(逻辑或)(逻辑或)§逻辑非的一般形式:逻辑非的一般形式:逻辑非的一般形式:逻辑非的一般形式:! ! 表达式表达式表达式表达式•功能:单目运算符,其结果为运算对象逻辑值取功能:单目运算符,其结果为运算对象逻辑值取功能:单目运算符,其结果为运算对象逻辑值取功能:单目运算符,其结果为运算对象逻辑值取“ “反反反反” ”。
若表达式值为若表达式值为若表达式值为若表达式值为0 0,则,则,则,则“ “! !表达式表达式表达式表达式” ”值为值为值为值为1 1;否则,;否则,;否则,;否则,“ “! !表达表达表达表达式式式式” ”值为值为值为值为0 0•例如:例如:例如:例如:!x!x,作用是判别,作用是判别,作用是判别,作用是判别x x是否为是否为是否为是否为0 0,,,,x x为为为为0 0时,值为时,值为时,值为时,值为1 1;否;否;否;否则值为则值为则值为则值为0 0,与,与,与,与x==0x==0等价3.4 逻辑表达式逻辑表达式vv逻辑运算种类:逻辑运算种类:逻辑运算种类:逻辑运算种类: ! !(逻辑非)(逻辑非)(逻辑非)(逻辑非) &&&&(逻辑与)(逻辑与)(逻辑与)(逻辑与) || ||(逻辑或)(逻辑或)(逻辑或)(逻辑或)§逻辑与的一般形式:逻辑与的一般形式:逻辑与的一般形式:逻辑与的一般形式:表达式表达式表达式表达式 && && 表达式表达式表达式表达式§功能:若参加运算的两个表达式值均为非功能:若参加运算的两个表达式值均为非功能:若参加运算的两个表达式值均为非功能:若参加运算的两个表达式值均为非0 0,则结果为,则结果为,则结果为,则结果为1 1;;;;否则结果为否则结果为否则结果为否则结果为0 0。
§例如:判断例如:判断例如:判断例如:判断“ “c c是一个大写字母是一个大写字母是一个大写字母是一个大写字母” ”的逻辑表达式:的逻辑表达式:的逻辑表达式:的逻辑表达式: c>=' c>='A'&&cA'&&c<='Z'<='Z'§逻辑或的一般形式:逻辑或的一般形式:逻辑或的一般形式:逻辑或的一般形式:表达式表达式表达式表达式 || || 表达式表达式表达式表达式§功能:若参加运算的两个表达式值均为功能:若参加运算的两个表达式值均为功能:若参加运算的两个表达式值均为功能:若参加运算的两个表达式值均为0 0,则结果为,则结果为,则结果为,则结果为0 0;否;否;否;否则结果为则结果为则结果为则结果为1 1§例如,判断例如,判断例如,判断例如,判断“ “c c是一个字母是一个字母是一个字母是一个字母” ”的逻辑表达式:的逻辑表达式:的逻辑表达式:的逻辑表达式:c>='c>='A'A'&&&&c c<='<='Z'Z'|| ||c c>='>='a'a'&&&&c c<='z'<='z' ! ! (2)(2)&& && (11)(11)|| || (12)(12)高高高高低低低低l优先级:优先级:优先级:优先级:l结合方向:结合方向:结合方向:结合方向:! ! : :从右向左从右向左从右向左从右向左&& :&& :从左向右从左向右从左向右从左向右|| :|| :从左向右从左向右从左向右从左向右3.4 逻辑表达式逻辑表达式例例例例 3.5 3.5 设设设设“ “intint a=2,b=3; char c=’A’;float x=3.6,y=–4.4” a=2,b=3; char c=’A’;float x=3.6,y=–4.4”,,,,写写写写出下列表达式的值。
出下列表达式的值出下列表达式的值出下列表达式的值1 1))))a>b||!a>b||!((((c–‘A’c–‘A’))))&&x 例例例例 3.6 3.6 根据下列条件,写出根据下列条件,写出根据下列条件,写出根据下列条件,写出C C的逻辑表达式的逻辑表达式的逻辑表达式的逻辑表达式1 1)条件)条件)条件)条件“ “长度分别为长度分别为长度分别为长度分别为a a、、、、b b、、、、c c的三条线段能够组成的三条线段能够组成的三条线段能够组成的三条线段能够组成三角形三角形三角形三角形” ”逻辑表达式:逻辑表达式:逻辑表达式:逻辑表达式: a+b>c&&a+c>b&&b+c>aa+b>c&&a+c>b&&b+c>a((((2 2))))条件条件条件条件“ “|x||x|是一个两位数是一个两位数是一个两位数是一个两位数” ”逻辑表达式逻辑表达式逻辑表达式逻辑表达式: x>=10&&x<=99||x>=–99&&x<=–10: x>=10&&x<=99||x>=–99&&x<=–10((((3 3))))条件条件条件条件“ “y y年是润年年是润年年是润年年是润年” ”逻辑表达式:逻辑表达式:逻辑表达式:逻辑表达式: y%4==0&&y%100!=0||y%400==0y%4==0&&y%100!=0||y%400==0例例例例 3.6 3.6 根据下列条件,写出根据下列条件,写出根据下列条件,写出根据下列条件,写出C C的逻辑表达式。 的逻辑表达式的逻辑表达式的逻辑表达式4 4))))条件条件条件条件“ “x x、、、、y y 落在圆心在(落在圆心在(落在圆心在(落在圆心在(0,00,0)半径为)半径为)半径为)半径为1 1的圆外、的圆外、的圆外、的圆外、中心点在(中心点在(中心点在(中心点在(0,00,0)边长为)边长为)边长为)边长为4 4的矩形内的矩形内的矩形内的矩形内” ”逻辑表达式:逻辑表达式:逻辑表达式:逻辑表达式:x*x*x+yx+y*y>1&&x>=–2&&x<=2&&y>=–2&&y<=2*y>1&&x>=–2&&x<=2&&y>=–2&&y<=22 22 2-2-21 11 1-1-1-1-1-2-2注意注意注意注意v逻辑表达式的特性逻辑表达式的特性逻辑表达式的特性逻辑表达式的特性::::§逻辑表达式求解时,并非所有的逻辑运算符都被执行,只逻辑表达式求解时,并非所有的逻辑运算符都被执行,只逻辑表达式求解时,并非所有的逻辑运算符都被执行,只逻辑表达式求解时,并非所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,是在必须执行下一个逻辑运算符才能求出表达式的解时,是在必须执行下一个逻辑运算符才能求出表达式的解时,是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符才执行该运算符才执行该运算符才执行该运算符例例例例 a&&b&&c a&&b&&c // //只在只在只在只在a a为真时,才判别为真时,才判别为真时,才判别为真时,才判别b b的值;的值;的值;的值; // //只在只在只在只在a a、、、、b b都为真时,才判别都为真时,才判别都为真时,才判别都为真时,才判别 c c的值的值的值的值例例例例 a||b||c a||b||c // //只在只在只在只在a a为假时,才判别为假时,才判别为假时,才判别为假时,才判别b b的值;的值;的值;的值; // //只在只在只在只在a a、、、、b b都为假时,才判别都为假时,才判别都为假时,才判别都为假时,才判别 c c的值的值的值的值例例例例 a=1;b=2;c=3;d=4;m=1;n=1;a=1;b=2;c=3;d=4;m=1;n=1; (m=a>b)&&(n=c>d) (m=a>b)&&(n=c>d) // //结果结果结果结果m=0,n=1m=0,n=1例例例例 3.7 3.7 分析下面程序的运行结果。 分析下面程序的运行结果分析下面程序的运行结果分析下面程序的运行结果include <#include 用条件表达式计算用条件表达式计算用条件表达式计算 (1)1)求变量求变量求变量求变量t t的符号 f=t>=0?1:–1f=t>=0?1:–1(2)(2)求三个变量求三个变量求三个变量求三个变量x x、、、、y y、、、、z z的最大值的最大值的最大值的最大值 s=(s=x>y?x:y)>z?s:zs=(s=x>y?x:y)>z?s:z(3)(3)将字符变量将字符变量将字符变量将字符变量chch若为小写字母则改为大写字母,其余字符不变若为小写字母则改为大写字母,其余字符不变若为小写字母则改为大写字母,其余字符不变若为小写字母则改为大写字母,其余字符不变 chch=(=(chch>=’>=’a’&&cha’&&ch<=’<=’z’?ch+’Az’?ch+’A’–’’–’a’:cha’:ch) )( (4)4)输出整型变量输出整型变量输出整型变量输出整型变量x x的绝对值的绝对值的绝对值的绝对值 (x>0)?printf("%d",x): (x>0)?printf("%d",x): printf("%dprintf("%d",–x);",–x);例例例例 3.9 3.9 下列程序输入变量下列程序输入变量下列程序输入变量下列程序输入变量a a、、、、b b、、、、c c 后,按值从大到小后,按值从大到小后,按值从大到小后,按值从大到小输出。 输出include <#include 时运算的先后次序,即运算对象先做优先级高的运算时运算的先后次序,即运算对象先做优先级高的运算时运算的先后次序,即运算对象先做优先级高的运算§如:如:如:如:4–6*84–6*8,先做,先做,先做,先做“*”“*”运算,其结果再做运算,其结果再做运算,其结果再做运算,其结果再做“ “–”–”,因,因,因,因“*”“*”优优优优先级高于先级高于先级高于先级高于“ “–”–” §C C语言的运算符有语言的运算符有语言的运算符有语言的运算符有1515种优先级,运算级别高的运算先计算,再种优先级,运算级别高的运算先计算,再种优先级,运算级别高的运算先计算,再种优先级,运算级别高的运算先计算,再进行运算级别低的运算表达式中可通过增加括号来改变运进行运算级别低的运算表达式中可通过增加括号来改变运进行运算级别低的运算表达式中可通过增加括号来改变运进行运算级别低的运算表达式中可通过增加括号来改变运算顺序 3.7 多种类型混合运算多种类型混合运算表表3.2 部分运算符的优先级与结合性部分运算符的优先级与结合性优先级优先级运算符运算符运算符名称运算符名称运算对象数运算对象数举举 例例结合方向结合方向 1()()圆括号圆括号!(a+b)*c自左至右自左至右 2!++、、--+ 、、-(类型标识符)(类型标识符)sizeof逻辑非逻辑非自加、自减自加、自减正号、负号正号、负号类型强制转换类型强制转换数据长度数据长度1(单目)(单目)!(a>0&&b<0)x++,,--yy=-x(int)x/3sizeof(int);;自右至左自右至左3* / %相相乘乘 相相除除 求求余数余数2(双目)(双目)r*r*3.14x/y m%n自左至右自左至右4+ -相加相加 相减相减2(双目)(双目)a+b a-b自左至右自左至右6> < >= <=大于大于 小于小于大于或等于大于或等于小于或等于小于或等于2(双目)(双目)x>5 x<5x>=5x<=5自左至右自左至右7==!=等于等于不等于不等于2(双目)(双目)x==5x!=5自左至右自左至右11&&逻辑与逻辑与2(双目)(双目)x>–5&&x<5自左至右自左至右12||逻辑或逻辑或2(双目)(双目)x>5||x<-5自左至右自左至右13?::条件条件3(三目)(三目)max=x>y? x:y自右至左自右至左14= += -= *= /= %= 赋值赋值2(双目)(双目)x=5,x*=5,y/=x+6自右至左自右至左15,,逗号逗号2(双目)(双目)a=b,b=c+6,c++自左至右自左至右3.7.2 3.7.2 运算符结合方向运算符结合方向运算符结合方向运算符结合方向§规定了在表达式求解过程中,若运算对象其左右运算符优规定了在表达式求解过程中,若运算对象其左右运算符优规定了在表达式求解过程中,若运算对象其左右运算符优规定了在表达式求解过程中,若运算对象其左右运算符优先级相同时的运算方向。 先级相同时的运算方向先级相同时的运算方向先级相同时的运算方向§结合性有两种:从左到右计算为左结合、从右到左计算为结合性有两种:从左到右计算为左结合、从右到左计算为结合性有两种:从左到右计算为左结合、从右到左计算为结合性有两种:从左到右计算为左结合、从右到左计算为右结合§如:表达式如:表达式如:表达式如:表达式1.0*5/21.0*5/2,计算结果为,计算结果为,计算结果为,计算结果为2.52.5;表达式;表达式;表达式;表达式5/2*1.05/2*1.0,计,计,计,计算结果为算结果为算结果为算结果为2.02.0 3.7 多种类型混合运算多种类型混合运算3.7.3 3.7.3 混合运算的类型转换混合运算的类型转换混合运算的类型转换混合运算的类型转换§算术运算中的类型转换算术运算中的类型转换算术运算中的类型转换算术运算中的类型转换•隐式转换隐式转换隐式转换隐式转换––运算转换规则运算转换规则运算转换规则运算转换规则: : : :不同类型数据运算时先不同类型数据运算时先不同类型数据运算时先不同类型数据运算时先自动自动自动自动转换成同一转换成同一转换成同一转换成同一类型,类型,类型,类型,转换规则如下转换规则如下转换规则如下转换规则如下::::3.7 多种类型混合运算多种类型混合运算öö规则规则规则规则1 1::::charchar、、、、short short intint、、、、float doublefloat double 结果类型与转换后的类型相同结果类型与转换后的类型相同结果类型与转换后的类型相同结果类型与转换后的类型相同 如:如:如:如:3.0e35f*4.0e40f 3.0e35f*4.0e40f 计算结果计算结果12.0e75,,类型为类型为double。 自动转换自动转换自动转换自动转换3.7.3 3.7.3 混合运算的类型转换混合运算的类型转换混合运算的类型转换混合运算的类型转换3.7 多种类型混合运算多种类型混合运算§规则规则规则规则2 2 2 2:相同类型(除:相同类型(除:相同类型(除:相同类型(除charchar、、、、shortshort、、、、floatfloat型外)的操作型外)的操作型外)的操作型外)的操作数作算术运算的结果为同一类型数作算术运算的结果为同一类型数作算术运算的结果为同一类型数作算术运算的结果为同一类型 如:如:如:如: 5/2 5/2 5/2 5/2 结果为结果为结果为结果为2 2 2 2,,,,– –5/25/25/25/2结果为结果为结果为结果为– –2 2 2 2 öö规则规则规则规则3 3 3 3::::不同类型不同类型不同类型不同类型,先按,先按,先按,先按规则规则规则规则1 1转换,还有转换,还有转换,还有转换,还有不同类型,则不同类型,则不同类型,则不同类型,则再再再再按按按按低级别低级别低级别低级别 高级别,高级别,高级别,高级别,其结果类型与转换后的类型其结果类型与转换后的类型其结果类型与转换后的类型其结果类型与转换后的类型相同。 相同自动转换自动转换如:如:如:如: 2.0f+5/2*32.0f+5/2*3,原表达式相当于,原表达式相当于,原表达式相当于,原表达式相当于2.0f+((5/2)*3)2.0f+((5/2)*3),结果,结果,结果,结果为为为为8.08.0,类型是,类型是,类型是,类型是doubledouble型 各类型的级别高低如下:各类型的级别高低如下:各类型的级别高低如下:各类型的级别高低如下: char 强制类型转换举例强制类型转换举例强制类型转换举例 ((((1 1))))计计计计算算算算实实实实型型型型变变变变量量量量x x的的的的整整整整数数数数部部部部分分分分与与与与y y的的的的小小小小数数数数部部部部分分分分之之之之和 写作:写作:写作:写作:( (int)x+y-(int)yint)x+y-(int)y((((2 2))))实型数据实型数据实型数据实型数据d d保留保留保留保留3 3位小数(不四舍五入)位小数(不四舍五入)位小数(不四舍五入)位小数(不四舍五入) 写作:写作:写作:写作:( (int)(dint)(d*1000)/1000.0*1000)/1000.0((((3 3))))求整型变量求整型变量求整型变量求整型变量k k的右边第的右边第的右边第的右边第n n位上的数字位上的数字位上的数字位上的数字 写作:写作:写作:写作:k/(int)pow(10,n–1)%10k/(int)pow(10,n–1)%10 。












