C语言题?
下面程序运行后,输出结果是___()__。main(){chars[]="father";inti,j=0;for(i=1;i<6;i++)if(s[j]>s[i])j=...
下面程序运行后,输出结果是___( )__。
main()
{ char s[ ]="father";
int i,j=0;
for(i=1;i<6;i++)
if(s[j]>s[i]) j=i;
s[j]=s[6];
printf("%s\n",s);
}
A、 f
B、 fa
C、 frther
D、 fath 展开
main()
{ char s[ ]="father";
int i,j=0;
for(i=1;i<6;i++)
if(s[j]>s[i]) j=i;
s[j]=s[6];
printf("%s\n",s);
}
A、 f
B、 fa
C、 frther
D、 fath 展开
3个回答
展开全部
答案选A,因为数组是从零开始计算的,所以最后一位的索引是5,那么s[6]就为表示空的字符。当s[j]>s[i]的时候,j=i,因为f>a,所以,j=1,所以s[1]=空的。空的跟有值的比较都是空的小,所以只剩一个s[0]=f。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
选A
字符串结尾默认有一个"\0”,在这个字符串中就是位于s[6]的位置
根据程序,就是将"\0”挪到a的位置,这样打印的时候认为在"\0”处结束,所以只有f
字符串结尾默认有一个"\0”,在这个字符串中就是位于s[6]的位置
根据程序,就是将"\0”挪到a的位置,这样打印的时候认为在"\0”处结束,所以只有f
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询