资源描述:
《高级语言c编程基础.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、高级语言程序设计C编程基础上海理工大学计算机基础教研室2014年3月例main(){inta,b,c;floatave;printf(“pleaseinputthreenumbers.”);scanf(“%d%d%d”,&a,&b,&c);ave=(a+b+c)/3;printf("total=%7.2f",ave);}回顾与思考课堂作业分析程序运行结果:main(){inta=5,b=7;floatpi=3.1415926;charc='A';printf(“%d%d”,a,b);printf(“%3d%3d”,a,
2、b);printf(“%f”,pi);printf(“%8.2f”,pi);printf(“%c,%d,%o,%x”,c,c,c,c);}本次课中需要解决的问题不同类型数据间的转换运算符和表达式语句概述数据的输入与输出隐式转换什么情况下发生运算转换------不同类型数据混合运算时赋值转换------把一个值赋给与其类型不同的变量时输出转换------输出时转换成指定的输出格式函数调用转换------实参与形参类型不一致时转换运算转换规则:不同类型数据运算时先自动转换成同一类型不同类型数据间的转换doubleflo
3、atlongunsignedintchar,short低高说明:必定转换运算对象类型不同时转换charch;inti;floatf;doubled;ch/i+f*d-(f+i)intintdoubledoubledoubledoubledoubledouble例110+‘a’+i*f-d/l例2inti;floatf;doubled;longl;doubledoubledoubledoubleintintdoubledouble一般形式:(类型名)(表达式)例:(int)(x+y)(int)x+y(double)(3/2)(i
4、nt)3.6说明:强制转换得到所需类型的中间变量,原变量类型不变显式转换(强制转换)例main(){floatx;inti;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);}结果:x=3.600000,i=3较高类型向较低类型转换时可能发生精度损失问题C运算符算术运算符:(+-*/%++--)关系运算符:(<<===>>=!=)逻辑运算符:((!&&
5、
6、)位运算符:(<<>>~
7、^&)赋值运算符:(=及其扩展)条件运算符:(?:)逗号运算符:(,)指针运算符:(*&)求字节数:(sizeof)强制
8、类型转换:(类型)分量运算符:(.->)下标运算符:([])其它:(()-)运算符和表达式运算符功能与运算量关系要求运算量个数要求运算量类型运算符优先级别结合方向结果的类型学习运算符应注意基本算术运算符:+-*/%结合方向:从左向右优先级:----->*/%----->+-(2)(3)(4)说明:“-”可为单目运算符时,右结合性两整数相除,结果为整数%要求两侧均为整型数据例5/2=-5/2.0=例5%2=-5%2=1%10=5%1=5.5%2算术运算符和表达式1-110()2-2.5例j+++k;(j++)+k;作用:使变量
9、值加1或减1种类:前置++i,--i(先执行i+1或i-1,再使用i值)后置i++,i--(先使用i值,再执行i+1或i-1)说明:++--不能用于常量和表达式,如5++,(a+b)++++--结合方向:自右向左优先级:-++-------->*/%----->+-(2)(3)(4)例-i++-(i++)i=3;printf(“%d”,-i++);//-3自增、自减运算符++--简单赋值运算符符号:=格式:变量标识符=表达式作用:将一个数据(常量或表达式)赋给一个变量复合赋值运算符种类:+=-=*=/=%=《=》=&=^=
10、
11、=含义:exp1op=exp2exp1=exp1opexp2x*=y+8x=x*(y+8)x%=3x=x%3赋值运算符和表达式例a=3;d=func();c=d+2;结合方向:自右向左优先级:14左侧必须是变量,不能是常量或表达式赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型例3=x-2*y;a+b=3;例floatf;inti;i=10;f=i;则f=10.0例inti;i=2.56;//结果i=2;说明:例:a=b=c=5a=(b=5)a=5+(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2)
12、//表达式值为5,a,b,c值为5//b=5;a=5//表达式值11,c=6,a=11//表达式值10,a=10,b=4,c=6//表达式值5,a=5,b=10,c=2赋值表达式的值与变量值相等,且可嵌套形式:表达式1,表达式2,……表达式n结合性:从左向右优先级:15逗号表