欢迎来到天天文库
浏览记录
ID:40047481
大小:413.00 KB
页数:32页
时间:2019-07-18
《《工学c语言》ppt课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第3章运算符和表达式3.1运算符与表达式的基础知识3.2算术运算符和算术表达式3.3赋值运算3.4关系运算符、逻辑运算符与逻辑表达式3.5条件表达式与逗号表达式小结3.1运算符与表达式的基础知识C运算符算术运算符:(+-*/%++--)关系运算符:(<<===>>=!=)逻辑运算符:(!&&
2、
3、)赋值运算符:(=及其扩展)条件运算符:(?:)逗号运算符:(,)强制类型转换:(类型)位运算符:(<<>>~
4、^&)指针运算符:(*&)求字节数:(sizeof)分量运算符:(.->)下标运算符:([])等等学习运算符应注意:
5、运算符的功能与运算量之间的关系运算量的个数、运算量的类型运算符的优先级别优先级高(级别数值小)者优先运算结合方向(优先级相同时)左结合:运算对象先参加左边的运算,得到的结果再参加右运算。右结合:运算对象先参加右边的运算,得到的结果再参加左运算。结果的类型混合运算时不同类型之间的转换3.2算术运算符和算术表达式表达式:用运算符将运算对象联系起来的有意义的式子。总有确定的值。常量、变量、函数是最简单的表达式。3.2.1算术运算符与算术运算基本算术运算符:-(取负)+-(减)*/%结合方向:从左向右优先级:高优先级-==>*
6、/%==>+-低优先级说明:“-”为单目运算符时,右结合性两整数相除,结果为整数%的两侧要求均为整型数据例5/2得2-5/2.0得-2.5例5%2得1-5%2得-11%10得15%1得05.5%2()写成C表达式:1.0/2*(a*x+(a+x)/4/x)写成C表达式:(a+b)/(c+d*e/(f+g*h))表达式的书写规则:须写在同一行上;只能用圆括号(),且内层括号运算优先。不同类型数据间的转换隐式转换什么情况下发生?运算转换----不同类型数据混合运算时赋值转换----把一个值赋给与其类型不同的变量时输出转换
7、----输出时转换成指定的输出格式函数调用转换----实参与形参类型不一致时转换运算转换的规则:不同类型数据运算时先自动转换成同一类型。规则2:相同类型(除char、short、float型外)的操作数作算术运算的结果为同一类型。例charch;inti;floatf;doubled;ch/i+f*d-(f+i)intintdoubledoubledoubledoubledoubledoubleintintdoubledoubledoubledoubledoubledouble10+‘a’+i*f-d/l例inti;f
8、loatf;doubled;longl;规则1:char和shortint、floatdouble其结果的类型与转换后的类型相同自动转换自动转换规则3:不同类型,先按规则1转换,还有不同类型,则再按低级别高级别,其结果类型与转换后的类型相同。自动转换各类型的级别高低如下:char9、所需类型的中间变量,原变量类型不变例main(){floatx;inti;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);}结果:x=3.600000,i=3精度损失问题较高类型向较低类型转换时可能发生例3.1算术表达式的计算举例。(1)计算实型变量x的整数部分与y的小数部分之和。写作:(int)x+y-(int)y(2)实型数据d保留3位小数(不四舍五入)。写作:(int)(d*1000)/1000.0(3)求整型变量k的右边第n位上的数字。写作:k/(int)pow(10,n–1)%110、0例3.1d1强制类型转换的运用。#includemain(){inti;floatx;x=3.8;i=(int)x;printf(“x=%f,i=%d”,x,i);printf(“(double)(int)x=%f”,(double)(int)x);printf(“xmod3=%d”,(int)x%3);}程序运行:x=3.800000,i=3(double)(int)x=3.000000xmod3=0例3.1d2已知字符‘0’的ASCII码是48,观察下列程序的运行结果。#includ11、emain(){charch=‘1’;intval=1;printf(“%d,%c”,val,ch);printf(“%d,%d”,val,ch);printf(“%d”,ch-’0’);printf(“%c”,val+’0’);}程序运行:1,11,49113.2.2自增、自减运算符++--作用
9、所需类型的中间变量,原变量类型不变例main(){floatx;inti;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);}结果:x=3.600000,i=3精度损失问题较高类型向较低类型转换时可能发生例3.1算术表达式的计算举例。(1)计算实型变量x的整数部分与y的小数部分之和。写作:(int)x+y-(int)y(2)实型数据d保留3位小数(不四舍五入)。写作:(int)(d*1000)/1000.0(3)求整型变量k的右边第n位上的数字。写作:k/(int)pow(10,n–1)%1
10、0例3.1d1强制类型转换的运用。#includemain(){inti;floatx;x=3.8;i=(int)x;printf(“x=%f,i=%d”,x,i);printf(“(double)(int)x=%f”,(double)(int)x);printf(“xmod3=%d”,(int)x%3);}程序运行:x=3.800000,i=3(double)(int)x=3.000000xmod3=0例3.1d2已知字符‘0’的ASCII码是48,观察下列程序的运行结果。#includ
11、emain(){charch=‘1’;intval=1;printf(“%d,%c”,val,ch);printf(“%d,%d”,val,ch);printf(“%d”,ch-’0’);printf(“%c”,val+’0’);}程序运行:1,11,49113.2.2自增、自减运算符++--作用
此文档下载收益归作者所有