大神,这道C语言的题目怎么做?

已知有声明“chara[]="program";*p=a+1;”则执行以下语句不会输出字符a的是A.putchar(*p+4);B.putchar(*(p+4));C.p... 已知有声明“char a[ ]="program" ; *p=a+1; ”则执行以下语句不会输出字符a的是
A. putchar(*p+4) ; B. putchar(*(p+4)) ; C. putchar(a[sizeof(a)-3]) ; D. putchar(*(a+5)) ;
展开
 我来答
yang_
2013-09-12 · 知道合伙人软件行家
yang_
知道合伙人软件行家
采纳数:4 获赞数:22
acm铜奖获得者、视频聊天类app主程、独立app开发者

向TA提问 私信TA
展开全部
首先 *p=a+1 应该是p=a+1 吧!

A选项 *p=='r',所以 *p+4 输出的就是字母r后的第四个字母v。 其余三项输出均为a;
C选项 因为系统在字符串后补加了一个’\0‘,所以用sizeof(a)求得的字符数组长度是8,而不是字符串长度7 剩下的就容易看出来了吧!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pegatemp
2013-09-12
知道答主
回答量:5
采纳率:0%
帮助的人:4.9万
展开全部
显然为A,A将会输出v
C选项要注意sizeof(a)等于8
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
j756416653
2013-09-12
知道答主
回答量:13
采纳率:0%
帮助的人:13.3万
展开全部
*p=a+1(='r'=a[1])这个应该很简单 所以*(p+4)=a[1+4]='a' a[sizeof(a)-3]=a[8-3]='r' *(a+5)=a[5]='r' 所以只有A不是 *p+4=(char)('r'+4)=v
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
0o白井黑子o0
2013-09-13
知道答主
回答量:21
采纳率:0%
帮助的人:8万
展开全部
选A ‘*p’会输出r,那么*p+4会出书r+4 = v,A选项会输出v
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友adf386f
2013-09-12
知道答主
回答量:40
采纳率:0%
帮助的人:15.3万
展开全部
A *p+4 *p=1 输出‘5’
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式