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

admin2013-02-23  36

问题 以下程序的输出结果是    #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

答案8

解析 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,即前移一位)。
转载请注明原文地址:https://kaotiyun.com/show/m4Pp777K
0

随机试题
最新回复(0)