《C语言程序设计案例教程》课件1.3 格式化输出函数_第1页
《C语言程序设计案例教程》课件1.3 格式化输出函数_第2页
《C语言程序设计案例教程》课件1.3 格式化输出函数_第3页
《C语言程序设计案例教程》课件1.3 格式化输出函数_第4页
《C语言程序设计案例教程》课件1.3 格式化输出函数_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

格式化输出函数TeacherteachingdesignCONTENTS

目录数据的输出函数输出函数格式说明符明确考点交流提升案例分析

仿真演练数据的输出函数PART01数据的输出函数printf函数(称为格式输出函数)printf函数所以称为格式输出函数,按用户指定的格式,把数据输出到显示器屏幕上。其关键字最末一个字母f是format的缩写,即为“格式”的意思。1)printf函数调用的一般形式:printf(“格式控制字符串”,输出表列)功能:按“格式控制字符串”的指定格式,输出对应的变量。说明:(1)格式控制字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串(普通字符)两种组成。格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等。如:“%d”表示按十进制整型输出;“%ld”表示按十进制长整型输出;“%c”表示按字符型输出等。(2)非格式字符串在输出时原样照印,在显示中起提示作用。(3)输出表列中给出了各个输出项,要求格式字符串和各输出项在数量和类型上应该从左到右一一对应。数据的输出函数2)输出表列(1)变量输出表属于可选内容。如果输出的数据多于1个,相邻之间用逗号分隔。如:

printf("Howdoyoudo!\n"); printf("a=%db=%d\n",a,b);

(2)变量输出表内容可以是表达式:如:printf("%d",3*a+5); (3)“格式控制字符串”中的格式字符,必须与“输出表列”中输出项的数据类型一致,否则会引起输出错误。如初学者会无意间出现如下的错误,看着莫名其妙的程序结果却不知道是怎么回事:

inta=10;printf("%f",a);输出函数格式说明符PART02格式说明符格式字符意

义d以十进制形式输出带符号整数(正数不输出符号)o以八进制形式输出无符号整数(不输出前缀0)x,X以十六进制形式输出无符号整数(不输出前缀Ox)u以十进制形式输出无符号整数f以小数形式输出单、双精度实数e,E以指数形式输出单、双精度实数g,G以%f或%e中较短的输出宽度输出单、双精度实数c输出单个字符s输出字符串格式说明符printf附加格式说明字符(如%m.nf和%m.ns等):标志意

义-结果左对齐,右边填空格m(正整数)数据最小宽度n(正整数)对实数表示输出n位小数,对字符串表示截取的字符个数字母l用于长整型整数,可以加在格式符d,o,x,u前面。#对c,s,d,u类无影响;对o类,在输出时加前缀0;对x类,在输出时加前缀0x;对e,g,f类当结果有小数时才给出小数点空格输出值为正时表示以空格,为负时加以负号明确考点交流提升PART03明确考点交流提升(1)格式字符d──以带符号的十进制整数形式输出允许形式:%d、%md、%-md、%ld等。%d—按整型数据的实际长度输出;%md---m是正整数,表示输出数据宽度,若m小于数据的实际位数,m不起作用;%-md---数据宽度小于m时,负号”-”要求结果左对齐,右边填空格;%md---数据宽度小于m时,结果右对齐,左边填空格;%ld---字母l用于长整型数据输出,还可以加在格式符o,x,u前面。明确考点交流提升【例1】格式符d的使用。

main(){intn1=111;longn2=222222;printf("n1=%d,n1=%4d,n1=%-4d,n1=%2d\n",n1,n1,n1,n1);printf("n2=%ld,n2=%9ld,n2=%2ld\n",n2,n2,n2);printf("n1=%ld\n",n1);}运行结果:n1=111,n1=□111,n1=111□,n1=111n2=222222,n2=□□□222222,n2=222222请思考为什么产生这样的结果?整数还有下面的输出形式:%o(小写字母o)----整数八进制无符号形式输出;%x---整数十六进制无符号形式输出。%u---对于unsigned型数据,以十进制无符号形式输出。明确考点交流提升(2)、格式字符f──以小数形式,输出单精度和双精度实数允许形式:%f、%m.nf、%-m.nf、%mf、%.nf等。%f---按系统默认宽度输出实数:整数部分全部输出,小数部分输出6位。单精度变量的输出有效位是7位;双精度变量的输出有效位是16位。%-m.nf---m是正整数,表示数据最小宽度;n是正整数,表示小数位数,m和负号的用法与前面相同。%g---让系统根据数值的大小,自动选择%f或%e格式、且不输出无意义的零。

