内容正文:
第2章 C语言基础
2.1 C语言概述
2.2 C语言语法基础
2.4 C语言运算符与表达式
2.3 C语言的数据类型
大学C/C++语言程序设计程序设计 第2章 C语言基础
2.4 C语言运算符和表达式
运
算
符
算术运算符:+ - * / % ++ --
赋值运算符:= 及其扩展
关系运算符:< <= = = > >= !=
逻辑运算符:! && ||
位运算符: & | ~ << >>
条件运算符:?
逗号运算符:,
强制类型转换:(类型)
C语言的运算符按操作功能,可分为以下几类:
学习运算符应注意:
运算符功能
要求运算量个数
要求运算量类型
运算符优先级别
结合方向
结果的类型
大学C/C++语言程序设计程序设计 第2章 C语言基础
+(加):3+4、 +3
-(减):3-5、 -5
*(乘):3*5
/(除):5/2的值为2;
%(取余):5%3的值为2 -5%3的值为-2
5%(-3)的值为2 -5%(-3)的值为-2
2.4.1 算术运算符和算术表达式
1.运算符
50.823 % 9
注意
两个整数相除,结果只取商的整数部分;只有两个运算数至少有一个为实数,结果才为实数。
5.0/2的值为2.5;
%:运算数必须为整型或字符型。
大学C/C++语言程序设计程序设计 第2章 C语言基础
如已定义float型的变量a,b,c,则表达式(a+b+c)/2 与1/2*(a+b+c)等效吗?
思考:
大学C/C++语言程序设计程序设计 第2章 C语言基础
10 + 20 (a * 2) / b
(x + r) * 8 - (a + b) / 10
sin(x) + sin(y) (x、y为弧度值)
2.算术表达式
用算术运算符和括号将操作数连接起来的式子。
只有小括号,没有中括号;
如果用单引号或双引号括起来了,就不是运算符,也不是表达式了:
' + ' 、 ' - ' 是字符型常量
"5+2" 不是表达式,是字符串常量
注意
优先级:* / %优先级相同,高于+ -。从左往右算。
大学C/C++语言程序设计程序设计 第2章 C语言基础
自动类型转换
所有表达式都有一个值及类型。
特殊:所有浮点数必然都转换为double再运算(即使两个float型量的运算也都先转换为double)
表达式的值:就是表达式的运算结果。
表达式的类型:
两运算数类型一致时,与两个运算量的类型一致。
两运算数类型不一致时,较低类型运算量先被自动转换为高类型运算得到。
double float
long
unsigned
int char,short
大学C/C++语言程序设计程序设计 第2章 C语言基础
a*b/c-1.5+ ' a ' +fabs(-5)
12.0
5
4.0
2.5
99.5
104.5(double)
/3
- 1.5
+ 97(int)
+ 5
例:已知float a=2.0; int b=6,c=3;
求解: a*b/c-1.5+'a'+fabs(-5)=?
大学C/C++语言程序设计程序设计 第2章 C语言基础
算术运算小结
整数整除商,小数门外拦。求余运算严,整符才能算。类型不怕乱,结果向高看。
某粮库周一存进玉米100吨,周二又存入20吨,周三调出库存的2/3,周四又调进库存的3倍玉米,求该粮库周四的库存量?(表达式)
课堂练习
大学C/C++语言程序设计程序设计 第2章 C语言基础
课堂练习
设计程序,输入一个三位正整数,分别取出该三位数各个数位上的数字,并输出。
#include <stdio.h>
int main()
{ int n,ge, shi, bai;
scanf("%d",&n);
ge = n%10;
shi = n/10%10;
bai = n/100;
printf("%d,%d,%d
",ge,shi,bai);
}
大学C/C++语言程序设计程序设计 第2章 C语言基础
作用:使变量值加1或减1
种类: ++i, --i (先执行i+1