C语言问题

[复制链接]
查看11 | 回复3 | 2008-11-26 14:44:36 | 显示全部楼层 |阅读模式
为什么输出结果是C51
# include
main()
{int a=28,b;
char s[10],*p;
p=s;
do{b=a%16;

if(b0);

*p='\0' ;

puts(s);
getch();
return 0;
}

回复

使用道具 举报

千问 | 2008-11-26 14:44:36 | 显示全部楼层
进入循环3次:第一次b=12,执行*p=b+55后*p为67,也就是字母c的ASCII码值,此时a=5;a=5大于0,第二次循环,b=5,执行*p=b+48为53,也就是数字5的ASCII码值,此时a=1;a=1大于0,第三次循环,b=1,执行*p=b+48为49,也就是数字1的ASCII码值。所以p为c51了...
回复

使用道具 举报

千问 | 2008-11-26 14:44:36 | 显示全部楼层
void main() { int a=28,b; char s[10],*p; p=s; do{ b=a%16; /*第一次:b的值为12(取余)*/ /*第二次:b的值为5(取余)*/ /*第三次:b的值为1(取余)*/ if(b<10) *p=b+48; /*第二次:*(p+1)为53,转换成字符为“5”,即s[...
回复

使用道具 举报

千问 | 2008-11-26 14:44:36 | 显示全部楼层
wolf7917回答的不错...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行