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

admin2011-06-13  22

问题 有以下程序:    #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));    }    程序运行后的输出结果是(       )。

选项 A、20  9
B、9  9
C、20  11
D、11  11

答案C

解析 题目中p+strlen(q)的作用是在数组元素p[0]地址的基础上向后移动三位,然后再将r所指字符串内容复制到p所指的存储空间中,字符d被覆盖,p[20]={’a’,’b’,’c’,’a’,’b’,’c’,’d’,’e’)。然后通过“strcat(p,q);”将q所指的字符串内容连接到p所指的字符串后面,p[20]={’a’,’b’,’c’,’a’,’b’,’c’,’d’,’e’,a’,’b’,’c’,}。在输出语句中strlen(p)是求字符串的长度,值为ll;sizeof(p)用来求数组p占多少字节,值为20。
转载请注明原文地址:https://kaotiyun.com/show/sjPp777K
0

最新回复(0)