写出下面程序的输出结果

habike 2012-05-23 12:01:31
#include <stdio.h>
void main()
{
char a='2',b='a';
int c;
c=a+b;
a=c;
printf("%c %c %d\n",a,b,c);
}
...全文
128 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengleisend 2012-05-23
  • 打赏
  • 举报
回复
2的ASC码是34,,字符a的ASC码是97,c的值实际上是2和a的ASC码值之和,然后你将c值赋给了a,而a是字符型,所以现在找的是131对应的ASC 码的值,实际上ASC码的值范围是0~127.所以出现了错误
youkuxiaobin 2012-05-23
  • 打赏
  • 举报
回复
c=a+b // a的ascii是50 b的ascii是97 c的值就是147

147是一个特殊字符显示不出来
habike 2012-05-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

你看一下字符2的ASC码
[/Quote]
十进制 50
十六进制 32
松哥是好人 2012-05-23
  • 打赏
  • 举报
回复
你看一下字符2的ASC码
habike 2012-05-23
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
#include <stdio.h>
void main()
{
char a='2',b='a';
int c;
c=a+b;
a=c;
printf("%c %c %d\n",a,b,c);
}
[/Quote]
结果是?a 147怎么算的?
habike 2012-05-23
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

没关系的 ,两个a不一样的
[/Quote]
嗯,这样就好理解了(*^__^*) 嘻嘻……
fengleisend 2012-05-23
  • 打赏
  • 举报
回复
没关系的 ,两个a不一样的
habike 2012-05-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

c=a+b // a的ascii是50 b的ascii是97 c的值就是147

147是一个特殊字符显示不出来
[/Quote]
也就是说b='a'里的那个a和前边的a='2'的a没关系是么?我就是不敢确定这一点

69,369

社区成员

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

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