选择题 31.  有以下程序:
    #include<stdio.h>
    #include<string.h>
    void fun(char*s,int m1,int m2)
    { char t,*p;
    p=s+m1;s=s+m2;
    while(s<p)
    { t=*s;*s=*p;*p=t;
    s++;p--;
    }
    }
    main()
    { char ss[10]="012345678";
    int n=6;
    fun(ss,0,n-1);
    fun(ss,9,n);
    fun(ss,0,9);
    printf("%s\n",ss);
    }
    程序运行后的输出结果是______。
【正确答案】 A
【答案解析】 函数fun(*ss,m1m2)的作用是,如果m1>m2,交换数组元素ss[m1]和ss[m2]。因此执行函数fun(ss,0,5)后,因为0<5,数组ss的元素值还是0,1,2,3,4,5,6,7,8,\0。执行函数fun(ss,9,6),因为9>5,交换数组元素,数组ss的元素值为0,1,2,3,4,5,\0,8,7,6。执行完函数fun(ss,0,9),函数的元素不交换,因此打印结果为012345。故答案为选项A。