复习 3。何谓字符常量和字符串常量?4。编程,输入任意半径r,求圆的周长l和面积s。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

例: x+=15 x=x+15
a*=b-6 a=a*(b-6)不要看成a=a*b-6 优点:使程序简练,提高编译效率。aa==aa++((aa=-=aa-*a*a)a) 练习:a=8,b=5 ,求: (1) a%=2+ba=1a+(a=8-8*8)
(2) a-=b*2-4 2 (3) a+=a-=a*a;见P64 ,a=-112
void main() { int a=300, b=200;
long c; c=a*b; printf(”%ld\n”,c); } 请思考:运行结果是什么? 运行:-5536
出错原因:虽然c定义为长整型,计算 a*b时,已超出范围(32767)溢出。
解决方法:
将第4句改为c=(long)a*b,先将a 强制转为长整型,a*b就为长整型。
如:2+5,3*4 表达式的值是12。
如:a=3*5,a*4,表达式的值是?
逗号运算符的级别最低,应看成 (a=3*5),a*4,求解后a为15,表达式的值为? 逗号表达式的扩展形式: 表达式1,表达式2,表达式3. . . . . . 表达式n 如:a=2,b=3+a,c=3*a+b 求解后a=?b=?,c=? 整个表达式的值为? 11
ቤተ መጻሕፍቲ ባይዱ
三、*自增与自减运算
自增:i++ 先使用i,再使i=i+1, ++i 先使i=i+1,再使用i.
自减:i-- 先使用i,再使i=i-1, --i 先使i=i-1,再使用i.
例:y=5 x=y++, 运算后,x=5 ,y=6 x=++y, 运算后,x=6 , y=6
y在前表示 x=y, y在后表示 x=y+1
说明:
(1)“=”号是赋值号,不是数学中等号。 (2)若“=”号两边类型不一致,在赋值时,
要进行类型转换(以左为准)。 如i为整型:i=14.6--值为14,舍去小数。 再如:i为单精度数(float), i=38--值为38.00000 (七位) (3)赋值表达式的值就是被赋的变量值。 x=5, 5是赋值表达式的值,也是x的值。
强制转换的一般形式:
(类型名)(表达式)
如:(double)a ,将a的值强制转换为双 精度型,a不要扩。
(int)(x+y) 将x+y的值强制转换为 整型. 思考:(x+y)若不扩,是否一样?
不一样, 先将x转换为整形,再与y加, 结果取精度高的.
3.8 算术运算符和算术表达式
一、*运算符和表达式
转换规则:
低类型转为高类型,结果为高类型。
(1)float 必转为double.
必转
(2)char和short必转为int. Float double
(3)纵向箭头不是必转, 只表示方向。
高 long
unsigned
Char,short int 低 必转
二、强制转换
例1: #include <stdio.h>
说明:
(1)自增和自减运算符(++/- -)只能用于变 量,不能用于常量和表达式。 如:3++, 3=3+1? ++(x+y)或(a+b)- -是错的,x+y后再加 1其值无处可放。
(2)++和- -的结合方向是:“从右到左” 如:-i++ ,即看成 –(i++)
i=5, j=-i++ --> j=-(i++) , j= -5 ,i= 6 若当成(-i)++是错的,为什么?
练习 写出下列程序的运行结果。
#include <stdio.h>
思考:如 a=b=8 相当于b为?a为?
8,8
二、*复合的赋值运算符
在“=”号前加其他运算符,构成复合运算符。
+=、-=、*=、/=、%=,还有其他一些
a+=b 相当于 a=a+b
a+= b
a-=b 相当于a=a-b a*=b --> a=a*b
a%=b 相当于a=a%b a/=b --> a=a/b a=a + b
复习 1。整型变量有哪六种?
int (2B) , short, long(4B), Unsigned, Unsigned short , Unsigned long
2。浮点型变量分几类?
1)单精度型:float,32位 , 6~7位 2)双精度型: double,64位 ,15~16位 3)长双精度型:long double 128位, 18~19位
因-i是表达式,非变量。
(3)运算符有多个字符时, 系统尽可能多的从左到右将若 干字符组成一个运算符.
如:a+++b应结合为(a++)+b 而不是a+(++b)因从左a开始尽可能 多的将++组成一个运算符
3.10 逗号运算符和逗号表达式
一般形式:表达式1,表达式2
求解过程:先求解表达式1,再求解表达式2, 整个表达式的值是表达式2的值。
3。何谓字符常量和字符串常量? 4。编程,输入任意半径r,求圆的周长l 和面积s。
3.7 各类型数据的混合运算
C语言中三种基本数据类型: 整型、浮点型(实型)和字符型。
不同类型数据可混合运算,运算 时要进行类型转换。
即不同类型的数据要先转换成同 类型再运算。
一、自动(隐示)转换 是由系统自动按规则进行的转换。
1。基本算术运算符
+ —加 - —减 * —乘 /—除 % —模(取余)
说明:(1)取余(%)运算只适用于整型,9%4 结
果为1,若非整数会出错(9.7%4)。如何解决?
应先强制转换为整数:(int)9.7%4 x%3==0 思考:求能被3整除的x的值,条件如何写?
(2)两整数相除结果为整数:8/3 结果为2(舍去 小数),截尾取整。
-32
b当成98(按其ascⅡ值输入) 优先级:*、/、%的优先级高于+、- , 结合性: 同级从左至右执行(先左后右)
3.9 赋值运算符与赋值表达式
一、*赋值表达式:
形式:<变量>=<表达式>
x
x
赋值运算符
5
6
功能:将表达式的值赋给变量。 x+1
如:x=5; x=x+1; a=(b+c)*3; a1=‘k’;
再如: (int)8.6/3,先截尾取整为8/3。
(3)算术运算的数中有一个为实数,结果为 double型。
2。算术表达式与运算符的优先级
用算术运算符和括号将运算对 象(操作数)连接起来,符合C语言 的规则的式子叫算术表达式。 运算对象:常量、变量、函数等。 如:int x=8, y=14; 问:x*x+y/5-’b’ ?
相关文档
最新文档