这道题做不来

[复制链接]
查看11 | 回复2 | 2010-8-11 20:00:27 | 显示全部楼层 |阅读模式
(2) 有以下程序
main()
{ int m=0256,n=256;
printf("%o %o\n",mn,n);
}
程序运行后的输出结果是
A) 0256 0400
B) 0256 256
C) 256 400
D) 400 400
不懂呀,后面( printf("%o %o\n",mn,n);)
不是mn吗?不懂什么意思呀?

回复

使用道具 举报

千问 | 2010-8-11 20:00:27 | 显示全部楼层
选C。数字前面带0,表示的是八进制。所以0256表示的是八进制的256,以八进制输出仍然是256。而256表示的是十进制的256,转换成八进制是400,所以按八进制输出是400。 直接以%o输出前面是不会带0的。
回复

使用道具 举报

千问 | 2010-8-11 20:00:27 | 显示全部楼层
如果最后printf("%o %o\n",mn,n);中的mn是m的话,答案就是C,m是以0开头的,表示八进制,n是十进制,最后要输出八进制形式,故m不变,n转化成256的八进制即400.记住,c中,以0开头的整数表示是八进制的.我觉得mn肯定是印错了呗,你可以在编译器下试试,mn未定义啊,肯定是m
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行