以下程序的输出结果是 includeincludemain(){charb1[8]="abcdefg",b2[8],*以下程序的输出结果是 #include <stdio.h> #include <string,h> main() { char b1[8]="abcdefg",b2[8],*pb=b1+3; while (--pb>=b1) strcpy(b2,pB) ; printf("%d\n",strlen(b2)); }A.8B.3C.1D.7

题目
以下程序的输出结果是 includeincludemain(){charb1[8]="abcdefg",b2[8],*

以下程序的输出结果是 #include <stdio.h> #include <string,h> main() { char b1[8]="abcdefg",b2[8],*pb=b1+3; while (--pb>=b1) strcpy(b2,pB) ; printf("%d\n",strlen(b2)); }

A.8

B.3

C.1

D.7


相似考题
更多“以下程序的输出结果是 #include<stdio.h>#include<string,h>main(){charb1[8]="abcdefg",b2[8],* ”相关问题
  • 第1题:

    有以下程序:include include using namespace std;int main ( ){ char b1[8

    有以下程序: #include <iostream> #include <string> using namespace std; int main ( ) { char b1[8] = "abcdefg"; char b2[8],*pb=b1+3; while (--pb>=b1) strcpy (b2, Pb) ; cout<<strlen (b2) <<end1; return 0; } 程序运行后的输出结果是( )。

    A.8

    B.3

    C.1

    D.7


    正确答案:D
    解析:本题考查常用字符串函数的熟悉程度。先来了解程序中的两个字符串函数:①函数strcpy()的函数原型为:char*strcpy(char*strDest,constchar*strSrC);,其功能是复制strSrc所有字符到strDest,并返回strDest。②函数strlen()的函数原型为:sizetstrlen(constchar*string);,其函数功能为:返回string的长度,不包括结束字符'\0'。再看程序:程序首先定义了一个字符数组b1和一个指针pb,并让指针pb指向数组中的b1[3]。由于在while语句中,每次循环都是把指针pb所指向的字符串复制到数组b2中,所以可以不考虑循环的中间过程,直接分析最后一次循环。循环体中的最后一次循环条件是pb==b1,即指针pb指向了数组元素b1[0],此时把指针pb所指向的字符串复制到数组b2中,就相当于把数组b1中的字符串复制到数组b2中。所以最后数组b2中保存的就是数组b1中的字符串,其长度为7(不包括字符串结束符号'\0')。

  • 第2题:

    以下程序的输出结果是includeincludemain(){ char b1[8]=“abcdefg”,b2[8],

    以下程序的输出结果是 #include<stdio.h> #include<string.h> main() { char b1[8]=“abcdefg”,b2[8],*pb=b1+3; while(--pb>=b1)strcpy(b2,pb) ; printf(“%d\n”,strlen(b2)); }

    A.8

    B.3

    C.1

    D.7


    正确答案:D
    解析:strcpy()函数的作用是把第二个参数代表的字符串,复制到第一个参数指向数组中。首先定义了两个字符数组b1和b2,并用一个字符串给b1赋初值,然后定义了一个字符型指针变量pb,通过赋初值使它指向b1[3]。接着执行while循环,该循环执行了3次:第一次判断条件“--pb>=b1”,使pb的值为“b1+2”,执行“strcpy(b2,pb);”后,b2中的内容为“cdefg”;第二次判断条件“--pb>=b”,使pb的值为“b1+1”,执行“strcpy(b2,pb);”后b2的内容为“bcdefg”第三次判断条件“--pb>:b1”使pb的值为“b1”,执行“strcpy(b2,pb);”后b2的内容为“abcdefg”。最后输出b2数组中存放的字符串长度,显然是7。(这里还有一个关键点:就是每当执行一次while循环判断条件,就执行一次“--pb”,使得指针pb自减1,即前移一位)。

  • 第3题:

    23、下面程序执行后的输出结果是()。 #include <stdio.h> #include <string.h> int main() { char b1[8]="abcdefg",b2[8],*pb=b1+3; while (--pb>=b1) strcpy(b2,pb); printf("%d",strlen(b2)); return 0; }

    A.7

    B.8

    C.3

    D.1


    A

  • 第4题:

    有以下程序includ2includemain(){ char b1[8]="abcdefg",b2[8],*pb=b1+3,w

    有以下程序 #includ2<stdio.h> #include<string.h> main() { char b1[8]="abcdefg",b2[8],*pb=b1+3, while(--pb>b1)strcpy(b2,pB) ; printf("%d\n",strlen(b2)); } 程序运行后的输出结果是( )

    A.8

    B.3

    C.1

    D.6


    正确答案:D

  • 第5题:

    以下程序的输出结果是【 】。includeincludechar*fun(char*t){ char *p=t;retur

    以下程序的输出结果是【 】。

    include <stdio.h>

    include <string.h>

    char *fun(char *t)

    { char *p=t;

    return (p+strlen(t)/2);

    }

    main()

    { char *str="abcdefgh";

    str=ftm(str);

    puts(str);

    }


    正确答案:
    efgh 解析:本题考查的知识点是:字符指针。题目中的fun()函数,通过strlen()库函数得到形参t所指字符串的长度。然后返回t所指字符串首地址值加上该长度值的一半。所以fun()函数的作用就是返回所给字符串的中间位置。故最后通过puts()输出的字符串为"efgh"。