C语言,我觉得这题没有正确答案??

我认为这题的答案就是一个you!而不是areyou!原因如下:for循环的条件是a[i]!=\0,i=3时确实输出areyou!,但是for循环并没有结束呀,i=7时,输... 我认为这题的答案就是一个you!而不是are you!原因如下:for循环的条件是a[i]!=\0,i=3时确实输出are you!,但是for循环并没有结束呀,i=7时,输出you!,继续i++,直到i=12时,a[i]=\0才结束,所以最后a的值不应该是you!吗? 展开
 我来答
syht2000
高粉答主

2020-08-06 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部
i=3的时候,循环体a会被strcpy内容改为are you!
此时循环未结束,i++后i变为4,而are you!的第4个元素是y,后面都没有空格了,所以strcpy不会再运行了,最终结果还是are you!
注意,最后i的值是7,而不是你说的12,因为a已经被第一次的strcpy改变了内容。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
人类请多笑一笑
2020-08-06 · 分享动物们的雷人日常。如有侵权,私信立删!
人类请多笑一笑
采纳数:368 获赞数:1080

向TA提问 私信TA
展开全部
当:
i=3 a[3]=空格时,执行字符串复制
a="are you!"
下一次循环开始:
i=4 a[4]=y
下次循环:
i=5 a[5]=o
类推直到:
i=8 a[8]=字符串结束标志,整个循环结束.
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2020-08-06
展开全部
这个程序的功能是从baii=0开始循环,顺序读取字符,当字du符为空格时zhi,就把空格后面的所有字dao符(直到'\0')复制到开始的地址,然后令i=0,再次从开始顺序读取字符,以此类推。
第一次循环到How后面的空格,把后面的are you!复制到开始的地址,i=0,再从开始执行循环。此时a变成are you!
第二次循环到are后面的空格,把后面的you!复制到开始的地址,i=0,再从开始执行循环。此时a变成you!
后面没有空格了,输出字符串。就是you!
&a[i+1]是每次循环后空格后面第一个字符的地址,每次都从这个地址开始,把以后的所有字符复制到开始的地址。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式