问题
单项选择题
有以下程序:
#include<stdio.h>
#include<string.h>
#include
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
答案
参考答案:B
解析: 本程序的作用是将字符串str倒序。语句“p=str+strlen(str)/2+1;”用于将指针变量p指向e字符所在的储存单元,p-2指向了c字符所在的存储单元,在函数f中将这两个存储单元的内容交换,并使得f函数中指向e字符的指针变量s加1。指向c字符的指针变量t减1,然后继续将s和t指向的存储单元的内容进行交换,直到s指向的存储单元的内容为空为止。