C语言程序阅读题? 20

后面的是printf(“%s\n”,s)请问程序输出的是什么为什么... 后面的是printf(“%s\n”,s)请问程序输出的是什么为什么 展开
 我来答
帐号已注销
2020-02-18 · TA获得超过318个赞
知道小有建树答主
回答量:345
采纳率:90%
帮助的人:89.2万
展开全部

这个程序有BUG,执行时极可能报告段错误(segmentation fault)。

错误原因在于:指针p没有初始化。

---

如果:char s[] = "123456789", *p, i = 0;

改为:char s[] = "123456789", *p = s, i = 0; 

那么:程序输出结果为:*2*4*6*8*

原因:

当i = 0,2,4,6,8时,if条件i%2 == 0为真,故执行*p=‘*’,即修改数组s的第0,2,4,6,8个元素值为‘*’,亦即将1、3、5、7、9修改为*。

mimiba212
2020-02-18 · TA获得超过413个赞
知道小有建树答主
回答量:1504
采纳率:64%
帮助的人:85.8万
展开全部
首先这个程序有问题,*p没有初始化。
改成:*p=s,让p指向s的首地址才可以运行。
运行结果是:*2*4*6*8
原因是:i为偶数时,把s中对应位置的值替换成*
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
霍工clody
2020-02-18 · TA获得超过7073个赞
知道小有建树答主
回答量:1291
采纳率:80%
帮助的人:235万
展开全部
这个程序不完整,后面缺少个大括号收尾,后边是不是还有内容。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式