关于输出结果的问题

zic741425263 2010-05-01 09:29:07
以下程序的输出结果是什么?
main()
{
char c1='6',c2='0';
printf("%c,%c,%d,%d\n",c1,c2,c1-c2,c1+c2);
}

A:因输出格式不合法,输出错误信息。

B:6,0,6,102

C:6,0,7,6

D6,0,5,7

正确答案是B,谁能具体说说为什么是B啊?
谢了。
...全文
79 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
barryhappy 2010-05-02
  • 打赏
  • 举报
回复
char c1='6',c2='0';


int c1=54, c2=48

这样就清楚了
天空的期望 2010-05-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xinzaiyiqi 的回复:]
6的ASCII码为54,0的ASCII码味48
%d输出字符的ASCII码,当然是6和102了
[/Quote]
学习了
发霉饼干 2010-05-01
  • 打赏
  • 举报
回复
printf()是格式化输出,它不会管你格式对不对,它直接按你输入的格式输出,
char c1='6',c2='0';
里面存的ASCII码!你用加减的时候,处理的是ASCII码!
注意'6'是字符,不是数字常量,也就是'6'在内存里存放的不是00000110,而是字符6的ASCII码00110110;后面的零一样!
你再运算就会看出是选B了!
呵呵,
我也是初学者,
努力!
huanmie_09 2010-05-01
  • 打赏
  • 举报
回复
'0'的ascii码为48
'6'的为54.
c1+c2是ascii码值的加法.
另外,
%c:按字符格式进行输出.
%d: 按10进制有符号整型格式进行输出.
lostamnesiac 2010-05-01
  • 打赏
  • 举报
回复
%d是输出ASCII
%c是输出character
  • 打赏
  • 举报
回复
http://weste.net/tools/ASCII.asp

ACII码都不知道的话,就查查这个
woaitmac1314 2010-05-01
  • 打赏
  • 举报
回复
注意格式控制符%字母
  • 打赏
  • 举报
回复
郁闷,这都有人问。

%c是输出字符,是6跟0,不解释了。

%d是输出ASCII码,'6'的码值是54,'0'是48.

54-48结果还是6.
54+48结果是102.
xinzaiyiqi 2010-05-01
  • 打赏
  • 举报
回复
6的ASCII码为54,0的ASCII码味48
%d输出字符的ASCII码,当然是6和102了
soulzbg 2010-05-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hairetz 的回复:]
郁闷,这都有人问。

%c是输出字符,是6跟0,不解释了。

%d是输出ASCII码,'6'的码值是54,'0'是48.

54-48结果还是6.
54+48结果是102.
[/Quote]

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