《运算与表达式》PPT课件.ppt
《《运算与表达式》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《运算与表达式》PPT课件.ppt(37页珍藏版)》请在装配图网上搜索。
第3章运算与表达式,3.1算术运算,3.1.1基本算术运算符单目基本算术运算符+正值运算符-负值运算符双目基本算术运算符+加法运算符-减法运算符*乘法运算符/除法运算符%模(求余)运算符,3.1算术运算,3.1.1基本算术运算符注意:如果两个操作对象是不同的类型。系统先把它们转成相同类型(这个转换并不会改变操作对象的值),然后再进行运算,运算结果值的类型也是转换后的类型。除法运算的两个操作对象如果是整型,则结果是去掉小数部分后的整型,如19/10的表达式值是1,如果操作对象是整型且符号不同,则不同编译器出来方法可能不同,大部分是按照绝对值进行计算,结果去除小数部分后再加上负号。求余运算如果操作对象有负数,则先按照两操作对象的绝对值进行计算,然后表达式的值,即余数的值按照操作对象1的符号确定,如-13%7、-13%-7两个表达式值都是-6,13%-7、13%7表达式值都是6。,3.1算术运算,3.1.2优先级与结合性复合表达式由运算符、操作对象构成的有值的式子被称为表达式。操作对象本身也可以是一个表达式。含有两个或更多操作符的表达式称为复合表达式。例如:a+b/3*c-15%3复合表达式按运算符的优先级别高低次序计算基本算术运算符的优先级为一级:单目运算:+、-二级:双目运算:*、/、%三级:双目运算:+、-,3.1.2优先级与结合性,优先级相同按由运算符的结合性确定计算次序右结合一个运算对象左右两边的运算符如果优先级相同时就先算右边的或有两个同级别的运算符就先算右边的一个。例如:单目运算符。左结合一个运算对象在左右两边的运算符如果优先级相同时就先算左边的或有两个同级别的运算符就先算左边的一个。例如:双目运算符。例如:10*2/5使用括号(2+10)*-2/5+(5+3)%4)*2,3.1算术运算,3.1.3数据类型转换数据类型转换当表达式中出现不同类型数据的混合运算时,往往需要先进行数据类型的转换后才能运算,这种转换并不会改变原来变量的值和数据类型。隐式类型转换两个相同类型的数据(除short、char、float)直接可以运算,不需要类型转换。两个不同类型的数据运算时,系统会自动地将低类型操作数转换为另一个高类型操作数的类型,然后再进行运算。short、char=int-unsignedint-long-unsignedlong-float=double-longdouble强制类型转换(类型名)(表达式)例如:(double)x,例1,设inta=7;floatx=2.1,y=4.4;求表达式x+a%3*(int)(x+y)%2/4的值。#includevoidmain()inta=7;floatx=2.1,y=4.4;printf(%dn,a%3);printf(%dn,(int)(x+y);printf(%dn,a%3*(int)(x+y);printf(%dn,a%3*(int)(x+y)%2);printf(%dn,a%3*(int)(x+y)%2/4);printf(%fn,x+a%3*(int)(x+y)%2/4);例2,设inta=2,b=3;floatx=4.1,y=2.4;求表达式(float)(a+b)/2+(int)x%(int)y的值。,3.7赋值运算,3.7.1赋值运算符和赋值表达式一般形式为:变量=表达式说明赋值运算符的优先级仅高于逗号运算符,赋值表达式的求解过程为:先计算赋值运算符右边的表达式的值,再将计算的值赋给运算符左边的变量。赋值运算符具有计算和赋值的双重功能。,赋值运算,复合赋值运算在赋值运算符之前加上其它运算符可以构成复合赋值运算符一般形式如下:+=a+=b等价于a=a+b-=a-=b等价于a=a-b*=a*=b等价于a=a*b/=a/=b等价于a=a/b%=a%=b等价于a=a%b例如,已知x=3,y=2,求表达式x*=y+8的值。又如,已知m=2,y=2,求表达式y+=y-=m*=y的值。,【例1】编写程序,实现从键盘上输入学生的三门课成绩,计算并输出其总成绩和平均成绩。#includevoidmain()floata,b,c,sum,ave;/*输入部分*/printf(Enterthreefloat:);scanf(%f,%f,%f,应用举例,【例2】输入一个字符,求它的前驱和后继字符。并输出这三个字符及其对应的ASCII码。一个字符的前驱字符是比该字符ASCII码值小1的字符。一个字符的后继字符是比该字符ASCII码值大1的字符。#includevoidmain()charch,prech,nextch;/*输入部分*/printf(Enterachar:);ch=getchar();/*计算与输出部分*/prech=ch-1;nextch=ch+1;printf(%c%c%cn,ch,prech,nextch);printf(%d%d%dn,ch,prech,nextch);,应用举例,3.1算术运算,3.1.4自增、自减运算自增运算符“+”表达式形式:运算符操作对象操作对象运算符自减运算符“-”表达式形式:运算符操作对象操作对象运算符注意自增对象必须是整型变量尽量避免在一个表达式中出现对同一个变量的多次自增、自减运算,3.1.4自增、自减运算【例3.8】给出下面程序的输出结果#includevoidmain()inta=1,b=1,c;printf(%d,+a);printf(%d,a);printf(%d,b+);printf(%dn,b);a=3;b=5;c=(-a)*b;printf(a=%d,c=%dn,a,c);a=3;b=5;c=(a-)*b;printf(a=%d,c=%dn,a,c);,输出结果:2,2,1,2a=2,c=10a=2,c=15,3.1算术运算,3.2关系运算,关系运算=双目等于运算符、左结合!=双目不等于运算符、左结合双目大于运算符、左结合=双目大于等于运算符、左结合、=、x);,程序运行结果:1,0,1,1,01,0,选择结构应用举例,if语句if(表达式)语句,【例4.3】编写程序,从键盘输入整数,判定它是否为大于100的数。#includevoidmain()inta;/*输入部分*/printf(Theprogramgetsanumber,);printf(andshowsifitislargerthan100.n);printf(Thenumber:);scanf(%d,if语句if(表达式)语句,【例4.4】输出3个整数中的最小数。#includeintmain()inta,b,c,max;printf(输入3个整数:n);scanf(%d,%d,%d,选择结构应用举例,【例4.5】输入两个整数,从小到大排序输出。#includevoidmain()inta,b,t;/*输入部分*/printf(Entertwointeger:);scanf(%d,%d,if语句if(表达式)语句,选择结构应用举例,3.3逻辑运算,三种逻辑运算符!单目逻辑非运算符、右结合printf(%d,x双目右移位运算符、左结合表达式形式:操作对象1移位运算符操作对象2,左移位运算符将操作对象1的二进制形式根据操作对象2的值左移若干位,操作对象1右侧补0,左侧移出部分舍弃。右移位运算符将操作对象1的二进制形式根据操作对象2的值右移若干位,操作对象1左侧补0,右侧移出部分舍弃。,3.4位运算,3.4.2移位运算举例charx=5,y=12x2=?xx=?,(x2)00000101(5)00000001(1),(x=b等价于a=abx=sizeof(char);x=sizeof(x);,3.6其它运算,3.6.2逗号运算用逗号连接的表达式称为逗号表达式。逗号表达式的形式为:表达式1,表达式2,表达式3,表达式n注意逗号表达式的求解过程为,依次计算表达式1的值,表达式2的值,表达式n的值。表达式n的值为逗号表达式的值.逗号运算符的优先级是所有运算符中最低的,其结合性是自左向右。例如:intx;x=(3*5,12),100;,3.6其它运算,3.6.3条件运算条件表达式的一般形式为:表达式1?表达式2:表达式3先计算表达式1,如果表达式1的值非0,则执行表达式2,表达式2的值作为整个条件表示的值;如果表达式1为0,则执行表达式3,表达式3的值作为整个条件表示的值。【例3.26】输入三个整数,输出其中最大的一个。#includevoidmain()intx,y,z,t;scanf(%d%d%d,第2次上机内容和作业,一、上机题实验指导P145,14.1,14.2,15.1,15.2.1,15.2.2注意:15.1.3,15.1.5用到以下头文件和函数#include求平方根函数sqrt,例如求a的平方根为sqrt(a)。二、作业教材习题2.5,3.8有关题目实验指导13章有关题目,- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 运算与表达式 运算 表达式 PPT 课件
装配图网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文