《C语言与程序设计教程》课件第2章.pptVIP

  • 1
  • 0
  • 约3.21万字
  • 约 192页
  • 2025-09-04 发布于广东
  • 举报

printf(x+y=%10.4f,x-y=%8.2f,x+y,x-y);格式控制字符串输出项列表其中,“x+y=”和“x-y=”是普通字符,而“%10.4f”和“%8.2f”是格式字符,它们分别对应输出项x+y和x-y的值。此外,如果要在屏幕上输出“%”,则应在格式控制字符串中连续使用两个%%。例如:printf(%5.2f%%\n,1.0/3*100);输出:3.33%例2.13使用不同格式字符的输出。#includestdio.hvoidmain(){ inta=88,b=89; printf(%d%d\n,a,b); printf(%d,%d\n,a,b); printf(%c,%c\n,a,b); printf(a=%d,b=%d\n,a,b);}运行结果如下:888988,89X,Ya=88,b=89本例中4次输出了a、b的值,但由于格式控制字符串的不同,每次输出的结果也不同。第1个输出语句printf中,两个格式字符%d之间加了一个空格(为普通字符),故输出的a、b值之间有一个空格;第二个printf语句中,两个格式字符%d之间加了一个“,”字符(也是普通字符),故输出a、b值之间有一个逗号;第3个printf语句的两个格式字符%c要求按字符型输出a、b值,故输出的是:X,Y;第4个printf语句在格式控制字符串中又增加了字符串“a=”和“b=”,即在输出中照字符串原值输出。例2.14不同类型数据在不同格式字符控制下的输出。#includestdio.hvoidmain(){ inta=15; doublef=123.456; printf(%d,%6d,%o,%x\n,a,a,a,a); printf(%f,%10f,%10.2f,%-10.2f,%.2f\n,f,f,f,f,f); printf(%8s,%3s,%7.2s,%-5.3s,%.4s\n,China,China,China,China,China);}运行结果如下:15,15,17,f123.456000,123.456000,123.46,123.46,123.46China,China,Ch,Chi,Chin程序中,第1个printf语句是以十进制、八进制和十六进制形式输出整型数15,其中%6d要求输出整型数的宽度为6,即在15前补上4个空格后输出。第2个printf语句是对实型数的输出,“%10.2f”在输出123.46(占6位)时在其前面补上4个空格,“%-10.2f”为向左对齐,即在输出123.46的右边补上4个空格;而“%.2f”仅指出了小数点后的位数,所以输出123.46前面不空格。第3个printf语句是对字符串的输出,“%8s”指定输出的字符串占8个字符位,即输出的“China”前补上3个空格;而“%3s”由于指定的位数小于字符串的实际位数,故按字符串的实际位数输出,因此输出的“China”前不空格;“%7.2s”指定位数为7位但只在最后两位输出字符串“China”的头两个字符,即输出为:“ch”,“%-5.3s”表示按左对齐输出字符串头3个字符,后面补上两个空格,即输出为:Chi;而“%.4s”指定了输出字符串“China”的前4个字符,即:Chin。例2.15printf语句的输出列表中输出项求值顺序分析。#includestdio.hvoidmain(){ inti=2; printf(%d,%d\n,i,++i); i=2; printf(%d,%d\n,++i,i);}运行结果:3,33,2这个结果和我们预想的结果:2,33,3不一样。这是因为在VisualC++?中,函数printf对输出列表中各输出项的求值顺序是自右向左进行的,但是求值结束后的输出顺序仍然是从左到右。因此会得到上面的运行结果。例2.16对有多个输出项的printf语句输出结果进行分析。#includestdio.hvoidmain(){ inti=8; printf(%d,%d,%d,%d,%d,%d\n,++i,--i,i++,i--,-i++,-i--); printf(%d\n,i);}运行结果如下:8,7,8,8,-8,-8

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档