有以下程序:includemain{ char p[20]={a,b,c,d),q[]=abc,r[]=abcde;strcpy(p+strlen(q),r);
有以下程序:
include
main
{ char p[20]={a,b,c,d),q[]="abc",r[]="
abcde";
strcpy(p+strlen(q),r);strcat(p,q);
printf("%d%d\n",sizeof(p),strlen(p));
}
程序运行后的输出结果是( )。
A.20 9
B.9 9
C.20 11
D.11 11
正确答案:C在主函数中,首先定义一个包含20个元素的字符数组P,执行语句“strcpy(P+strlen(q),r);”,数组P的内容变为{a,b,C,a,b,c,d,e,\0,\0,\0,\0,\0,\0,\0,\0,\0,\0,\0,\0),执行语句“strcat(P,q);”,数组P的内容变为,a,b,c,a,b,C,d,P,a,b,c,\0,\0,\0,\0,\0,\0,\0,\0),函数sizeof(P)是求数组P的大小,返回20,而函数strlen (p)是计算以P所指起始地址的字符串的长度,这一长度不
词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。