有以下程序:
#include <string.h>
main()
char p[20]='a','b','c','d',q[]="abc",r[]="abcde";
strcat(p,r);strcpy(p+strlen(q),q);
printf("%d\n",strlen(p));
程序运行后的输出结果是
A) 9
B) 6
C) 11
D) 7
参考答案:B
解析: 本题考查的是用于字符串处理的函数。题目中首先通过strcat(p,r)将r所指字符串的内容连接到p所指的字符串后面,p[20]={'a','b','c','d','a','b','c','d','e'}。然后通过p+strlen(q)在数组元素p[0]地址的基础上向后移动3位,再将q所指字符串的内容复制到p所指的存储空间中,从字符“d”往后全部覆盖,p[20]={'a','b','c','a','b','c'}。在输出语句中strlen(p)是求字符串的长度,值为6。