C数据输出printf("%+-6d%+-6d",a,b);

2020-03-05 09:32:45 浏览数 (2)

一道选择题:

若有定义:int a=1234, b=-5678;

用语句 printf("% -6d% -6d",a,b); 输出,

以下正确的输出结果是( )

  1. 1234 -5678 (中间有两个空格,最后有一个空格)
  2. 1234 -5678 (中间有两个空格,最后有一个空格)
  3. 1234 -5678(最前面有一个空格,中间有一个空格)
  4. -1234 -5678(最前面和后面均无空格)

猛一看是不是有点懵,好像知道点啥,又不确定是哪个答案。

常用的 %d,%c,%f,%s 大家应该都熟悉了。

复杂点的m是一共6位,不足的用空格补足。但是题目这么长的还没见过。其实这个题目并不复杂。

%-6d 加负号是左对齐。

% 6d 可不是右对齐哟。m默认就是右对齐,即不足6位的话前面补空格。

中间 表示输出的时候带正负号。

所以% -6d意思就是宽度一共是6位,带正负号,左对齐,不足的右边补空格。

总结一下:

格式说明

表示内容

格式说明

表示内容

%d

整型 int

%c

字符 char

%ld

长整型 long int

%s

字符串

%f

浮点型 float

%o

八进制

%lf

double

%#o

带前导的八进制

%%

输出一个百分号

%x

十六进制

]

%#x

带前导的十六进制

举例说明:

printf(“-”,123 ); 第二部分有三位,大于指定的两位,原样输出123

printf(“]”,123 ); 第二部分有三位,小于指定的五位,左边补两个空格 123

printf(“f”,1.25 );小数要求补足6位的,没有六位的补0,。结果为 1.250000

printf(“%5.3f”,125 );小数三位,整个五位,结果为1.250(小数点算一位)

printf(“%3.1f”,1.25 );小数一位,整个三位,结果为1.3(要进行四舍五入)

若有int x=017;则下面语句对应输出如下:

输出语句

输出结果

printf(“%d”, x);

15

printf(“%o”, x);

17

printf(“%#o”,x);

017

printf(“%x”, x);

11

printf(“%#x”,x);

0x11

最后再留一个题目:

若有定义:int a=99, b=88;

用语句 printf("%%d%d",a,b); 输出,

以下正确的输出结果是( )

  1. �88
  2. �9
  3. �8
  4. 以上均不正确

答案请仔细阅读上面总结。

0 人点赞