问高手一道题(c++)

来源:百度知道 编辑:UC知道 时间:2024/04/29 06:04:53
mian()
{
int x=102,y=012;
printf("%2d,%2d\n",x,y);
}
执行后输出结果是:()
A)10,01 B)002.12 C)102,10 D)02.10

答案说选C 我不明白为什么啊~~~

%2d要求以10进制输出,并且长度为2,C语言规定长度不到2的会以空格补足,超过2的用实际长度。
所以102就输入102,至于y,012表示的是八进制数(C语言规定以0开头的整数是8进制的),换成10进制就是10了

012(8) = 10(10)