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

admin2020-11-23  29

问题 有以下程序
#include
#include
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、6
B、9
C、11
D、7

答案A

解析 strcat(字符数组,字符串)函数的功能是把"字符串内容"连接到"字符数组"中的字符串尾端,所以语句"strcat(p, r); "执行完毕之后,p中的字符为{?a?, ?b?, ?c?, ?d?, ?a?, ?b?,?c?, ?d?, ?e?}。strcpy(字符数组,字符串)函数的功能是把“字符串”复制到“字符数组”中,将字符数组中原有的内容覆盖,并且添加结束标志??,所以语句“strcpy(p+strlen(q), q);”执行完毕后,p中的字符为{?a?, ?b?, ?c?, ?a?, ?b?, ?c?, ??, ?d?, ?e?}。strlen()计算的是结束标志符之前的字符串长度,所以答案选A。
转载请注明原文地址:https://jikaoti.com/ti/3cD0FFFM
0

最新回复(0)