选择题 29.  以下函数实现的功能是
    void fun(char*s)
    {
    char*p,*q,temp;
    p=s;
    q=s+strlen(s)-1;
    while(p<q)
    {
      temp=*p;
      *p=*q;
      *p=temp;
      p++;
      q--;
      }
    }
【正确答案】 A
【答案解析】 本题考核while循环语句和指针的使用。在该函数中,循环开始时,指针p指向字符串的第1个字符,指针q指向字符串的最后一个字符,首先交换这两个字符:然后,指针p前进一个字符位置(指向下一个字符),指针q后退一个字符位置(指向前一个字符);经过若干次循环,条件p<q将为假(即指针p和指针q相遇),循环结束。从而实现了将一个字符串首尾颠倒的功能。