参考答案和解析
正确答案:C
在本题中,程序段首先定义了字符型指针变量p,并使其指向一个字符串,然后将指针变量p加3,即使其指向字符串的第四个元素。然后执行输出语句,通过输出语句的输出格式我们可以知道,最后输出的是一个十进制数的整型数值,其输出列表为strlen(strcpy(P,″ABCD″))。这就要求我们了解strlen函数和strcpy函数的作用。
strcpy的调用格式是:strcpy(目的地址,源地址),其功能是把源地址的字符串复制到目的地址中,这种复制将覆盖原来的字符串。strcat函数的功能是将源地址的字符串复制到目的地址字符串的后面。
strlen的调用格式是:strlen(字符串地址),其功能是返回字符串中字符的个数。
那么程序中执行strcpy(P,″ABCD″)后指针变量p所指向的字符串为“ABCD”,该字符串中字符的个数为4,那么执行strlen后,程序最终输出的结果是4。因此本题正确的答案是C。
更多“下面程序段的运行结果是char *p="abcdefgh";p+=3;printf("%d\n",strlen(strcpy(P,"ABCD"))); A.8 ”相关问题
  • 第1题:

    有以下程序: point(char *p) { p+=3; } main() { char b[4]={'a','b','c','d'}, *p=b; point(p); printf("%c\n",*p); } 程序运行后的输出结果是( )。

    A.a

    B.b

    C.c

    D.d


    正确答案:A
    解析:本题的函数只是改变了形参指针变量p的值,这对程序没有任何影响,主函数中p一开始就是指向b[0],最后输出时还是b[0]的值'a'。所以应该选择A。

  • 第2题:

    有以下程序: point(char *p){P+=3;) main() { char b[4]={'a','b','c','d'},*p=b; point(p);printf("%c\n",*p); } 程序运行后的输出结果是( )。

    A.a

    B.b

    C.c

    D.d


    正确答案:A
    解析:本题的考点是C语言的函数参数的传递方式(传值)。函数poret的形参是一个char型指针p,当调用point(p)时,将指针p的值传递给形参,函数point中的p+=3,并不影响主程序main中的p值,因此函数调用结束后,p仍指向b的首地址,输出*p的值应是字符a。

  • 第3题:

    下面程序段的运行结果是( )。 char*p="abcdefgh"; p+ =3; printf("%d\n",stfien(strcpy(p,"ABCD")));

    A.8

    B.12

    C.4

    D.7


    正确答案:C
    解析:p+=3使指针p指向字符"d",函数strcpy的功能是把后面的字符串复制到p指针指向的空间;strlen函数的功能是求字符串的长度,并返回字符个数,不计最后的"\0"。本题结果为4,即字符串“ABCD”的长度。

  • 第4题:

    下面程序段的运行结果是 char *p="abcdefgh"; p+=3; printf("%d\n",strlen(strcpy(p,"ABCD")));

    A.8

    B.12

    C.4

    D.7


    正确答案:C
    解析: 本题考查两个知识点:strlen函数的功能是求字符串的长度,并返回字符个数,不计最后的'\0',strcpy函数的功能是把后面的字符串复制到前面字符串所指向的空间。

  • 第5题:

    以下程序段的输出结果是______。 char *p="abodefgh"; p+=3; printf("%d\n",strlen(strcpy(p,"12345")));

    A.8

    B.12

    C.5

    D.7


    正确答案:C
    解析:本题主要考查strcpy()函数,char*strcpy(char*s1,char*s2)是把指针s2指向的串复制到指针s1指向的存储空间。