版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
运算符计算机实现操作有两种方式:运算:数学中所规定的各种基本运算,由运算符来实现。函数:对于复杂的运算,需要编制子函数来实现。标准函数(库函数);用户自定义函数;目录算术运算符和算术表达式赋值运算符和赋值表达式关系运算符和关系表达式逻辑运算符和逻辑表达式不同类型数据的混合运算算术运算符和算术表达式计算机中的算术运算对应于现实世界的算术运算算术运算符:++、--自增、自减运算++%求余数--/÷*×C语言的运算符现实中的算术运算符计算机中的算术运算符:+-*/%加法运算或正号运算符减法运算或负号运算符乘法运算符除法运算符求余运算符,或称模运算符完成现实世界的算术运算(加、减、乘、除)++、--自增、自减运算符1说明:关于C语言中的除法运算(/)(整除和实数除法):
在C程序中,两个整数相除(整除),会自动舍去小数部分。
在算术运算中,8÷5=?
在C程序中,8/5——
结果为Why?
如果希望结果为1.6,则应写成:
如果参加运算的两个数中有一个数为实数,则结果是实数(实数除法)。Why?8.0/5;1.6关于求余运算:求余运算的意义为:被除数除以除数所得的余数求余运算要求%两侧都是整型数据。A%B—意味着求A除以B的余数。
8%5的运算结果为:结果?3关于求余运算举例:给定一个三位数,将三个数字分离出来。例,328→3,2,8,解答:用m表示一个三位整数;a表示百位;b表示十位;c表示个位。百位=m/100;a=a=3十位=(m/10)%10;b=b=2个位=m%10;c=c=8328/100;(328/10)%10;328%10;算术表达式:算术表达式:用算术运算符和括号将运算量连接起来的式子称为算术表达式。运算符有优先级和结合性:计算表达式的值时,按照优先级的高低依次计算;如果运算符优先级相同,则按规定的结合方向进行。算术运算符的结合性从左到右(1)求三个数的算术平均值代数表达式:ave=算术表达式:ave=(a+b+c)/3.0(2)根据三角形三边计算三角形面积代数表达式:算术表达式:sqrt(s*(s-a)*(s-b)*(s-c))(3)根据半径计算圆的周长代数表达式:C=2πr算术表达式:C=2*3.14159*r算术表达式算术运算符的优先级+、-(加减运算符)最低!*、/、%
第二级!-(负号运算符)
无括号时我最高!(、)(括号)
最优先!自增(++)和自减运算(--)
++运算符的作用:是使变量的值增1。
--运算符的作用:是使变量的值减1。原始值原始值+1变量++变量变量原始值原始值-1变量--变量变量自增(++)和自减运算(--)自增和自减运算只能应用于整型变量和指针型变量。例,I++、P--等++和--可以写在变量的左侧或右侧;而且其意义不同。“变量名++”和“变量名--”:先取值,后做运算“++变量名”和“--变量名”:先做运算,后取值自增(++)和自减运算(--)举例N=I++变量N010变量I变量N??变量IN=++I变量N010变量I变量N??变量I11101111练习已知i=5j=i++;j=?i=?
j=++i;j=?i=?5666关于自增和自减运算符的说明:自增和自减运算符只能用于整型变量。自增和自减运算符的结合方向是“自右向左”。例:
-i++等价于-(i++);*i++等价于*(i++);++,--运算符举例:设x=5,问:下面各表达式的值?y=x++;y=(x++)+(x++);y=(x++)+(++x);y=(++x)+(x++);y=(++x)+(++x);++,--运算符举例:设x=5,问:下面各表达式的值?y=(x++)+(x++)+(x++);y=(x++)+(++x)+(x++);y=(++x)+(x++)+(x++);y=(++x)+(++x)+(x++);y=(++x)+(++x)+(++x);2.赋值运算符和赋值表达式赋值:在计算机程序中,要完成这样一种操作→将一个表达式的计算结果送到一个变量当中。赋值运算符:=赋值表达式:变量名=表达式赋值运算符的结合性:自右向左即:
a=b=c相当于a=(b=c)赋值运算符简单的赋值运算符复合的赋值运算符=+=-=*=%=/=简单的赋值运算符——=
代表一种操作。执行结果:将“
=”右侧的表达式的值送入
“
=”
的左侧的变量中。例:a=x+y;执行过程:计算表达式“x+y”的值;将计算结果送入变量名“a”中结果:x,y值不变;a的值变为x+y的值赋值运算符+=执行结果:将“=”左侧的变量与“=”右侧的表达式的值的和送入“=”左侧的变量中。例:a+=x+y;执行过程:计算表达式“a+(x+y)”的值;将计算结果送入变量名“a”中;结果:x,y值不变;a的值变为a+(x+y)的值;赋值运算符-=执行结果:将“=”左侧的变量与“=”右侧的表达式的值的差送入“=”左侧的变量中。例:a-=x+y;执行过程:计算表达式“a-(x+y)”的值;将计算结果送入变量名“a”中;结果:x,y值不变;a的值变为a-(x+y)的值;赋值运算符*=执行结果:将“=”左侧的变量与“=”右侧的表达式的值的积送入“=”左侧的变量中。例:a*=x+y;执行过程:计算表达式“a*(x+y)”的值;将计算结果送入变量名“a”中;结果:x,y值不变;a的值变为a*(x+y)的值;赋值运算符/=执行结果:将“=”左侧的变量与“=”右侧的表达式的值的商送入“=”左侧的变量中。例:a/=x+y;执行过程:计算表达式“a/(x+y)”的值;将计算结果送入变量名“a”中;结果:x,y值不变;a的值变为a/(x+y)的值;赋值运算符%=执行结果:将“=”左侧的变量除以“=”右侧的表达式的值的余数送入“=”左侧的变量中。例:a%=x+y;执行过程:计算表达式“a%(x+y)”的值;将计算结果送入变量名“a”中;结果:x,y值不变;a的值变为a%(x+y)的值;简单的赋值举例:就是把一个表达式的值赋给一个变量。如下图示:10变量ii=5;?变量i10变量ii=3+6;?变量i59赋值表达式由赋值运算符将一个变量和一个表达式连接起来的式子称为赋值表达式。格式:
〈变量〉〈赋值运算符〉〈表达式〉对赋值表达式求解的过程:将赋值运算符右侧的表达式的值赋给左侧的变量。赋值运算符的结合性:结合性:从右向左例:a=b=c=8
等价于a=(b=(c=8))即:第一步:c=8第二步:b=8第三步:a=8
不同类型数据的混合运算C语言允许数据值从一种类型转换成另一种类型在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算。转换的规则按图所示。int←char,short高低doublelongunsignedfloat强制类型转换强制类型转换运算符,将一个类型的变量值强制转换为另一种类型。
一般格式为:
(类型标识符)表达式
例:
k=(int)((int)x+(float)i)(float)(x=85)对一个变量进行强制转换后,得到一个新的类型的数据,但原来变量的类型不变。例:若x原为实型变量且值为2.6,在执行
i=(int)x
后得到一个整数2,并把它赋给整型变量i,但x仍为实型,值为2.6。写出下面算术表达式的值:x+a%3*(int)(x+y)%2/4,设x=2.5,a=10,y=4.7。x=2.5;a=10;y=4.7;a%3→10%3→1
(int)(x+y)
→(int)7.2→7
[a%3]*[(int)(x+y)]
→1*7→7{[a%3]*[(int)(x+y)]}%2
→7%2→1{{[a%3]*[(int)(x+y)]}%2}/4
→1/4→0x+{{[a%3]*[(int)(x+y)]}%2}/4
→2.5+0
最后结果:2.5练习:计算下列表达式的值(float)(a+b)/2+(int)x%(int)y设a=2,b=3,x=3.5,y=2.5二、关系运算符和关系表达式关系表达式:用关系运算符将两个表达式(可以是算术表达式、关系表达式、赋值表达式或逻辑表达式)连接起来的式子,称为关系表达式。关系运算符<、<=、>、>===、!=高低优先级
关系表达式的值为逻辑值“真”或“假”;
以1代表“真”,以0代表“假”。例如:关系表达式“8==4”的值为“假”;
表达式的值为:关系表达式“5>0”的值为“真”;
表达式的值为:结合性:从左向右01三、逻辑运算符和逻辑表达式逻辑表达式:是由逻辑运算符和运算量所构成的式子,其中运算量主要有关系表达式和逻辑量两种,也可以是C中任意合法表达式。逻辑运算符:||(逻辑或)&&(逻辑与)!(逻辑非)高低优先级逻辑运算的真值表ab!a!ba&&ba||b真真假假真真真假假真假真假真真假假真假假真真假假注意:1、C语言编译系统:
以数值1代表“真”,以0代表“假”;2、若逻辑运算符左右连接的不是逻辑量或关系表达式时,C语言编译系统以其值非0代表“真”,以0代表“假”。例如:
若x=10,则!x的值为_______。
若a=3,b=2,则a&&b的值为____。
5&&0||8的值为___________。011
逻辑运算符的特点在逻辑表达式的求解中并不是所有的运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行下一个运算符。例如:
1、a&&b&&c:只有a的值为逻辑真时,才计算b的值;也只有a与b的值都为逻辑真时,才计算c的值;
2、a||b||c:只有a的值为逻辑假时,才计算b的值;也只有a与b的值都为逻辑假时,才计算c的值;
举例:1、初始状态a=1;b=2;c=3;执行
a++&&++b&&c--之后,a、b、c的值分别是多少?2、初始状态a=1;b=2;c=3;执行
--a&&++b&&c--之后,a、b、c的值分别是多少?3、初始状态a=0;b=2;c=3;执行
a++&&++b&&c--之后,a、b、c的值分别是多少?
举例:1、初始状态a=1;b=2;c=3;执行
a++||++b||c--之后,a、b、c的值分别是多少?2、初始状态a=0;b=2;c=3;执行
a++&&++b&&c--之后,a、b、c的值分别是多少?3、初始状态a=1;b=2;c=3;执行
++a||++b||c--之后,a、b、c的值分别是多少?条件运算符和条件表达式条件运算符:?:条件表达式的形式为:
表达式1?表达式2:表达式3条件表达式的执行过程:先计算表达式1,若其值为非零,则结果为表达式2的值,否则就是表达式3的值。例:表达式
y=a>b?a:b的执行结果是什么?逗号运算符:逗号表达式的形式为:
表达式1,表达式2,表达式3逗号表达式的执行过程:先计算表达式1,然后计算表达式2,表达式3;整个表达式的结果为:最后一个表达式的值。例:y=(a=22,a+12,a+30);表达式的值为:,52!(非)算术运算符关系运算符&&||赋值运算符,
各种运算符优先级:例如:x<y&&m<n
等效于(x<y)&&(m<n)a==b||c==d
等效于(a==b)||(c==d)!a&&b>c
等效于(!a)&&(b>c)高低要求:深刻理解在计算机中各类型数据在内存中的存储形式、取值范围和能够对它进行的操作;深刻理解各基本类型作了short、long、unsigned扩展之后与原类型之间的区别;深刻理解各种整型常量的形式,字符常量、转义字符和符号常量的意义和作用。熟练掌握每一种变量的定义格式;深刻理解每一个算术运算符的功能、使用格式、计算结果,尤其是/、%、++、--;深刻理解赋值运算符(=)的意义、注意与数学中的等号相区别;复合赋值运算符的执行过程和执行结果。练习一、选择题:以下叙述中正确的是:
(a)C程序由主函数组成
(b)C程序由函数组成
(c)C程序由函数和过程组成
(d)C程序由子函数组成√一、选择题:以下符号中不能用作用户标识符的是:
(a)_256、(b)void(c)scanf、(d)Struct√解答:c语言中的标识符分为三类:关键字、预定义标识符和用户标识符;规定:关键字不允许用作标识符一、选择题:以下不能正确表示算式———
的是:
(a)(a*b)/c*d(b)a*b/(c*d)(c)a/c*b/d(d)a*b/c/d√解答:c语言中表达式的计算是按算符的优先级来进行的。abcd一、选择题:以下的变量定义中合法的是:
(a)float3_four=3.4;(b)int_abc_=22;(c)doublea=1+4e2.0;(d)shortdo=15;√一、选择题:C语言中运算对象必须是整型的运算符是:
(a)%=(b)/(c)=(d)**√一、选择题:若有intk=11;则表达式(k++*1/3)的值是:
(a)12(b)3(c)5(d)4√二、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工作计划大全
- 客服部工作计划
- 中国全自动票据分切机项目投资可行性研究报告
- 交通台实习报告10篇
- 应届生会计求职信集锦十篇
- 三年级教师述职报告6篇
- 小学教师竞岗演讲稿5篇
- 2022万圣节作文(十五篇大全)
- 参观实习工作报告汇编9篇
- 小额贷款公司各项管理制度
- 全国职业学校教师说课大赛一等奖电工技能与实训《触电急救方法说课》说课课件
- 小儿流感疾病演示课件
- 奔驰调研报告swot
- 中国教育史(第四版)全套教学课件
- 2024届广东省汕头市高一数学第一学期期末达标检测试题含解析
- 采购设备检验验收单
- 福建省泉州实验中学2024届物理高一第一学期期末质量检测试题含解析
- 公司领导班子设置方案
- 专业展览展示设计搭建公司
- 为铜制剂正名-冠菌铜® 产品课件-9-7
- 具有磁场保鲜装置的制冷设备的制作方法
评论
0/150
提交评论