c语言题目,求解惑

如题所述

第1个回答  2015-07-11
%2d是C语言中printf函数的输出格式说明符。

具体解释如下:
使输出的int型的数值以2位的固定位宽输出。如果不足2位,则在前面补空格;如果超过2位,则按实际位数输出。
注:如果输出的数值不是int型,则进行强制类型转换为int,之后按上面的格式输出。

举例如下:
printf("%2d", 12); // 输出12
printf("%2d", 1); // 输出 _1 (_代表空格)
printf("%2d", 122); // 输出122
printf("%2d", 12.72); // 输出12 (强制类型转换,即取整数部分)
【】上述题目中的y=012;012是八进制,int会把它变成十进制。也就是10
第2个回答  2015-07-11
0开头的数是八进制数,0x开头的数是十六进制数
所以y=012其实是十进制的1*8+2=10本回答被提问者采纳