第4章 数据运算.ppt
《第4章 数据运算.ppt》由会员分享,可在线阅读,更多相关《第4章 数据运算.ppt(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、教学内容:教学内容:4.1 4.1 数据运算的基本概念数据运算的基本概念 4.2 4.2 算术运算算术运算 4.3 4.3 赋值运算赋值运算 4.4 4.4 关系运算关系运算 4.5 4.5 逻辑运算逻辑运算 4.6 4.6 自增自减运算自增自减运算 4.7 4.7 其它运算其它运算教学要求:教学要求:1.1.掌握各种掌握各种运算符的优先级、结合方向。运算符的优先级、结合方向。2.2.掌握各种掌握各种数据运算的运算符的运算数据运算的运算符的运算。3.3.掌握混合运算时的类型转换掌握混合运算时的类型转换规则规则。第第 4 4 章章 数数 据据 运运 算算4.14.1 数据运算的基本概念数据运算的
2、基本概念1.1.运算符运算符 C C语言具有丰富的运算符。语言具有丰富的运算符。Turbo C Turbo C 提供了提供了4444种数种数据操作运算符,其使用范围很宽。据操作运算符,其使用范围很宽。运算符运算符是一种向编译程序说明特定的运算或操作的是一种向编译程序说明特定的运算或操作的符号。每一种运算符都具有特定的数据操作规则。符号。每一种运算符都具有特定的数据操作规则。2.2.运算符的分类运算符的分类 (1 1)按按运运算算符符要要求求运运算算对对象象的的个个数数分分类类:单单目目运运算算符、双目运算符、三目运算符。符、双目运算符、三目运算符。(2 2)按按其其数数据据操操作作功功能能分分
3、类类:算算术术运运算算符符、关关系系运运算符、逻辑运算符、位运算符、算符、逻辑运算符、位运算符、C C的特殊运算符的特殊运算符 。3.3.运算符的优先级运算符的优先级 当当一一个个表表达达式式中中出出现现多多个个运运算算符符时时,表表达达式式的的求求值值运运算算按按运运算算符符的的优优先先级级别别从从高高到到低低的的顺顺序序执执行行。在在C C语语言言中中,将将4444种种运运算算符符的的优优先先级级从从高高到到低低共共分分为为1515个个等等级级。如如表表4.14.1所示。所示。4.4.运算符的结合性运算符的结合性(1 1)运运算算符符的的左左结结合合性性:当当一一个个操操作作数数两两侧侧的
4、的运运算算符符具具有有相相同同的的优优先先级级时时,操操作作数数先先与与左左边边的的运运算算符符结结合合,即即自左至右的结合方向。自左至右的结合方向。(2 2)运算符的)运算符的右结合性右结合性:即自右至左的结合方向。即自右至左的结合方向。除除单目单目运算符、运算符、赋值赋值运算符和运算符和条件条件运算符是右结合性外,运算符是右结合性外,其它运算符都是左结合性。其它运算符都是左结合性。初等运算符初等运算符 ()、单目运算符 !、!、+、+、(类型类型)算术运算符算术运算符 、/、%,+、关系运算符 、=,=、!=逻辑运算符逻辑运算符&、条件运算符?:赋值运算符赋值运算符 =、+=、=、=、/=
5、、%=逗号运算符 ,各类运算符的优先级(各类运算符的优先级(从高至低从高至低):):高高低低 5.5.表达式表达式 用用运运算算符符和和括括号号将将运运算算对对象象(常常量量、变变量量和和函函数数等等)连接起来的、符合语言语法规则的式子,称为表达式。连接起来的、符合语言语法规则的式子,称为表达式。(1 1)简单表达式:表达式中只有一个运算符的表达简单表达式:表达式中只有一个运算符的表达式,被称为普通表达式,或称为简单表达式。式,被称为普通表达式,或称为简单表达式。(2 2)复合表达式:有多个运算符构成的表达式,被复合表达式:有多个运算符构成的表达式,被称为复合表达式。称为复合表达式。(3 3)
6、特殊表达式:在使用中,单个常量、变量和函特殊表达式:在使用中,单个常量、变量和函数(返回值)都可以看作是一个表达式,称为特殊表达式。数(返回值)都可以看作是一个表达式,称为特殊表达式。6.6.表达式求值表达式求值每每一一个个C C的的合合法法表表达达式式 ,经经过过运运算算一一定定能能得得到到一一个确定的数值,这个数值被称为表达式的值。个确定的数值,这个数值被称为表达式的值。复合表达式的求解过程如下复合表达式的求解过程如下:(1)(1)按按运运算算符符的的优优先先级级高高低低次次序序执执行行。例例如如,先先乘除后加减。乘除后加减。(2)(2)如如果果在在一一个个运运算算对对象象(或或称称操操作
7、作数数)两两侧侧的的运运算算符符的的优优先先级级相相同同,则则按按语语言言规规定定的的结结合合方方向向(结合性)进行。(结合性)进行。4.24.2 算算 术术 运运 算算 1.五种基本算术运算符五种基本算术运算符 +(加法加法 )-(减法减法/取负取负 )*(乘法乘法 )/(除法除法 )%(求余数求余数 )2.运算符的优先级与结合性运算符的优先级与结合性(1)算术运算符的优先级)算术运算符的优先级 先先取负取负、再、再乘、除、求余乘、除、求余,最后,最后加、减法加、减法 (2)运算符的结合性为:自左至右的结合方向。)运算符的结合性为:自左至右的结合方向。3.3.算术表达式算术表达式 由由算算术
8、术运运算算符符和和括括号号将将运运算算对对象象连连接接起起来来形形成成的的运算式子,称为算术表达式运算式子,称为算术表达式 例如,例如,3+6*9 、(x+y)/2 14.4.算术表达式的值算术表达式的值除除C C语语言言的的特特定定规规则则外外,C C语语言言中中算算术术运运算算与与数数学学中中的的算算术术运运算算规规则则相相同同,经经过过有有限限次次加加减减除除等等运运算算,最最后后求得求得表达式的值。表达式的值。例如,例如,表达式表达式 3+6*9 的值的值:57 5.5.C C语言语言算术运算的特定规则算术运算的特定规则 (1 1)两两个个整整数数相相除除,其其商商为为整整数数,小小数
9、数部部分分被被舍舍弃弃。例例如如,表表达达式式:5/2 的的值值为为 2 ,不不是是 2.5。而而表达式:表达式:12.6/3的的值为值为4.2 ,不是不是 4。(2 2)关关于于求求余余数数运运算算,要要求求求求余余运运算算符符两两侧侧的的操操作数均为整型数据,否则出错。作数均为整型数据,否则出错。例例如如,表表达达式式:5%3 的的值值为为2。而而5.32出出错错,不是合法不是合法表达式表达式。(3 3)C C语语言言的的整整型型、实实型型和和字字符符型型数数据据间间可可以以混混合合运算。运算。例例4.1 输出算术表达式的结果输出算术表达式的结果#includemain()int a,b,
10、c1;float x,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=%dn,c1);printf(z1=%fn,z);程序运行结果程序运行结果:c1=49 z1=39.172222a/b的值是的值是4,4乘乘9得得36,a%b的值的值1336+13得得49混合运算中数据类型的转换:混合运算中数据类型的转换:6.数据类型转换数据类型转换 1)横向向左的箭头,)横向向左的箭头,表示必须的转换。表示必须的转换。char和和short 型必须转换成型必须转换成 int 型,型,float型必须转型必须转换成换成dou
11、ble型。型。2)纵纵向向向向上上的的箭箭头头,表表示示不不同同类类型型的的转转换换方方向。向。(1)整整型型、实实型型和和字字符符型型数数据据间间可可以以混混合合运运算算(因为字符数据与整型数据可以通用)。(因为字符数据与整型数据可以通用)。一一个个运运算算符符两两侧侧的的操操作作数数的的数数据据类类型型不不同同,则则按按“先先转转换换、后后运运算算”的的原原则则,首首先先将将数数据据自自动动转转换换成成同一类型,然后进行运算。同一类型,然后进行运算。例如,例如,int 型型与与 double 型型数数据据进进行行混混合合运运算算,则则先先将将 int 型型数数据据转转换换成成 double
12、 型型,然然后后在在两两个个同同类类型型的的数数据间进行运算,据间进行运算,结果为结果为double型。型。注意箭头方向只表示数据类型由低向高转换注意箭头方向只表示数据类型由低向高转换.例例4.2整型、实型数据间混合运算整型、实型数据间混合运算#includemain()int a;float x;a=35;x=42.63;printf(%fn,a+x);printf(%fn,x/a);程序运行结果程序运行结果:77.630001 1.218000自动将自动将X的的数据转换成数据转换成 double 型,再将型,再将 int 型型变量变量a数据转换成数据转换成 double 型型,进行加法运算
13、,运算进行加法运算,运算结果为结果为double型型 7.7.数据类型强制转换数据类型强制转换数据类型允许强制转换数据类型允许强制转换,一般格式为:一般格式为:(数据类型数据类型)()(表达式表达式)例如例如:(int)(x+y)/*将将 x+y 的结果转换成的结果转换成 int 型型*/(1)(1)当当被被转转换换的的表表达达式式是是一一个个简简单单表表达达式式时时,外外面面的一对圆括号可以缺省。的一对圆括号可以缺省。例如例如:(double)a /*将变量将变量a的值转换成的值转换成double型型*/(float)5/2 (等价于等价于(float)(5)/2)/*将将5转换成实型再除以
14、转换成实型再除以2(=2.5)*/(float)(5/2)/*/*将将5 5整除整除2 2的结果的结果:2,:2,转换成实型数:转换成实型数:2.0*/2.0*/(2)(2)强强制制转转换换类类型型得得到到的的是是一一个个所所需需类类型型的的中中间间量量,原原表达式类型并不发生变化。表达式类型并不发生变化。例如,例如,(double)a 只只是是将将变变量量a a的的值值转转换换成成一一个个double型型的的中中间间量量,其其数数据类型并未转换成据类型并未转换成double型。型。例例4.3 数据类型强制转换数据类型强制转换#includemain()int a;float x,y;a=85
15、;x=42.6;y=19.3;printf(“1-%ft,(float)5/2);printf(“2-%fn,(float)(5/2);printf(“3-%dt,(int)(x+y);printf(“4-%fn,(double)a);程序运行结果:程序运行结果:1-2.500000 2-2.000000 3-61 4-85.0000004.3 4.3 赋赋 值值 运运 算算 1.1.赋值运算赋值运算 赋值运算符赋值运算符:“=”,它的作用是将一个表达式,它的作用是将一个表达式的值赋给一个变量。的值赋给一个变量。给变量赋值的一般形式为:给变量赋值的一般形式为:变量变量 =表达式表达式 2 2赋
16、值运算符的优先级赋值运算符的优先级 赋值赋值运算符的运算符的优优先先级级低于算低于算术术运算符,也低于关运算符,也低于关系运算符和系运算符和逻辑逻辑运算符。运算符。3 3赋值运算结合方向赋值运算结合方向 赋值赋值运算运算结结合方向:自右向左合方向:自右向左结结合。合。4.4.赋值表达式赋值表达式由由赋赋值值运运算算符符或或复复合合赋赋值值运运算算符符,将将一一个个变变量量和和一一个个表达式连接起来的表达式,称为赋值表达式。表达式连接起来的表达式,称为赋值表达式。(1)赋值表达式赋值表达式一般格式一般格式 变量变量 赋值运算符赋值运算符 表达式表达式 例如,例如,a=5 、b=x+3*y(2)赋
17、值表达式的值赋值表达式的值任任何何一一个个表表达达式式都都有有一一个个值值,赋赋值值表表达达式式也也不不例例外外。被赋值变量的值,就是赋值表达式的值。被赋值变量的值,就是赋值表达式的值。例如,例如,a=5 赋值表达式,变量赋值表达式,变量a的值的值是是 赋值表达式的值赋值表达式的值是是。例如,例如,int x;float y;x=5 y=(float)5/2 如果表达式值的类型,与被赋值变量的类型不一如果表达式值的类型,与被赋值变量的类型不一致,但都是数值型或字符型时,系统自动地将表达式致,但都是数值型或字符型时,系统自动地将表达式的值转换成被赋值变量的数据类型,然后再赋值给变的值转换成被赋值
18、变量的数据类型,然后再赋值给变量。量。表达式表达式 x=5 的值的值:5 变量变量 x 的值的值:5 表达式表达式 y=(float)5/2 的值的值:2.0 变量变量 y 的值的值:2.0 (3)赋值运算结合方向:右赋值运算结合方向:右左左例如例如:x=y=65 等价于等价于 x=(y=65)操作数操作数 y 是先与是先与右右边的运算符结合,即边的运算符结合,即 先将先将 65 赋值给变量赋值给变量 y 变量变量 y 的的值是值是 65 表达式表达式 y=65 的的值是值是 65 再做再做左左边边赋值运算,赋值运算,即即 将将表达式表达式 y=65的的值值65,赋值给变量赋值给变量 x 变量
19、变量 x 的的值是值是 65 表达式表达式 x=y=65 的的值是值是 65 5.5.复合赋值运算复合赋值运算 复复合合赋赋值值运运算算符符:是是由由赋赋值值运运算算符符之之前前再再加加一一个个双双目目运算符构成的。运算符构成的。(1)复合赋值运算的一般格式为:复合赋值运算的一般格式为:变量变量 双双 目目 运运 算算 符符=表达式表达式 复合赋值运算符复合赋值运算符它等价于:它等价于:变量变量=变量变量 双目运算符双目运算符(表达式表达式)例如:例如:y*=x+6 等价于等价于 y=y*(x+6)不是不是 y=y*x+6 当当表表达达式式为为简简单单表表达达式式时时,表表达达式式外外的的一一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第4章 数据运算 数据 运算
限制150内