#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+55;
p++;
a=a/5;
}while(a>0);
*p='\0';
puts(s);
}
答案C51 请帮我解释一下 谢谢!
參考答案:要知道p实际上是s的首地址,也就是第一个字符的地址
第一次b=a%16=12>10
b+48=60,在ASCII表里对应的字符C,因为p是char,所以输出C,p++,p指向第二个字符
依次往下
最简单的方法是调试,看它的变量值的提示。
实际上输出的是字符,51不是数字