7. 有以下程序 #include <stdio.h>#include <string.h>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)); }程序运行后的输出结果是( C )。 A)20 9 B) 9 9 C) 20 11 D)11 11详细解释不懂得不要瞎答
strlen函数表示字符串的长度,strlen(q)=3,p+strlen(q)表示从p+3处开始复制,即C处;strcpy(p+strlen(q),r)表示将r从p的‘c’处开始复制,结果为“abcabcde";strcat(p,q)表示将字符串q连接到字符串p后面,新的字符串p为"abcabcdeabc";sizeof(p)判断字符串的长度,为20;strlen(p)判断字符串实际长度,为11;