一道选择题:
若有定义:int a=1234, b=-5678;
用语句 printf("%+-6d%+-6d",a,b); 输出,
以下正确的输出结果是( )
猛一看是不是有点懵,好像知道点啥,又不确定是哪个答案。
常用的 %d,%c,%f,%s 大家应该都熟悉了。
复杂点的%6d是一共6位,不足的用空格补足。但是题目这么长的还没见过。其实这个题目并不复杂。
%-6d 加负号是左对齐。
%+6d 可不是右对齐哟。%6d默认就是右对齐,即不足6位的话前面补空格。
中间+表示输出的时候带正负号。
所以%+-6d意思就是宽度一共是6位,带正负号,左对齐,不足的右边补空格。
总结一下:
格式说明 | 表示内容 | 格式说明 | 表示内容 |
---|---|---|---|
%d | 整型 int | %c | 字符 char |
%ld | 长整型 long int | %s | 字符串 |
%f | 浮点型 float | %o | 八进制 |
%lf | double | %#o | 带前导的八进制 |
%% | 输出一个百分号 | %x | 十六进制 |
%5d | %#x | 带前导的十六进制 |
举例说明:
printf(“%2d”,123 ); 第二部分有三位,大于指定的两位,原样输出123
printf(“%5d”,123 ); 第二部分有三位,小于指定的五位,左边补两个空格 123
printf(“%10f”,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); 输出,
以下正确的输出结果是( )
答案请仔细阅读上面总结。