求助C习题解答,知道的请帮帮忙,谢谢了~~~

来源:百度知道 编辑:UC知道 时间:2024/05/15 16:52:38
以下程序段的输出结果是( )
int a=1234;
printf("%2d\n",a);
A、12 B、34 C、1234 D、提示出错、无结果

我想知道的是:
1)里面的%2d是什么意思?是输出的位长吗?那为什么我在机子上运行输出结果还是1234?
2)在这个打印语句里,有2跟没2有什么区别呢?

1. %2d 表示按整形输出,最小2位,注意,是“最小”宽度,不是“最大”宽度。 也就是说,如果你的输出数字长度小于2,则在前面用空格补位。如果长度大于等于2,则按实际长度输出。你这个题中的“1234”由于长度大于2,所以按实际输出。

2.在这个打印语句里,由于长度大于最小宽度限制“2”,所以有没有都是一样的输出结果。

d代表整数的输出格式,像浮点数类型就用%f.而2表示表示限制变量a的宽度,
若宽度小于变量的位数,则不理会宽度的限制,按实际长度输出,本题就输出1234.如果在本例中你把2改为6,则输出结果就会变为001234( 0表示空格).所以在本例中有2跟没2是没区别得。

答案1234 选C