[问题已解决][求助]程序运行的结果
#include <stdio.h>main()
{ int a=28,b;
char s[10],*p;
p=s;
do { b=a%16;
if (b<10) *p=b+48;
else *p=b+48;
p++;
a=a/5;
}
while (a>0);
*p='0';
puts(s);
}
第一次,b=12 if条件不满足,*p=67,指针p指向s[1],a=5,while条件满足
第二次,b=5, if条件满足,*p=53,指针p指向s[2], a=1,while 条件满足
第三次,b=1, if条件满足, *p=49,指针p指向s[3],a=0,跳出循环
然后*p=‘0’;再执行puts(s);
那为什么答案是:<510 (书上的答案是:C51)
我有点不明白
[此贴子已经被作者于2006-8-1 9:16:16编辑过]
----------------解决方案--------------------------------------------------------
第一次,指针指向s[0],首先,a%16=12,12>10因此执行*p=b+48;
*p=60对就的ASCILL码值是'<'符号以此类推即可,这种题就该主要是ASCII码问题
----------------解决方案--------------------------------------------------------
恩,明白了,3Q
----------------解决方案--------------------------------------------------------