C语言简单程序设计题 求助

来源:百度知道 编辑:UC知道 时间:2024/05/25 15:05:21
#include<stdio.h>
main()
{ int a=201,b=012;
printf(“%2d,%2d\n”,a,b);
}执行结果是
A,01,12 B201,10 C01,10 D20,01 为什么是B不是D

第一点b=012是个八进制数,换成10进制就是10,以%d输出自然是10

第二点
以%md(m是个整数)格式输出的时候,m表示所占的格数,当实际输出的数字格数不足m的时候会左补空格,当实际输出的数字超过m的时候,则按数字的实际格数输出,而不是截取前m格

结合题目就不用我解释了吧,呵呵

,b=012是8进制的数,在十进制是10

输出结果:201,10
因为a=201,b=012// b是八进制的,因为在12前面有0,表示12就是八进制的
输出的时候是按十进制输出的,所以得将b转换成十进制的b=1乘以8的1次密加上2×8的0次密。算出的结果就等于10。这是进制转换方面的知识。