下面程序的运行结果是哪一项: #include <stdio.h> main() {char a[]="morning",t; int i,j=0; for(i=1;i<7

下面程序的运行结果是哪一项:#include<stdio.h>main(){chara[]="morning",t;inti,j=0;for(i=1;i<7;i++)if... 下面程序的运行结果是哪一项: #include <stdio.h> main() {char a[]="morning",t; int i,j=0; for(i=1;i<7;i++) if(a[j]<a[i]) j=i; t=a[j];a[j]=a[7]; a[7]=a[j];puts(a); } (A)mogninr (B)mo (C)morning (D)mornin

我运算到for循环结束时,不知道for循环是不是这一部分(for(i=1;i<7;i++) if(a[j]<a[i]) j=i;),循环结束后我计算的结果是i=3,j=2,不知道正不正确,后面的几步就有点看不懂了。。。。。。求详细思路,谢谢
展开
 我来答
帐号已注销
2021-06-10 · TA获得超过77.1万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:165万
展开全部

a这个数组共有7个字母,数组下标为从0到6。

但是作为字符串,还会有一个/0,也就是字符串结束符,这个结束符的下标为7,就是说a[7]就是结束符。

过程是这样的:

第一次循环:

i=1;j=0;

a[i] 为o,a[j]为m,

m小于o,所以把i的值赋给j,此时j=1

第二次循环:

i=2;j=1

a[i]为r a[j]为o

o小于r,所以把i的值赋给j,此时j=2

第三次循环:

i=3;j=2

a[i]为n a[j]为r

n不小于r,所以不赋值。

for循环小括号里第一个“;”

号前为一个为不参与循环的单次表达式,其可作为某一变量的初始化赋值语句, 用来给循环控制变量赋初值; 也可用来计算其它与for循环无关但先于循环部分处理的一个表达式。

“;”号之间的条件表达式是一个关系表达式,其为循环的正式开端,当条件表达式成立时执行中间循环体。

执行的中间循环体可以为一个语句,也可以为多个语句,当中间循环体只有一个语句时,其大括号{}可以省略,执行完中间循环体后接着执行末尾循环体。

以上内容参考:百度百科-for循环

小熙爱芝K
2021-01-05
知道答主
回答量:4
采纳率:0%
帮助的人:2182
展开全部
a这个数组共有7个字母,数组下标为从0到6。
但是作为字符串,还会有一个/0,也就是字符串结束符,这个结束符的下标为7,就是说a[7]就是结束符。
过程是这样的:
第一次循环:
i=1;j=0;
a[i] 为o,a[j]为m,
m小于o,所以把i的值赋给j,此时j=1
第二次循环:
i=2;j=1
a[i]为r a[j]为o
o小于r,所以把i的值赋给j,此时j=2
第三次循环:
i=3;j=2

a[i]为n a[j]为r

n不小于r,所以不赋值。
第四次循环
...
这样一直执行到最后,得到i=7,j=2。
此时把a[j]的值也就是r赋值给t,
然后把a[7]的值也就是字符串结束符赋值给a[j],就是原来r的位置。
再把a[j]现在的值赋值给a[7]
最后puts字符串的时候,到a[2]就发现字符串结束符了,所以puts就认为a这个字符串为mo
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liu_binq63
推荐于2018-02-28 · TA获得超过1485个赞
知道大有可为答主
回答量:1881
采纳率:0%
帮助的人:2274万
展开全部
B。

a这个数组共有7个字母,数组下标为从0到6。
但是作为字符串,还会有一个/0,也就是字符串结束符,这个结束符的下标为7,就是说a[7]就是结束符。
过程是这样的:
第一次循环:
i=1;j=0;
a[i] 为o,a[j]为m,
m小于o,所以把i的值赋给j,此时j=1
第二次循环:
i=2;j=1
a[i]为r a[j]为o
o小于r,所以把i的值赋给j,此时j=2
第三次循环:
i=3;j=2

a[i]为n a[j]为r

n不小于r,所以不赋值。
第四次循环
...
这样一直执行到最后,得到i=7,j=2。
此时把a[j]的值也就是r赋值给t,
然后把a[7]的值也就是字符串结束符赋值给a[j],就是原来r的位置。
再把a[j]现在的值赋值给a[7]
最后puts字符串的时候,到a[2]就发现字符串结束符了,所以puts就认为a这个字符串为mo
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式