预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共34页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第4章顺序结构程序设计4.1格式化输出——printf()函数(2)%mdm为指定的输出字段的宽度,若数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。如:printf(“%4d,%4d”,a,b);若a=123,b=12345则输出结果为:空123,12345(3)%ld输出长整型数据。如:longa=135780;printf(“%ld”,a);2、o格式符,以八进制数形式输出整数。3、x格式符,以十六进制数形式输出整数。4、u格式符,用来输出unsigned型数据,即无符号数,以十进制形式输出。5、c格式符,用来输出一个字符。如:charch=‘a’;printf(“%c”,ch);6、s格式符,用来输出一个字符串。有下面几种用法:(1)%s如:printf(“%s”,”china”);(2)%ms输出的字符串占m列,如字符串本身长度大于m,将字符串全部输出。若串长度小于m,则左补空格。(3)%-ms如字符串本身长度大于m,将全部输出;若小于m,则字符串向左靠,右补空格。如:printf(“%-7s”,”china”);结果为:china空空(4)%m.ns输出占m列,但只取字符串中左端n个字符,这n个字符输出在m列的右侧,左补空格。如:printf(“%7.2s”,”china”);结果为:空空空空空ch(5)%-m.ns输出占m列,但只取字符串中左端n个字符,这n个字符输出在m列的左侧,右补空格。如:printf(“%-7.2s”,”china”);结果为:ch空空空空空7、f格式符,用来输出实数(包括单、双精度),以小数形式输出。有下面几种用法:(1)%f不指定字段宽度,由系统自动指定,使整数部分全部输出,并输出6位小数,但这6位小数并非全部为有效数字,如单精度实数的有效位数一般为7位,如输出结果为333333.321453,显然只有前7位是有效数字,后面5位无意义。双精度数也可用%f格式输出,它的有效位数一般为16位。如:floata=3;printf(“%f”,a);结果为:3.000000(2)%m.nf指定输出的数据共占m列,其中有n位小数,如果数的长度小于m,则左端补空格。如:floatf=123.456;printf(“%f,%10.2f”,f);结果为:123.455994,空空空空123.46结果不同,是由于实数在内存中的存储误差引起的。(3)%-m.nf与(2)基本相同,只是使输出的数向左端靠,右端补空格。8、e格式符,以指数形式输出实数,可用以下形式:(1)%e不指定输出数据所占的宽度和小数位数,由系统自动指定给出6位小数,指数部分占5位,其中e占1位,指数符号占1位,指数占3位。如:printf(“%e”,123.456);输出:1.234560e+002即%e格式输出的实数共占13列宽度。(2)%m.ne%-m.ne同前面相同,n指小数位数。若f=123.456,printf(“%10.2e,%-10.2e,%10e,%.2e”,f,f,f,f);输出如下:空1.23e+0021.23e+002空1.234560e+0021.23e+002注意:当n没有指定时,自动取6位小数。B、普通字符,需要原样输出的字符。如:printf(“a=%db=%d”,a,b);下面就各类格式字符举一些例子:字符d──以带符号的十进制整数形式输出。main(){intnum1=123;longnum2=123456;/*用3种不同格式,输出int型数据num1的值*/printf("num1=%d,num1=%5d,num1=%-5d,num1=%2d\n",num1,num1,num1,num1);printf("num2=%ld,num2=%8ld,num2=%5ld\n",num2,num2,num2);}程序运行结果如下:num1=123,num1=□□123,num1=123□□,num1=123num2=123456,num2=□□123456,num2=123456类型转换字符f──以小数形式、按系统默认的宽度,输出单精度和双精度实数。main(){floatf=123.456;doubled1,d2;d1=1111111111111.111111111;d2=2222222222222.222222222;printf("%f,%12f,%12.2f,%-12.2f,%.2f\n",f,f,f,f,f);printf("d1+d2=%f\n",d1+d2);}程序运行结果如下:123.456001,□□123.456001,□□□□□□123.46,123.46□□□□□□,123.46d1+d2=3333333333333.333010类型转换字符c──输出一个字符(只占一列宽度)