问答题 在C语言中字符串可以用字符指针来表示,字符串的长度隐含在字符指针所指的字符数组中,通过特殊的字符'\0'判定。写一个递归算法,以字符指针为参数,在屏幕上打印它反转后得到的字符串。
【正确答案】(1)思路
   先递归调用本算法,反转打印除第一个字符外的字符串,再打印出第一个字符即可。
   (2)算法
   void printReVString(char*s){
       if(s[0]=='\0')return;    /*空串*/
       if(s[1]=='\0')putchar(s[0]);    /*只有一个字符,直接打印*/
       else{
           printRevString(s+1);    /*反转打印除第一个字符外的字符串*/
           putchar(s[0]);    /*打印第一个字符*/
       }
   }
   (3)代价分析
   设n为字符串的长度。该算法访问每个字符各一次,时间代价为O(n)。
【答案解析】