单选题
有以下程序:
#include
void f(char *s,char *t)
{ char k;
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);
}
程序运行后的输出结果是______。
【正确答案】
B
【答案解析】本程序的作是将字符串str倒序。语句“p=str+strlen(str)/2+1;”用于将指针变量p指向e字符所在的存储 单元,p-2指向了c字符所在的存储单元,在函数f中将这两个存储单元的内容交换,并使得f函数中指向e字 符的指针变量s加1。指向c字符的指针变量t减1,然后继续将s和t指向的存储单元的内容进行交换,直到s指 向的存储单元的内容为空为止。所以本题程序输出的结果是字符串“abcdefg”的倒序形式“gfedcba”。