【例2】输出实数的有效位。

main(){floatx=11111.111,y=33333.333;

printf("x+y=%f\n",x+y);}

程序运行结果:x+y=44444.443359

,但有效数字只有7位:44444.44。双精度变量的输出与此类似,只是有效位是16位。明确考点交流提升【例3】思考题:以下输出语句的结果:printf("[%f]\n",12.3);[12.300000]printf("[%2f]\n",12.3);[12.300000]printf("[%10f]\n",12.3);[12.300000]printf("[%.3f]\n",12.3);[12.300]printf("[%10.3f]\n",12.34567);[12.346]printf("[%5.3f]\n",12.3)[12.300]printf("[%10.3f]\n",12.3);[12.300]printf("[%5.3f]\n",12.34444);[12.344]明确考点交流提升(3)、格式字符e──以指数形式输出实数允许形式:%e、%m.ne、%-m.ne、%me、%.ne等m限定输出实型数据的总宽度,n-1限定输出的小数位数。

%e--以标准指数形式输出:尾数中的整数部分大于等于1、小于10,小数点占一位,尾数中的小数部分占5位;指数部分占4位,其中e占一位,指数符号占一位,指数占2位,共11位(不同系统的规定略有不同)。如,3.33333e-03。【例4】思考题:以下%e的输出格式事例,思考以下输出语句的结果:printf("[%e]\n",12.3);[1.23000e+01]printf("[%2e]\n",12.3);[1.23000e+01]printf("[%15e]\n",12.3);[1.23000e+01]printf("[%.3e]\n",12.3);[1.23e+01]printf("[%15.3e]\n",12.3);[1.23e+01]printf("[%5.3e]\n",12.3);[1.23e+01]printf("[%15.3e]\n",12.345);[1.23e+01]明确考点交流提升4、格式字符c──输出一个字符允许形式:%mc%c---以字符形式输出一个字符。【例5】字符和整数的输出。

main(){charch='a';inti=97;printf("ch=%c,ch=%c\n",ch,i);/*c,i以字符形式输出*/printf("i=%d,i=%d\n",ch,i);/*c,i以整数形式输出*/printf("ch=%2c\n",ch);/*m限定输出字符的总宽度,m大于字符宽度则字符左端填充空格*/}

程序运行结果:ch=a,ch=ai=97,i=97ch=a明确考点交流提升5、格式符s──输出一个字符串允许形式:%s、%m.ns%s---输出一个字符串。%m.ns--m是正整数,表示允许输出的字符串宽度;n是正整数,表示对字符串截取的字符个数。【例6】输出字符串。

main(){printf("%s,%3s,%-9s\n","student","student","student");printf("%8.3s,%-8.3s,%3.4s\n",""student",""student",""student");} 运行结果:student,student,student□□□□□□□stu,stu□□□□□,stud说明:如果想输出字符%,可以在“格式控制字符串“中连续用两个%表示,如,

printf(“%5.2f%%”,1.0/2);输出结果为:50.00%。仿真演练

体验探索PART04案例分析仿真演练1、以下程序运行后的输出结果是()。

main(){intx=0210;printf("%X\n",x);}2、以下程序运行后的输出结果是()。

main(){charc;intn=100;

floatf=10;doublex;

x=f*=n/=(c=50);

printf("%d%f\n",n,x);}3、有以下程序运行后的输出结果是()

main(){intm=0256,n=256;

printf("%o%o\n",m,n);

}A)02560400B)0256256

C)256400

D)4004004、有以下程序运行后的输出结果是()

main()

{inta=666,b=888;

printf("%d\n",a,b);}A)错误信息B)666C)888D)666,8885、以下程序段的输出结果是()main(){

inti=9;printf("%o\n",i);}6、以下程序运行后的输出结果是()main()

{inta,b,c;a=25;b=025;c=0x25;printf("%d%d%d\n",a,b,c);}案例分析仿真演练案例分析仿真演练7、有以下程序执行后输出结果是()main(){intx=102,y=012;printf("%2d,%2d\n",x,y);}A)10,01B)02,12C)102,10D)02,108、已知字符A的ACSII码值为65,以下语句的输出结果是()

main(){charch=’B’;printf(“%c%d\n”,ch,ch);}9、有以下程序语句

main()

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论