有以下程序: #include<string.h> main() {char p[20]={’a’,’b’,’c’,’d’),q[]="abc",r[]="abcde" strcat(p,r);strcpy(p+strlen(q),

admin2011-06-10  19

问题 有以下程序:    #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",sizeof(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’},然后通过strcpy(p+strlen(q),q),首先在p[0]地址的基础上向后移动三位,然后将q所指字符串的内容复制到p所指的存储空间中,从字符d往后全部覆盖,p[20]={’a’,’b’,’c’,’a’,’b’,’c’}。在输出语句中strlen(p)是求字符串的长度。
转载请注明原文地址:https://kaotiyun.com/show/MCPp777K
0

最新回复(0)