预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共30页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

§2.2基本运算一.赋值运算 赋值运算符:= 赋值表达式:变量=表达式 功能:计算右边表达式的值,再将其赋给左边的 变量。 说明: ①=是赋值号,不是等号.如a=a+1 ②左边变量的值也是整个赋值表达式的值 如:a=3+2,则变量a的值为5, 赋值表达式a=3+2的值也为5. ③右边的表达式可以是赋值表达式 如:b=(a=2),d=3+(c=9) ④优先级别:低于算术运算 结合方向:从右到左 如:a=3+2a=(3+2) b=a=2b=(a=2) 变量的初始化(定义变量时为其提供数据): 1.对所有变量初始化 floatx=3.2,y=5.6,z=7.9; 2.对部分变量初始化 inta,b=8,c; 注意: ①若被定义的多个变量需要初始化为相同的值, 则应写成:floatx=3.2,y=3.2,z=3.2; 而不能写成:floatx=y=z=3.2; ②C对变量初始化的处理在编译时完成.即在编译阶段为变量分配存储单元的同时,将初值存放于分配的存储单元中. ③若在定义变量后,再为变量赋值, 如:floatx,y; x=3.2;y=5.6; 则编译时只分配存储单元,程序运行时才将其值存放于分配的存储单元中.二.算术运算 (一)算术运算 1.算术运算符:+-*/%(求模) 说明: ①关于/:二整数相除,结果为整数(舍去小数部分);若参加运算的两个数中至少有一个实数,则结果为实数. 如:5/2结果为2 -5/2结果为-2(向零取整) 5.0/2,5/2.0,5.0/2.0结果均为2.5 ②关于%:%为求模运算符,C规定参加求模运算的两个数都必须是整数. 如:7%4结果为 1%5结果为 -5%3结果为 5%-3结果为 5.6%3,5%3.2,5.6%3.2均无意义 ③优先级别:*/%(同级)优于+-(同级) 结合方向:从左到右2.算术表达式 用算术运算符和括号连接操作数所生成的符合 C规定的式子,称为算术表达式. 如:a*b/c-1.5+’a’%2 说明: ①操作数包括:常量,变量,函数,表达式等 ②算术表达式也可以是单个的常量,变量,函数等 如:5,a,sin(3.5)exp(x) ③算术表达式的值可以赋给变量 如:sum=a+by=a%b*3-x3.自动类型转换(包括转换,赋值转换和输出转换高教P40) 运算转换规则: 高doublefloat long unsigned 底intchar,short 如:设inti;floatf;doubled;longe; 则10+’a’+i*f–d/e的值为double型. 4.强制类型转换(高教P42) 格式:(类型标识符)(表达式) 功能:将表达式的类型强制转换为类型标识符指 定的类型.其优先级别高于算术运算. 如:floatx=3.14,y=5.68;intk; k=(int)(x+y);则k的值为8. 又如:main() {floatx;doubley=132.456789; x=(float)y;printf(“x=%f,y=%lf”,x,y); } 输出结果为:x=132.457000,y=132.456789说明: ①类型标识符必须括起来,表达式也要括起来: 如:(int)(x+y)不能写成(int)x+y 但:(int)(x)可以写成(int)x ②强制类型转换时,产生一个中间变量(如(int)x),原变量(如x)的类型与值均保持不变. ③实型转换为整型时,去掉小数部分;double转换为float时,去掉多余的有效位,但要四舍五入. ④强制类型转换用于自动转换达不到目的的情况.如%运算,函数调用的参数类型匹配等. 课堂练习:(新清华P66ex3.9)(二)复合赋值运算(自反算术赋值运算,高教P30) 运算符:+=-=*=/=%= 功能: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 优先级别:同赋值运算 结合方向:从右到左 例如:c=b*=a+2b=b*(a+2)再c=b 课堂练习:(新清华P66ex3.12)(三)自增自减运算(高教P31) 运算符:++-- 功能: ++i,--i:在使用变量i之前使i的值自动加1或减1. i++,i--:在使用变量i之后使i的值自动加1或减1. 例1main() {inti;i=3; printf(“%d,”,++i); printf(“%d,”,i++); printf(“%d\n”,i); } 4,4,5注意: ①自增自减运算只能用于整型变量,不能用于常量和表达式 如:5++,++(a+b),(-i)++等都是错误的 ②++和—的结合方向:从右到左 如:-i++-(i++)而不等价于(-i)++ 若i=3;printf(“%d”,-i++); 则先输出-3,