C语言问题 如图

 我来答
金色潜鸟
2018-11-15 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5526万
展开全部
*pb=b1+3; pb指向 d, 所以 pb 是 “defg”
b1[0] 是 'a', b1指向 a
--pb, pb 依次 指向 c..,b...,a... , 直到 指向a...
strcpy(b2,pb); 依次为:cdefg,bcdefg,abcdefg 最终保留 "abcdefg"
输出字符串 "abcdefg" 长度为 7。 故选 D。
程序这样来理解:
char b1[8]="abcdefg",b2[8],*pb=b1+3;
printf("pb=%s\n",pb); // pb=defg
while(--pb>=b1) { strcpy(b2,pb);printf("%s\n",b2);} //依次变化直到 “abcdefg”
printf("%d\n",strlen(b2)); //abcdefg长度为 7
百度网友f319b8f3a
2018-11-15 · TA获得超过405个赞
知道小有建树答主
回答量:635
采纳率:62%
帮助的人:138万
展开全部
由于循环条件导致pb不断减,所以循环结束前b2=pb=b1, 然后pb再减 循环停止。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
White_MouseYBZ
2018-11-15 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6356万
展开全部
D正确,选D。
追问
能详细的讲讲么。谢谢
追答
pb=b1+3;使pb指向了d,--pb指向了c,这时与b1比较也就是与a的指针比较为“真”,执行strcpy(b2,pb);,把defg拷贝到b2里;循环回去--pb指向了c,与b1比较还为“真”,再执行strcpy(b2,pb);,把cdefg拷贝到b2里;……一直到--pb指向a时把abcdefg拷贝到b2里,循环回去--pb到b1前面了,pb>=b1被破坏,跳出循环。所以输出的结果是最后一次拷贝进去的字符串abcdefg的长度,它是7。
——为什么不在提问时说明要“详细过程”?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式