#include <stdio.h> void main() { int a=28,b; char s[10],*p; p=s; do { b=a%16; if(b<10) *p=b+48; el

#include<stdio.h>voidmain(){inta=28,b;chars[10],*p;p=s;do{b=a%16;if(b<10)*p=b+48;else... #include <stdio.h>
void 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);
}
运行结果是什么
展开
 我来答
紫薇参星
科技发烧友

2021-06-27 · 有一些普通的科技小锦囊
知道大有可为答主
回答量:5983
采纳率:92%
帮助的人:3510万
展开全部

你给的C语言程序有一个错误,*P='\0';P应该小写,应该改成*p='\0';

改正后的程序的运行结果是C51

完整的程序和运行过程解析如下

#include <stdio.h>

void 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);

}

运行过程解析

因为a==28,p=s,p指向s[0],进入while循环,b=28%16=12,b>10,*p=12+55=67,所以s[0]=='C'(ascii码67),p++,p指向s[1],a=a/5=5

a==5,a>0,继续while循环,b=5%16=5,b<10,*p=5+48=53,所以s[1]=='5'(ascii码53),p++,p指向s[2],a=5/5=1

a==1,a>0,继续while循环,b=1%16=1,b<10,*p=1+48=49,所以s[2]=='1'(ascii码49),p++,p指向s[3],a=1/5=0

a==0,退出while循环,*p='\0',所以s[3]=='\0'(字符串结束符),输出字符数组s,因此运行结果是C51

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式