当前所在位置:珠峰网资料 >> 计算机 >> 软件水平 >> 正文
2015年软件水平考试程序员之程序设计知识要点(11)
发布时间:2012/5/14 9:29:15 来源:城市网学院 编辑:ziteng
  -
  3.4 常用输出名目符表中名目符的意义
  d或i 整型数据以十进制形式输出
  o 无符号整型数据以八进制形式输出
  X 无符号整型数据以十六进制形式输出
  U 元符号整型数据以十进制形式输出
  C 字符的ASCll码数据,输出对应的字符
  S 输出字符串
  f 以“整数部门.小数部门”形式输出实型数据
  e 以[-]n.nnnnne±xx输出实型数据
  g 以f或e名目输出
  声名:
  (1)x名目符同。名目符一样,把符号位作为数的一部门输出。对于x名目,用字符a、b、c、d、e、f(或A、B、C、D、E、F)暗示9之后的六个十六进制数字符。
  (2)一个整数,只要它的位在0-255规模内,也可以用字符形式输出,输出以该整数为ASCII代码的字符。反之,一个字符数据也可以用整数形式输出,输出该字符的ASCII代码值。
  (3)f、e和g名目符用于输出实型数据,名目转换时有四舍五人措置。对于f名目,小数点后的数字个数可由名目润色声名p指定,若p为0,不显示小数点。用e名目输出时,对于非0实数,小数点前有一位非零数字,输出名目中的有用位数可由名目润色声名p指定;字符e(或E)之后是指数,指数部门至少包含两个数字。若输出值的绝对值不小于 1E+100,则指数部门多于两位数字。
  g名目能按照暗示数据所需字符的若干好多自动选择f名目或e(或E) 名目输出实数,选择是以输出时所需字符数若干好多为尺度。
  名目润色声名有七种,教材只介绍其中四种,它们的意义分袂声名如下:
  (1)W域宽声名,W是一个十进制整数,暗示输出字段的字符数。若转换后需要的字符个数比给出的W多,则以现实需要为准;若转换后需要的字符数比W少,就在左边用填充字符补足(若给出左边对齐标识表记标帜(-),则在右边补填充字符人凡是用空白符作填充字符,若十进制整数W之前有前导0(此0不暗示以八进制数给出字段宽度),则以字符0作填充字符。
  (2)- 左对齐标识表记标帜,当转换后字符个数少于W时,在W所限制的字段宽度内,转换所得字符列左对齐,右边补填充符。缺省时,右对齐,左边补填充符。
  (3).p,其中p也是十进制整数。
  对于g或e名目输出,p指明输出精度(有用数字位数),可以缺省,缺省值依靠于系统的划定(下面的例子设p的缺省值为6)。
  对于f名目输出,p指明输出字符列的小数点之后的数字个数,可以缺省。
  对于S名目输出,p指明最多输出字符率的前p个字符,多余截断。缺省时,字符串的内容全数输出。
  对于d.i、O、u、x和X,暗示至少呈现的数字个数。
  同域宽声名一样,p也可所以字符*,而现实值由后面一个输出项的整数值给出,若该值为负值,相当于没有给出p。
  (4) l指明输出项的类型。
  长度润色符l用于名目符d、i、o、u、X,暗示对应的输出项是长整型或无符号长整型。
  以下是名目输出的一些例子。例如,
  int i=1234; long j=1234567L;
  printf(”%d,%+6d,%06d,%-6d, %5ld”,i,i,i,i,j)
  将输出:
  1234,+1234,00l234,1234,1234567
  注重:对于long型数据输出,必需在名目符之前有长度润色符l,剖明输出long型数据。
  若 int k=045;long p=-1L;printf(”%#o,%4o,%6lo”,k,k,p)
  将输出:
  045, 45, 37777777777
  而printf("%#x,%4x,%6lx”,k,k,p)将输出:
  0x25, 25, FFFFFFFF
  若 unsigned int u= 65535u;prinif(”%d,%4u,%ln’,u,u,p)
  将输出:
  -l, 65535, 4294967295
  若 char ch1= 045, ch2=’a’;printf(”%c,%-3c,%2c”,ch1,ch2,ch2)
  将输出:
  %,a, a
  若 char s[]==”ABCDEF’;printf(”%3s,%4.2s,%-7.4s,%.5s”,s,s,s,s)
  将输出:
  ABCDEF, AB, ABCD, ABCDE
  若 float f=123.4567f; double d=123.456789;
  printf(”%.4f,%8.3f,%-7.2f,%.7f",f,f,f,d)
  将输出:
  123.4567, 123.457, 123.46, 123.4567890
  而 printf(”%.6e,%10.2e,%-10.2e,%.2e,%.9e”,f,f, f,f,d)
  将输出:
  1.23457e+02, 1.2e+02,1.2e+02,l.2e+02, 1.23456789e+02
  注重:实型数据的有用位数,不要觉得凡是打印(显示)的数字都是切确的。一般地,float型只有7位有用数字,double型有15位有用数字。现实上,因计较过程中的误差堆集,凡是不能达到所说的有用位数。
  此外,要注重%g名目的非凡性,当它选择“整数部门.小数部门”形式时,因名目润色声名.p在e名目中的意义是指明精度,所以p的值是整数部门位数与小数部门位数之和(不是f
  名目中的小数位数)。若有
  float g1=12.34f,g2=0.0f;
  double d=123.456789, g=123456.789;
  printf("%g,%G",g1,g2);
  printf("%f,%g,%g,%g,%.8g"’,g1,g1,d,g,g)
  将输出:
  12.34,0
  12.340000,12.34,123.457,123457,123456.79
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved