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
展开
 我来答
匿名用户
2020-06-22
展开全部

程序 功能是 在从下标1也就是第二个字符开始,找一个比第一个 也就是 f 更靠前(字母表里)的字符,循环结束 j的值就是 其下标

单词 father 的字母在字母表中最前的 就是 a

最后用 s[6] 即 '\0' 替换

正确答案是 A   f

如果是  feather 呢? 当然程序中的 6---> 7

结果 是 fe

程序小冰

2020-06-22 · 程序爱好者,与诸位共同进步
程序小冰
采纳数:340 获赞数:480

向TA提问 私信TA
展开全部
答案选A,因为数组是从零开始计算的,所以最后一位的索引是5,那么s[6]就为表示空的字符。当s[j]>s[i]的时候,j=i,因为f>a,所以,j=1,所以s[1]=空的。空的跟有值的比较都是空的小,所以只剩一个s[0]=f。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
莹纱之梦
2020-06-22 · TA获得超过3753个赞
知道大有可为答主
回答量:1543
采纳率:82%
帮助的人:239万
展开全部
选A
字符串结尾默认有一个"\0”,在这个字符串中就是位于s[6]的位置
根据程序,就是将"\0”挪到a的位置,这样打印的时候认为在"\0”处结束,所以只有f
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式