资源预览内容
第1页 / 共42页
第2页 / 共42页
第3页 / 共42页
第4页 / 共42页
第5页 / 共42页
第6页 / 共42页
第7页 / 共42页
第8页 / 共42页
第9页 / 共42页
第10页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
基本数据类型,整型,字符型,实型,有,无,说明:数据类型所占字节数随机器硬件不同而不同,上表以IBM PC机为例:,不同类型数据间的转换 隐式转换 什么情况下发生 运算转换-不同类型数据混合运算时 赋值转换-把一个值赋给与其类型不同的变量时 输出转换-输出时转换成指定的输出格式 函数调用转换-实参与形参类型不一致时转换 运算转换规则:不同类型数据运算时先自动转换成同一类型,开始做算术,算术式子 C语言如何表示,显式转换(强制转换) 一般形式:(类型名)(表达式) 例 (int)(x+y)(int)x+y(double)(3/2)(int)3.6 说明:强制转换得到所需类型的中间变量,原变量类型不变,例 main() float x;int i;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i); 结果:x=3.600000,i=3,精度损失问题,算术式怎么写,算术运算符:(+ - * / % + -),赋值运算符:(= 及其扩展),求一年有多少个星期? 余多少天,算术运算符和表达式 基本算术运算符: + - * / % 结合方向:从左向右 优先级:( )- +,-, - (取负)-* / % - + -(1) (2) (3) (4) 多重括号由内向外 说明: “-”可为单目运算符时,右结合性 两整数相除,结果为整数,即/为自动取整 %要求两侧均为整型数据,例 5/2 =-5/2.0 =,例 5%2 =-5%2 =1%10 =5%1 =5.5%2,例 5/2 = 2 -5/2.0 = -2.5,例 5%2 = 1 -5%2 = -11%10 = 15%1 = 05.5%2 (),赋值运算符和表达式 简单赋值运算符 符号: = 格式: 变量标识符=表达式 作用:将一个数据(常量或表达式)赋给一个变量 说明“=”是赋值符号而不是等号,等号用“= =”,复合赋值运算符 种类:+= -= *= /= %= = = &= = |= 含义: exp1 op= exp2 exp1 = exp1 op exp2,例 a=3;d=func();c=d+2;,赋值说明: 结合方向:自右向左 优先级: 14 左侧必须是变量,不能是常量或表达式,右侧表达式必须有确定的值,赋值表达式的值与变量值相等,且可嵌套,赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型,例 3=x-2*y;a+b=3;,例 float f; int i;i=10; f=i; 则 f=10.0,例 int i; 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),/表达式值为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,复合赋值说明: 结合方向:自右向左 优先级: 12 左侧必须是变量,不能是常量或表达式,赋值表达式的值与变量值相等,且可嵌套,赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型,例: a=12; a+=a-=a*a,例: int a=2; a%=4-1; a+=a*=a-=a*=3;,/a=-264 等价于a=a+(a=a-(a*a),/a=0 等价于a=a+(a=a*(a=a-(a=a*3),数据输入与输出,输入设备 计算机 输出设备input output,C语言无I/O语句, I/O操作由函数实现#include ,格式: putchar( c ) 功能:把字符c输出到显示器上 参数: 字符常量、字符变量、整型变量 返值:正常,为显示的代码值;出错,为EOF(-1),数据输出 字符输出函数 putchar,#include main() char ch1 = C, ch2 = h; int a =105;putchar(ch1);putchar(ch2);putchar( a );putchar(n);putchar(141);putchar(n); ,运行结果: China -,例,格式: printf(“格式控制串”,输出列表) 功能:按指定格式向显示器输出数据 返值:正常,返回输出字节数;出错,返回EOF(-1),格式输出函数 printf,格式控制串:包含两种信息 格式说明: %修饰符格式字符 用于指定输出格式 % -/+ 0 m.n l/h 格式字符 普通字符或转义序列:原样输出printf(“x = %dn”, x);,int a=567; printf ( “%d”,a);,int a=255; printf(“%x”,a);,int a=65; printf(“%o”,a);,int a=567; printf(“%u”,a);,char a=65; printf(“%c”,a);,printf(“%s”,“ABC”);,float a=567.789; printf(“%e”,a);,float a=567.789; printf(“%f”,a);,float a=567.789; printf(“%g”,a);,printf(“%”);,567,ff,101,567,A,ABC,5.67789e+02,567.789000,567.789,%,%格式修饰格式字符,自增、自减运算符+ - 作用:使变量值加1或减1 种类: 前置 +i, -i (先执行i+1或i-1,再使用i值) 后置 i+,i- (先使用i值,再执行i+1或i-1),例 j=3; k=+j; j=3; k=j+; j=3; printf(“%d”,+j); j=3; printf(“%d”,j+); a=3;b=5;c=(+a)*b; a=3;b=5;c=(a+)*b;,/k=4,j=4,/k=3,j=4,/4,/3,/c=20,a=4,/c=15,a=4,自增、自减运算符+ - 作用:使变量值加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,例 -i+i=3; printf(“%d”,-i+);,求平均值,求10,20,30或者a,b,c的平均值,(10+20+30)/3或者(a+b+c)/3,求x平方,求y立方,x*x,y*y*y,#include #include main() float a,b,c,s,area;scanf(“%f,%f,%f“, ,例 输入三角形边长,求面积,输入:3,4,6 输出:a= 3.00, b= 4.00, c= 6.00 s= 6.50area= 5.33,%格式修饰格式字符,标志宽度.精度h|L,%格式修饰格式字符,标志宽度.精度h|L,- 输出数据在域内左对齐(缺省右对齐),+ 输出结果右对齐,输出符号位,# 在八进制和十六进制数前显示前导0,0x,%格式修饰格式字符,标志宽度.精度h|L,用十进制整数限定输出数据的位数 例:printf(“%5d”, 24); 输出: 2 4 表示以5位宽度右对齐输出显示整数24。,printf(“%-5d”, 24); 输出:2 4 printf(“%+5d”, 24); 输出: + 2 4,%格式修饰格式字符,标志宽度.精度h|L,对于实型数,可用“m.n”的形式指定数据的 输出宽度和小数位,其中m指数据总宽度。 例如: printf(“%8.1f”,123.45); 输出为: 1 2 3 . 5,%格式修饰格式字符,标志宽度.精度h|L,对于d、o、x、u格式:h表示short,L表示long 对于e、f、g格式:L表示双精度(double)。 例如: printf(“%8.1f”, 123.45); 输出为: 1 2 3 . 5,main( ) int a=1234;float f=123.456;char ch=a;printf(“%8d, %-8d, %2dn”, a, a, a);printf(“%f, %8.1f, %.2f, %.2en”, f, f, f, f);printf(“%3cn”,ch); ,运行: 1234, 1234 , 1234123.456000, 123.5, 123.46, 1.23e+02a,格式: getchar( ) 功能:从键盘读一字符 返值:正常,返回读取的代码值;出错,返回EOF(-1),数据输入 字符输入函数 getchar #include “stdio.h”,字符输入函数,例,#include main() int c;printf(“Enter a character:“);c=getchar();printf(“%c, %dn“, c, c); ,运行结果: Enter a character:A A,65 -,格式输入函数 scanf,格式: scanf(“格式控制串”,地址表) 功能:按指定格式从键盘读入数据,存入地址表指定的存储单元中 返值:正常,返回输入数据个数,例 scanf(“%d”,&a)输入:10 则 a=10,例 scanf(“%c”,输入:#则 ch = #,输入项必须为地址引用,常用输入格式字符,附加格式说明符(修饰符),例 scanf(“%4d%2d%2d”,&yy,&mm,&dd); 输入 19991015 则 1999yy, 10 mm, 15 dd,例 scanf(“%3c%2c”, 输入 abcde 则ac1, d c2,例 scanf(“%2d%*3d%2d”,输入 1234567 则12a, 67b,例 scanf(“%3d%*4d%f”,输入 12345678765.43则123k, 8765.43f,使用scanf函数注意点 1,输入项要给出变量地址,不能只写变量名。 int x; scanf(“%d”, x); 错误 scanf(“%d”, 正确,使用 %s 格式输入时,变量名本身就是字符串的首地址,所以不需要加地址运算符。 例如:char str6;scanf(“%s”, str); ,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号