内容正文:
YCF
(中职)计算机程序设计(C语言)第二章第3节教学课件工信版
1
第2章 数据类型、运算符
及表达式
第3节 运算符与表达式
C语言中提供了很丰富的运算符,可归类成以下几类:
(1)算术运算符: (+、-、*、/、%、++、- -)
(2)关系运算符: (>、<、>=、<=、==、!=)
(3)逻辑运算符: (&&、||、!)
(4)赋值运算符: (=)
(5)条件运算符: (?:)
(6)逗号运算符: (,)
(7)求字节数运算符: (sizeof)
(8)指针运算符: (*和&)
(9)位运算符: (<<、>>、~、|、^、&)
(10)其它:
强制类型转换运算符、分量运算符、下标运算符、函数调用运算符等。
*
一、算术运算符与表达式
+(加法运算符) 如:5+6=11
-(减法运算符) 如:10-4=6
*(乘法运算符) 如:2*(-3)=-6
/ (除法运算符) 如:8/2=4
%(模除运算符) 如:8%2=0
想一想:如果是(-8)%3,8%(-3),(-8)%(-3)的结果又是多少?
++(自增运算符) 有两种形式:++i 和i++
- -(自减运算符) 有两种形式:- -i 和i- -
【例2.7】
#include<stdio.h>
main()
{
int i=3,j=4,m,n;
m=++i;
n=j--;
printf("i=%d
j=%d
m=%d
n=%d
",i,j,m,n);
}
程序运行结果:
i=4
j=3
m=4
n=4
利用算术运算符可以写出一些数学表达式:
写成标准的C语言表达式是:
(a-b)/(a+b)
a-b
a+b
2x2+4y
写成标准的C语言表达式是:
2*x*x+4*y
或者利用数学函数pow,写成:
2* pow(x,2)+4*y
二、关系运算符与表达式
>(大于运算符) 如:5〉3 结果为1
< (小于运算符) 如:5<3 结果为0
>=(大于或等于运算符) 如:3>=3 结果为1
<=(小于或等于运算符) 如:3<=3 结果为0
==(等于运算符) 如:3==2 结果为0
!=(不等于运算符) 如:3!=2 结果为1
【例2.8】
#include<stdio.h>
main()
{
int a,b,c,d,e;
a=2;
b=-3;
c=10;
d=(a+2)<b;
e=b>=(7-c);
printf("%d,%d
",d,e);
}
程序运行结果:
0,1
三、逻辑运算符与表达式
&&(逻辑与运算符)
|| (逻辑或运算符)
!(逻辑非运算符)
逻辑运算的真值表
【例2.9】
#include<stdio.h>
main()
{
int x=12,y=-8,z=5;
printf("%d
",x>=y&&z-5);
printf("%d
",x*2-16||y);
printf("%d
",!z/2&&(y+2));
}
程序运行结果:
0
1
0
注意:&&(逻辑与)与||(逻辑或)又称为短路运算符。&&的左边值是0,则右边被短路,不做,逻辑与的值是0;||的左边值是1,则右边也被短路,不做,逻辑或的值是1。
【例2.10】
#include<stdio.h>
main()
{int i,j,k,p;
i=j=k=-1;
p=++i&&j--&&k++;
printf("%d
",p);
printf("%d,%d,%d
",i,j,k);
i=j=k=3;
p=i++&&j--||--k;
printf("%d
",p);
printf("%d,%d,%d
",i,j,k);}
程序运行结果:
0
0,-1,-1
1
4,2,3
四、 赋值运算符与表达式
1、 赋值运算符 “=”
作用是将赋值号右边的值或表达式的值赋值给左边的变量。
例如:x=5;
x=y+2;
x=(z=4);相当于x=z=4;
2、复合运算符(复合的赋值运算符)
在C语言中,在赋值运算符之前加上算术运算符或位运算符构成复合的赋值运算符。共有10种