首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

c语言二级考试题,该如何处理

2012-06-11 
c语言二级考试题#includestring.h#includestdio.hvoid main(){char a[]aaaaaa,b[]bbchar *pst

c语言二级考试题
#include<string.h>
#include<stdio.h>
void main()
{
char a[]="aaaaaa",b[]="bb";
char *p;
strcpy(a,b);
for(p=a;p<a+5;p++)
printf("%s/n",p);
}
求高手解答啊
为什么答案是 bb b aaa aa


[解决办法]
strcpy(a,b)是字符串复制函数,他会复制源字符串长度个字符和一个字符串结束符\0
这句执行完毕后,数组a[]={'b','b',0,'a','a','a',0}

当i=0和1时,从a[0]/a[1]处开始显示,遇到0,结束,故为bb,b
当i=2时, 从p 指向 a[2],a[2]=0, 故p是空串,不显示
当i=3和4时,从a[3]/a[4]处开始显示,为aaa和aa
[解决办法]
strcpy()和memcpy()还是不同的,memcpy()不会复制后面的尾0
[解决办法]
#include<string.h>
#include<stdio.h>
void main()
{
char a[]="aaaaaa",b[]="bb";
char *p;
strcpy(a,b);
for(p=a;p<a+7;p++)
printf("%c\n",*p);
}

这样好看些

热点排行