c语言求解答案,求具体讲解

如题所述

应该没有正确答案才对,正确的输出如下:

y=4630
y=    4630
y=   04630

通常意义上format的格式如下:

%[flags][width][.prec][F|N|h|l]type


flags

flags 规定输出样式,取值和含义如下:

#

   井号    

type是o、x、X时,增加前缀0、0x、0X

type是e、E、f、g、G时,一定使用小数点

type是g、G时,尾部的0保留

   

width

用于控制显示数值的宽度,取值和含义如下:

n(n=1,2,3...): 宽度至少为n位,不够以空格填充。

* 格式列表中,下一个参数还是width

width是一个可选的指定最小值字段宽度的十进制数字字符串。如果转换值字符少于字段宽度,该字段将从左到右按指定的字段宽度填充。如果指定了左边调整选项,字段将在右边填充。如果转换结果宽于字段宽度,将扩展该字段以包含转换后的结果。不会发生截断。然而,小的精度可能导致在右边发生截断。


type

type的字符用于规定输出数据的类型,含义如下:

字符    对应数据类型    含义    

o    unsigned int    无符号8进制整数(不输出前缀0)    

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-24
d因为第一条语句是以8进制形式输出 4630没有控制输出数据的宽度,所以是顶格输出的。第二条,以8个宽度输出那么前面就有4个空格! 第三条以8个宽度输出数据,且还要有8进制的前导0所以是五个数,前面有三个空格追问

执行最后一条怎么最前面还有一个0?

追答

因为有#,它是代表输出数据的前面有8进制的前导。 就是说8进制以谁开头就输出谁!

本回答被提问者采纳