第1个回答 2008-09-08
C)20 11
sizeof(p) == 20 -- 因为声明 char p[20],所以有20个char, 也就是 20个bytes.
strcpy(p+strlen(q),r);
strlen(q) == 3,
p+strlen(q) r考入位置在p[3],变abcabcde
strcat(p,q); 后面再添q,变abcabcdeabc,字符串长度 11 个字符
所以 strlen(p) == 11
第2个回答 2008-09-08
C
#include <sting.h>
main()
{ char p[20]={'a','b','c','d'},q[]="abc",r[]="abcde";
strcpy(p+strlen(q),r); //strlen(q)=3,p+3处的字符是d,所以此操作会将d擦除,p指向的字符串为:abcabcde
strcat(p,q); //简单的字符连接 此时p指向:abcabcdeabc
printf("%d %d\n",sizeof(p),strlen(p)); //sizeof(p)为数组的大小20,strlen为字符串的长度,abcabcdeabc 长度为11 注意 不包括'\0'
}本回答被提问者采纳