问答题 1.  请编一个函数fun(char *str),该函数的功能是:把字符串的内容逆置。
    例如,原有的字符串为asdfg,则调用该函数后,字符串的内容为gfdsa。
    请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
    试题程序:
    #include <string.h>
    #include <conio.h>
    #include <stdio.h>
    #define N 100
    void fun(char *str)
    {
    }
    void main()
    {
    char a[N];
    FILE *out;
    printf("Enter a string:");
    gets(a);
    printf("The original string is:");
    puts(a);
    fun(a);
    printf("The string after modified:");
    puts(a);
    strcpy(a, "Welcome!");
    fun(a);
    out=fopen("outfile. dat","w");
    fprintf(out,"%s",a);
    fclose(out);
    }
【正确答案】char ch;
   int i,m,n;
   i=0;
   m=n=strlen(str)-1;  //求字符串str的长度
   while(i<(n+1)/2)  //循环逆置交换
   {
   ch=str[i];
   str[i]=str[m];
   str[m]=ch;
   i++;
   m--;
   }
【答案解析】 在fun()函数中,首先求行字符串的长度,然后通过循环进行字符交换。要注意的是,如果字符串的长度是奇数,则最中间的元素在逆置前后的位置没有改变。