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

admin2009-03-17  37

问题 有以下程序    #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

解析 函数strlen()返回的是数组的实际长度,而sizeof返回的是数组定义的总长度。因为字符数组p[20]定义为20字节长度,所以sizeof(p)的值为 20。“strcpy(p+strlen(q),r);”语句的功能把字符数组 r拷贝到字符数组p从p[3]开始到p[7]的位置中,这时字符数组p的有效字符长度为8。然后再执行"strcat (p,q);”语句(字符串连接),即把字符数组q连接到字符数组p后面,这时字符数组p的有效长度为11。
转载请注明原文地址:https://kaotiyun.com/show/2YXp777K
0

最新回复(0)