欢迎来到天天文库
浏览记录
ID:48051475
大小:490.31 KB
页数:45页
时间:2019-05-06
《c语言第4章数据运算.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、教学内容:4.1数据运算的基本概念4.2算术运算4.3赋值运算4.4关系运算4.5逻辑运算4.6自增自减运算4.7其它运算教学要求:1.掌握各种运算符的优先级、结合方向。2.掌握各种数据运算的运算符的运算。3.掌握混合运算时的类型转换规则。第4章数据运算4.1数据运算的基本概念1.运算符C语言具有丰富的运算符。TurboC提供了44种数据操作运算符,其使用范围很宽。运算符是一种向编译程序说明特定的运算或操作的符号。每一种运算符都具有特定的数据操作规则。2.运算符的分类(1)按运算符要求运算对象的个数分类:单目运算符、双目运算符、三目运算符。(2)按
2、其数据操作功能分类:算术运算符、关系运算符、逻辑运算符、位运算符、C的特殊运算符。3.运算符的优先级当一个表达式中出现多个运算符时,表达式的求值运算按运算符的优先级别从高到低的顺序执行。在C语言中,将44种运算符的优先级从高到低共分为15个等级。如表4.1所示。4.运算符的结合性(1)运算符的左结合性:当一个操作数两侧的运算符具有相同的优先级时,操作数先与左边的运算符结合,即自左至右的结合方向。(2)运算符的右结合性:即自右至左的结合方向。除单目运算符、赋值运算符和三项条件运算符是右结合性外,其它运算符都是左结合性。初等运算符()、[]、单目运算
3、符!、++、––、+、–、(类型)算术运算符、/、%,+、–关系运算符<、>、<=、>=,==、!=逻辑运算符&&、¦¦条件运算符?:赋值运算符=、+=、–=、=、/=、%=逗号运算符,各类运算符的优先级(从高至低):高低5.表达式用运算符将运算对象(常量、变量和函数等)连接起来的、符合C语言语法规则的式子,称为表达式。(1)简单表达式:表达式中只有一个运算符的表达式,被称为普通表达式,或称为简单表达式。(2)复合表达式:有多个运算符构成的表达式,被称为复合表达式。(3)特殊表达式:在使用中,单个常量、变量和函数(返回值)都可以看作是一个表达式
4、,称为特殊表达式。6.表达式求值每一个C的合法表达式,经过运算一定能得到一个确定的数值,这个数值被称为表达式的值。复合表达式的求解过程如下:(1)按运算符的优先级高低次序执行。例如,先乘除后加减。(2)如果在一个运算对象(或称操作数)两侧的运算符的优先级相同,则按C语言规定的结合方向(结合性)进行。4.2算术运算1.五种基本算术运算符+(加法)-(减法/取负)*(乘法)/(除法)%(求余数)2.运算符的优先级与结合性(1)算术运算符的优先级先取负、再乘、除、求余,最后加、减法(2)运算符的结合性为:自左至右的结合方向。3.算术表达式由算术运算符和括
5、号将运算对象连接起来形成的运算式子,称为算术表达式例如,3+6*9、(x+y)/2–14.算术表达式的值除C语言的特定规则外,C语言中算术运算与数学中的算术运算规则相同,经过有限次加减除等运算,最后求得表达式的值。例如,表达式3+6*9的值:575.C语言算术运算的特定规则(1)两个整数相除,其商为整数,小数部分被舍弃。例如,表达式:5/2的值为2,不是2.5。而表达式:12.6/3的值为4.2,不是4。(2)关于求余数运算,要求求余运算符两侧的操作数均为整型数据,否则出错。例如,表达式:5%3的值为2。而5.3%2出错,不是合法表达式。(3)C语
6、言的整型、实型和字符型数据间可以混合运算。例4.1输出算术表达式的结果#includemain(){inta,b,c1;floatx,y,z;a=85;b=18;x=42.6;y=28.3;c1=a/b*9+a%b;z=x/y+(x+y)/2–1;printf("c1=%d",c1);printf("z1=%f",z);}程序运行结果:c1=49z1=39.172222a/b的值是4,4乘9得36,a%b的值1336+13得49混合运算中数据类型的转换:6.数据类型转换1)横向向左的箭头,表示必须的转换。char和shor
7、t型必须转换成int型,float型必须转换成double型。2)纵向向上的箭头,表示不同类型的转换方向。(1)整型、实型和字符型数据间可以混合运算(因为字符数据与整型数据可以通用)。一个运算符两侧的操作数的数据类型不同,则按“先转换、后运算”的原则,首先将数据自动转换成同一类型,然后进行运算。例如,int型与double型数据进行混合运算,则先将int型数据转换成double型,然后在两个同类型的数据间进行运算,结果为double型。注意箭头方向只表示数据类型由低向高转换.例4.2整型、实型数据间混合运算#includemain
8、(){inta;floatx;a=35;x=42.63;printf("%f",a+x);printf("%f",
此文档下载收益归作者所有