版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章运算符与表达式3.1C语言运算符概述3.2算术运算符与表达式3.3自增自减运算符与表达式3.4赋值运算符与表达式3.5关系运算符与表达式3.6条件运算符与表达式3.7逻辑运算符与表达式3.8逗号运算符与表达式3.9案例学习
3.1C语言运算符概述
C语言支持丰富的运算符。运算符是一种符号,它告诉计算机执行某些数学或逻辑操作。在程序中,运算符用于对数据和变量的操作。C语言的运算符有以下几类:
(1)算术运算符。
(2)关系运算符。
(3)逻辑运算符。
(4)位运算符。
(5)赋值运算符。
(6)条件运算符。
(7)逗号运算符。
(8)指针运算符。
(9)求字节运算符。
(10)强制类型转换运算符。
(11)分量运算符。
(12)下标运算符。
(13)其他。
3.2算术运算符与表达式
3.2.1算术运算符
C语言提供的算术运算符如表3.1所示。3.2.2算术表达式
1.整数算术运算
参加算术运算的两个操作数都是整数,那么这个表达式就称为整数表达式,该操作称为整数算术运算,其结果总是一个整数值。
例如,假设变量a=14,b=4,则
a-b=10,a+b=18,a*b=56,a/b=3(小数部分被截除),
a%b=2(余数)
对于取模运算,结果的符号总与第一个操作数(被除数)的符号相同:
-14%3=-2,-14%-3=-2,14%-3=2
2.实数算术运算
参加算术运算的两个操作数都是实数,那么这个表达式就称为实数表达式,该操作称为实数算术运算,其结果总是一个实数值。
例如:
6.0/7.0=0.857143
1.0/3.0=0.333333
3.混合算术运算
如果表达式中既有实数,又有整数,则称此表达式为混合算术表达式,其结果是一个实数。
例如,15/10.0=1.5,而15/10=1。3.2.3运算符的优先级与结合性
1.优先级
2.结合性
3.小括号的用途
3.2.4表达式中的类型转换
1.隐式类型转换
在计算过程中,如果操作数是不同的类型,那么在计算进行之前,“较低”类型会自动转换为“较高”类型。这样,结果也就是较高的类型。
各种类型转换的层次结构如图3.1所示。图3.1类型转换的层次结构图3.2隐式类型转换过程
2.显式类型转换
显式类型转换运算符的一般形式:
(类型名)(表达式)
例如:
(double)a /*将a转换成double类型*/
(int)(x+y) /*将x+y的值转换成整型*/
(float)(5%3) /*将5%3的值转换成float型*/
注意:要转换的表达式应该用括号括起来,如果写成
(int)x+y
则是将x转换成整型,然后与y相加。
3.3自增自减运算符与表达式
自增运算符:++
自减运算符:--
自增自减运算符都是单目运算符,需要使用变量作为它们的操作数,其表达式格式如下:
++变量名;--变量名;变量名++;变量名--
其中,运算符在变量名前面,称为前缀;运算符在变量名后面,称为后缀。
【例3-1】自增自减运算符示例。图3.3例3-1运行结果
3.4赋值运算符与表达式
3.4.1赋值运算符与赋值表达式
1.赋值运算符
符号“=”就是赋值运算符,它是将一个数赋给一个变量。例如:a=5的作用就是执行一次赋值操作,把常量5赋给变量a。也可以用“=”将一个表达式的值赋给一个变量,例如,设a=3,那么b=a+2就是把5赋给变量b,系统首先计算表达式a+2的值,再将表达式的结果赋给变量b。
2.赋值表达式
由赋值运算符将一个变量和一个表达式连接起来的式子就称为赋值表达式,其一般形式如下:
<变量>=<表达式>
它的作用是将赋值运算符“=”右侧的表达式的值赋给左侧的变量。
3.赋值运算时的类型转换
(1)将实型数据赋给整型变量时,需要舍弃该实数的小数部分。例如:inta=1.23 ;,变量a得到的值为1,小数部分被舍弃。
(2)将整型数据赋给单、双精度变量时,数值不变,但是将以浮点数的形式存储到变量之中。例如:floatb=10; ,则需要将10转换为10.00000,再存储到b中。
(3)以上类型转换是由系统自动进行的。
【例3-2】赋值运算符示例。图3.4例3-2运行结果3.4.2复合赋值运算符
在赋值运算符“=”之前加上其它运算符,可以构成复合赋值运算符。C语言提供的部分复合赋值运算符见表3.2。
【例3-3】复合赋值运算符。图3.5例3-3运行结果
3.5关系运算符与表达式
3.5.1关系运算符
C语言的关系运算符见表3.3。3.5.2关系表达式
用关系运算符连接起来的两个表达式称为关系表达式。其中,关系运算符两侧的表达式可以是算术表达式、逻辑表达式、赋值表达式和字符表达式等。
例如,下面的关系表达式都是合法的:
a>b,a+b>c-d,(a=3)<=(b=5),'a'>='b',(a>b)==(b>c)
【例3-4】关系运算符。图3.6例3-4运行结果
3.6条件运算符与表达式
条件运算符是 ?:是一个三目运算符,要求有三个操作数。条件表达式形式如下:
表达式1?表达式2:表达式3
其执行过程如图3.7所示。图3.7条件表达式执行过程【例3-5】条件运算符:计算a+|b|。图3.8例3-5运行结果
3.7逻辑运算符与表达式
3.7.1逻辑运算符
C语言提供了三种逻辑运算符:
(1) &&,逻辑与。
(2) ||,逻辑或。
(3) !,逻辑非。
表3.4是逻辑运算真值表。逻辑运算符与其它运算符的优先关系由高到低为:
!→算术运算→关系运算→&&→||→赋值运算
C语言在给出逻辑结果的时候,以数值1代表“真”,以数值0代表“假”;但在判断一个量是否为“真”时,以0代表“假”,非0代表“真”。故C语言逻辑运算的真值表可改为表3.5。
【例3-6】逻辑运算符。图3.9例3-6运行结果3.7.2逻辑表达式
用逻辑运算符将表达式连接起来,构成的表达式称为逻辑表达式,如例3-6中的表达式(a>b)&&(x>y)、(a>b)||(x>y)、!a等。
判断某一年份year是否为闰年的逻辑表达式为:
(year%4==0)&&(year%100!=0)||(year%400==0)
【例3-7】逻辑表达式的运用:大写字母转换为小写字母。图3.10例3-7两次运行结果
【例3-8】写出描述点A(x,y)落在图3.11中阴影部分(不压线)的C语言逻辑表达式。
解答:
x>-2&&x<2&&y>-2&&y<2&&x*x+y*y>1
当上述表达式为1时,满足题目要求。图3.11例3-8图示
3.8逗号运算符与表达式
逗号运算符的作用是将两个表达式连接起来。一般形式如下:
表达式1,表达式2
它的求解过程为:先求解表达式1,再求解表达式2,整个表达式的值是表达式2的值。例如,表达式a=3,b=4的值为后面的表达式b=4的值,即为4。
例如:
value=(x=10,y=5,x+y);
首先给x赋值10,然后给y赋值5,最后将x+y的值15赋给value。逗号运算符在所有运算符中优先级别最低。逗号表达式可以扩展为:表达式1,表达式2,表达式3,…,表达式n。逗号表达式经常用于将多个表达式串联起来,其目的是得到各个表达式的值,而非得到整个表达式的值。例如:
a=3,b=4,c=5
就是为了在一个表达式中完成对3个变量的赋值。
3.9案例学习
【例3-9】读取一个3位数字的整数,显示这3个数字之和(使用/和%运算符)。图3.12例3-9运行结果
【例3-10】销售人员的工资。
某电器销售公司销售人员的薪资由
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论