问题 单项选择题

有以下程序#include 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.209

B.99

C.2011

D.1111

答案

参考答案:C

解析:函数strlen()返回的是数组的实际长度,而sizeof返回的是数组定义的总长度。因为字符数组p[20]定义为20字节长度,所以sizeof(p)的值为20。"strcpy(p+strlen(q),r);"语句的功能把字符数组r拷贝到字符数组p从p[3]开始到p[7]的位置中,这时字符数组p的有效字符长度为8。然后再执行"streat(p,q);"语句(字符串连接),即把字符数组q连接到字符数组p后面,这时字符数组p的有效长度为11。

单项选择题
多项选择题