4.1格式化输出函数_第1页
4.1格式化输出函数_第2页
4.1格式化输出函数_第3页
4.1格式化输出函数_第4页
4.1格式化输出函数_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、Teacher teaching designCONTENTS 目 录数据的输出函数格式符的使用案例分析仿真演练数据的输出函数-printfPART 01printf(“格式控制字符串”,输出表列)(一)、printf函数调用的一般形式形式:按“格式控制字符串”的指定格式,输出对应的变量 功能:格式控制字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串(普通字符)两种组成。格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等。说明 非格式字符串在输出时原样照印,在显示中起提示作用。输出表列中给出了各个输出项,要求格式字符串和各输出项在

2、数量和类型上应该从左到右一一对应(2)“格式控制字符串”中的格式字符,必须与“输出表列”中输出项的数据类型 一致,否则会引起输出错误。变量输出表内容可以是表达式:(3)变量输出表属于可选内容。(1)输出表列如: printf(%d,3*a+5);如: printf(a=%d b=%dn, a, b); printf(a=%d b=%dn, a, b); 如:如: printf(How do you do !n); printf(How do you do !n);如果输出的数据多于1个,相邻之间用逗号分隔。如: int a=10; printf(%f,a); printf格式字符表格式字符格式

3、字符意意 义义d d以十进制形式输出带符号整数(正数不输出符号)o o以八进制形式输出无符号整数(不输出前缀0)x,Xx,X以十六进制形式输出无符号整数(不输出前缀Ox)u u以十进制形式输出无符号整数f f以小数形式输出单、双精度实数e,Ee,E以指数形式输出单、双精度实数g,Gg,G以%f或%e中较短的输出宽度输出单、双精度实数c c输出单个字符s s输出字符串printf 附加格式说明字符标标 志志意意 义义-结果左对齐,右边填空格m( 正整数)数据最小宽度n( 正整数)对实数表示输出n位小数,对字符串表示截取的字符个数字母l用于长整型整数,可以加在格式符d,o,x,u前面。 #对c,s

4、,d,u类无影响;对o类,在输出时加前缀0;对x类,在输出时加前缀0 x;对e,g,f 类当结果有小数时才给出小数点空格输出值为正时表示以空格,为负时加以负号(1)格式字符d以带符号的十进制整数形式输出01按整型数据的实际长度输出02%mdm为指定的输出字段的长(宽)度%ld%-md数据的位数小于m,则左补空格数据的位数大于m,则按实际位数输出数据的位数小于m,则右补空格数据的位数大于m,则按实际位数输出0304%ld-字母l用于长整型数据输出,还可以加在格式符o,x,u前面。 main() int n1=111; long n2=222222; printf(n1=%d,n1=%4d,n1=

5、%-4d,n1=%2dn,n1,n1,n1,n1); printf(n2=%ld,n2=%9ld,n2=%2ldn,n2,n2,n2); printf(n1=%ldn,n1); n1=111,n1=111,n1=111,n1=111n2=222222,n2=222222,n2=222222格式符d的使用整数的其他形式:%o(小写字母o )-整数八进制无符号形式输出;%x -整数十六进制无符号形式输出。%u-对于unsigned型数据,以十进制无符号形式输出。源程序其他形式运行结果(2)格式字符f以小数形式,输出单精度和双精度实数01按系统默认宽度输出实数:整数部分全部输出,小数部分输出6位。单

6、精度变量的输出有效位是7位;双精度变量的输出有效位是16位。02%-m.nfm和负号的用法与前面相同。%gm是正整数,表示数据最小宽度n是正整数,表示小数位数03让系统根据数值的大小,自动选择%f或%e格式、且不输出无意义的零。举例:main( ) float x=11111.111,y=33333.333; printf(x+y=%fn,x+y);运行结果:x+y=44444.443359说明:但有效数字只有7位:44444.44。双精度变量的输出与此类似,只是有效位是16位。【例3】以下输出语句的结果:printf( %fn,12.3); printf( %2fn,12.3); print

7、f( %10fn,12.3); printf( %.3fn,12.3); printf( %10.3fn,12.34567); printf( %5.3fn,12.3) printf( %10.3fn,12.3); printf( %5.3fn,12.34444); 12.30000012.300000 12.30000012.300 12.346 12.300 12.30012.344格式符f的使用源程序运行结果printf( %en,12.3); printf( %2en,12.3); printf( %15en,12.3); printf( %.3en,12.3); printf( %1

8、5.3en,12.3); printf( %5.3en,12.3); printf( %15.3en,12.345); 允许形式:%e、%m.ne、%-m.ne 、%me、%.ne等m限定输出实型数据的总宽度,n-1限定输出的小数位数。(3)格式字符e以指数形式输出实数整 数 . 小 数 e/E 符号位 指 数1位(1=整数=10) 1位 5位 1位 1位 2位 共11位 格 式位数举例3.33333e-03。说明1.23000e+011.23000e+01 1.23000e+011.23e+01 1.23e+01 1.23e+01 1.23e+01 源程序运行结果标准化形式要求:小数点前必须

9、有且只有一位非零数字要求对应的输出项可以是字符,也可以是0255间的整数说明1main() char ch=a; int i=97; printf(ch=%c,ch=%cn, ch,i); /*c,i以字符形式输出*/ printf( i=%d,i=%dn, ch,i); /*c,i以整数形式输出*/ printf( ch=%2cn, ch);/* m限定输出字符的总宽度, 示例2%c -以字符形式输出一个字符%-mc-m代表宽度,m大于字符宽度则字符左端填充空格, - 代表左对齐格式(4)格式字符c输出一个字符ch=a, ch=ai=97,i=97ch= a结果3main() printf(

10、%s,%3s,%-9sn,student, student , student ); printf(%8.3s,%-8.3s,%3.4sn,student ,student ,student ); 允许形式:%s、%m.ns、%s%m.ns-m是正整数,表示允许输出的字符串宽度; n是正整数,表示对字符串截取的字符个数。(5)格式符s输出一个字符串如果想输出字符 % ,可以在“格式控制字符串“中连续用两个%表示student, student, studentstu, stu, stud printf(“%5.2f%”,1.0/2); 输出结果为:50.00%。 说明:仿真演练 体验探索PAR

11、T 02 main() int x=0210; printf(%Xn,x); 1、分析以下程序的运行后的输出结果 main() char c; int n=100; float f=10; double x; x=f*=n/=(c=50); printf(%d %fn,n,x); 2、分析以下程序的运行后的输出结果仿真演练 体验探索882 20.000000运行结果运行结果源程序选项A)0256 0400 B)0256 256 C)256 400 D)400 400 答案C仿真演练 体验探索main() int m=0256,n=256; printf(%o %on,m,n); A)错误信息

12、B)666 C)888 D)666,888选项4、有以下程序运行后的输出结果是( ) main() int a=666,b=888; printf(%dn,a,b); 题目仿真演练 体验探索5、以下程序段的输出结果是( )main() int i=9; printf(%on,i); 仿真演练 体验探索6、以下程序运行后的输出结果是 ( )main() int a,b,c; a=25; b=025; c=0 x25; printf(%d %d %dn,a,b,c); 结果1125 21 37选项 A) 10,01 B) 02,12 C) 102,10 D) 02,10选项7、有以下程序执行后输出结果是( )main( ) int x=102,y=012; printf(%2d,%2dn,x,y); 题目仿真演练 体验探索mai

温馨提示

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

评论

0/150

提交评论