C语言,求过程。 10

15.下列程序执行后的输出结果是()。main(){chararr[2][4];strcpy(arr,"you");strcpy(arr[1],"me");arr[0][... 15.下列程序执行后的输出结果是 ( )。
main()
{ char arr[2][4];
strcpy(arr,"you"); strcpy(arr[1],"me");
arr[0][3]='&';
printf("%s \n",arr);
}
(A) you&me (B) you (C) me (D) err
展开
 我来答
大反派小花6Q
2020-03-13 · TA获得超过139个赞
知道小有建树答主
回答量:208
采纳率:75%
帮助的人:42.2万
展开全部
arr指的就是arr[0],因此第一个strcpy是吧"you"赋值进arr的第一个字符串中,而第二个strcpy是吧"me"赋值进arr的第二个字符串中。
随后的arr[0][3]则是arr的第一个字符串中的第三个字符。
最后输出就是输出arr的第一个字符串,
但是在arr[0][3]='&'执行之前arr在内存中是这样的(其中arr也就是arr[0]指向的是字符'y',arr[1]指向的是字符'a',二维数组在内存中也是呈线性排布的):
'y' 'o' 'u' '\0' 'a' 'n' 'd' '\0'
执行完arr[0][3]='&'后arr则变成了
'y' 'o' 'u' '&' 'a' 'n' 'd' '\0'
最后printf函数在输出字符串的时候是从首地址开始循环输出字符直到遇到'\0'为止,由于字符串"you"的结束符'\0'被'&'覆盖了,因此printf在输出完"you"之后并不会停止,而是输出完整个"you&me"
百度网友8b58de0
2020-03-13 · TA获得超过945个赞
知道小有建树答主
回答量:1079
采纳率:83%
帮助的人:327万
展开全部
该选择题答:A
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式