资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,/*ch3_1.c*/,#include,main(),int c;,char a;,c=65;a=B;,putchar(c);putchar(n);putchar(a);,运行结果:A,B,例,Evaluation only.,Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.,Copyright 2019-2019 Aspose Pty Ltd.,/*ch3_1.c*/运行结果:A例Evaluation o,格式:printf(“格式控制串”,输出表),功能:按指定格式向显示器输出数据,返值:正常,返回输出字节数;出错,返回EOF(-1),格式输出函数,输出表:要输出的数据(可以没有,多个时以“,”分隔),格式控制串:包含两种信息,格式说明:,%,修饰符,格式字符,,用于指定输出格式,普通字符或转义序列:原样输出,格式字符,Evaluation only.,Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.,Copyright 2019-2019 Aspose Pty Ltd.,格式:printf(“格式控制串”,输出表)格式输出函数输出,d,i,x,X,o,u,c,s,e,E,f,g,%,格式字符:,十六进制无符号整数,不带符号十进制整数,十进制整数,指数形式浮点小数,单一字符,字符串,八进制无符号整数,小数形式浮点小数,e和f中较短一种,百分号本身,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.677890e+02,567.789000,567.789,%,说明,格式字符要用小写,格式字符与输出项个数应相同,按先后顺序一一对应,输出转换,:格式字符与输出项类型不一致,自动按指定格式输出,例,main(),unsigned int u=65535;,printf(”u=%dn,u);,输出结果:u=-1,例 int a=3,b=4;,printf(“%d%dn”,a,b);,printf(“a=%d,b=%dn”,a,b);,例 int a=3,b=4;,printf(“%d%dn”,a,b);,printf(“a=%d,b=%dn”,a,b);,输出结果:,3 4,a=3,b=4,11 11 11 11 11 11 11 11,65535,Evaluation only.,Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.,Copyright 2019-2019 Aspose Pty Ltd.,d,ix,Xoucse,Efg%格式字符:十六进制无符号整,附加格式说明符(修饰符),.n,对实数,指定小数点后位数(四舍五入),对字符串,指定实际输出位数,修饰符,功 能,m,输出数据域宽,数据长度hex%xn,c,c);,运行结果:,Enter a character:A,A-hex41,Evaluation only.,Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.,Copyright 2019-2019 Aspose Pty Ltd.,格式:getchar()3.2 数据输入例 /*ch3,格式输入函数,格式:scanf(“格式控制串”,地址表),功能:按指定格式从键盘读入数据,存入地址表指定的,存储单元中,并按回车键结束,返值:正常,返回输入数据个数,地址表:变量的地址,常用取地址运算符,&,格式字符:d,i,o,x,u,c,s,f,e,例 scanf(“%d”,输入:10,则 a=10,例 scanf(“%x”,输入:11,则 a=17,Evaluation only.,Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.,Copyright 2019-2019 Aspose Pty Ltd.,格式输入函数格式:scanf(“格式控制串”,地址表)地址,附加格式说明符(修饰符),l,修饰符,功 能,h,m,*,用于d,o,x前,指定输入为short型整数,用于d,o,x前,指定输入为long型整数,用于e,f前,指定输入为double型实数,指定输入数据宽度,遇空格或不可转换字符则结束,抑制符,指定输入项读入后不赋给变量,例 scanf(“%4d%2d%2d”,输入 20191015,则2019yy,10 mm,15 dd,例 scanf(“%3d%*4d%f”,输入 12345678765.43,则123k,8765.43f,例 scanf(“%2d,%*3d,%2d”,输入 12,345,67,则12a,67b,例 scanf(“%3c%2c”,输入 abcde,则ac1,d c2,Evaluation only.,Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.,Copyright 2019-2019 Aspose Pty Ltd.,附加格式说明符(修饰符)l修饰符功,输入分隔符的指定,一般以空格、TAB或回车键作为分隔符,其它字符做分隔符:格式串中两个格式符间字符,例 scanf(“%d%o%x”,printf(“a=%d,b=%d,c=%dn”,a,b,c);,输入 123 123 123,输出 a=123,b=83,c=291,例 scanf(“%d:%d:%d”,输入 12:30:45,则12 h,30 m,45 s,例 scanf(“%d,%d”,&a,&b),输入 3,4,则3a,4 b,例 scanf(“a=%d,b=%d,c=%d”,输入 a=12,b=24,c=36,Evaluation only.,Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.,Copyright 2019-2019 Aspose Pty Ltd.,输入分隔符的指定例 scanf(“%d%o%x”,&a,&,说明:,用“%c”格式符时,空格和转义字符作为有效字符输入,如,scanf(“%c%c%c”,若输入a,b,c,则ac1,c2,b c3,输入数据时,遇以下情况认为该数据结束:,遇空格、TAB、或回车,遇宽度结束,遇非法输入,如 scanf(“%d%c%f”,若输入1234a123,o,.26,则 1234 a,a b,123 c,输入函数留下的“,垃圾,”:,例 int x;,char ch;,scanf(“%d”,ch=getchar();,printf(“x=%d,ch=%dn”,x,ch);,执行:123,输出:x=123,ch=10,例 int x;,char ch;,scanf(“%d”,scanf(“%c”,printf(“x=%d,ch=%dn”,x,ch);,执行:123,输出:x=123,ch=10,解决方法:,(1)用getchar()清除,(2)用函数fflush(stdin)清除全部剩余内容,(3)用格式串中空格或“%*c”来“吃掉”,例 int x;,char ch;,scanf(“%d”,scanf(“%c”,或 scanf(“%*c%c”,&ch,);,Evaluation only.,Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.,Copyright 2019-2019 Aspose Pty Ltd.,说明:如 scanf(“%c%c%c”,&c1,&c2,&c,3.3,程序举例,/*ch3_12.c*/,#include,#include,main(),float a,b,c,s,area;,scanf(%f,%f,%f,s=1.,0,/2*(a+b+c);,area=,sqrt,(s*(s-a)*(s-b)*(s-c);,printf(a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2fn,a,b,c,s);,printf(area=%7.2fn,area);,例 输入三角形边长,求面积,输入:3,4,6,输出:a=3.00,b=4.00,c=6.00 s=6.50,area=5.33,文件包含预处理命令,变量定义,输入数据,输出数据,Evaluation only.,Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.,Copyright 2019-2019 Aspose Pty Ltd.,3.3 程序举例/*ch3_12.c*/例 输入三角形边长,例 从键盘输入大写字母,用小写字母输出,/*ch3_13.c*/,#include stdio.h,main(),char c1,c2;,c1=getchar();,printf(%c,%dn,c1,c1);,c2=c1+32;,printf(%c,%dn,c2,c2);,输入:,A,输出:A,65,a,97,Evaluation only.,Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.,Copyright 2019-2019 Aspose Pty Ltd.,例 从键盘输入大写字母,用小写字母输出/*ch3_13.c,/*ch3_14.c*/,#include,#include,main(),float a,b,c,disc,x1,x2,p,q;,scanf(a=%f,b=%f,c=%f,disc=b*b-4*a*c;,p=-b/(2*a);q=sqrt(disc)/(2*a);,x1=p+q;x2=p-q;,printf(nnx1=%5.2fnx2=%5.2fn,x1,x2);,输入:,a=1,b=3,c=2,输出:x1=-1.00,x2=-2.00,Evaluation only.,Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.,Copyright 2019-2019 Aspose Pty Ltd.,/*ch3_14.c*/输入:a=1,b=3,c=2 Ev,谢谢!,谢谢!,16,高素质编程师湖南大学语言课件第三章,17,
展开阅读全文