C语言选择题?

43.有以下程序
#include<string.h>
void f(char *s, char *t)
{ char k;
k=*s; *s=*t; *t=k;
s++; t--;
if(*s) f(s,t);
}
main( )
{ char str[10]=“abcdefg”, *p;
p=str+strlen(str)/2 +1;
f(p, p-2);
printf(“%s\n”, str);
}
程序运行后的输出结果是()
(A)abcdefg
(B)gfedcba
(C)gbcdefa
(D)abedcfg

1,strlen(str) = 7
2,p=str[0+4]=e
3,p-2=str[2]=c
4,k=*s; *s=*t; *t=k; abedcfg
5,s++; t--; *s =str[5],*t=str[1] 递归,d左右等距离的内容交换,直到'\0'
6,结果:gfedcba
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-19
c 求满意追问

答案错误! 我需要详细的解答过程答案是B

追答

。。。算了半天还算错了。晕了。