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!吗?
展开
3个回答
展开全部
i=3的时候,循环体a会被strcpy内容改为are you!
此时循环未结束,i++后i变为4,而are you!的第4个元素是y,后面都没有空格了,所以strcpy不会再运行了,最终结果还是are you!
注意,最后i的值是7,而不是你说的12,因为a已经被第一次的strcpy改变了内容。
此时循环未结束,i++后i变为4,而are you!的第4个元素是y,后面都没有空格了,所以strcpy不会再运行了,最终结果还是are you!
注意,最后i的值是7,而不是你说的12,因为a已经被第一次的strcpy改变了内容。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
当:
i=3 a[3]=空格时,执行字符串复制
a="are you!"
下一次循环开始:
i=4 a[4]=y
下次循环:
i=5 a[5]=o
类推直到:
i=8 a[8]=字符串结束标志,整个循环结束.
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]是每次循环后空格后面第一个字符的地址,每次都从这个地址开始,把以后的所有字符复制到开始的地址。
第一次循环到How后面的空格,把后面的are you!复制到开始的地址,i=0,再从开始执行循环。此时a变成are you!
第二次循环到are后面的空格,把后面的you!复制到开始的地址,i=0,再从开始执行循环。此时a变成you!
后面没有空格了,输出字符串。就是you!
&a[i+1]是每次循环后空格后面第一个字符的地址,每次都从这个地址开始,把以后的所有字符复制到开始的地址。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询