大神,这道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)) ; 展开
A. putchar(*p+4) ; B. putchar(*(p+4)) ; C. putchar(a[sizeof(a)-3]) ; D. putchar(*(a+5)) ; 展开
5个回答
展开全部
首先 *p=a+1 应该是p=a+1 吧!
A选项 *p=='r',所以 *p+4 输出的就是字母r后的第四个字母v。 其余三项输出均为a;
C选项 因为系统在字符串后补加了一个’\0‘,所以用sizeof(a)求得的字符数组长度是8,而不是字符串长度7 剩下的就容易看出来了吧!
A选项 *p=='r',所以 *p+4 输出的就是字母r后的第四个字母v。 其余三项输出均为a;
C选项 因为系统在字符串后补加了一个’\0‘,所以用sizeof(a)求得的字符数组长度是8,而不是字符串长度7 剩下的就容易看出来了吧!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
显然为A,A将会输出v
C选项要注意sizeof(a)等于8
C选项要注意sizeof(a)等于8
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
*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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
选A ‘*p’会输出r,那么*p+4会出书r+4 = v,A选项会输出v
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
A *p+4 *p=1 输出‘5’
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询