C语言简单的输出问题

输出语句:printf("%d\n",11+011);的输出结果是
A)20
B)22
C)022
D)021
为啥选A?

因为数值常量前面带0是表示8进制数据,8进制的11为十进制的9,所以这里打印结果就是20

011是八进制