char ch;
strl=strlen(s); /*求字符串的长度*/
  ch=*s;                     /*将第一个字符暂赋给ch*/   for(i=0;i   *(s+strl-1)=ch;          /*将第一个字符移到最后*/ }   76.函数readDat()实现从文件IN76.DAT中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。请编制函数jsSort(),其功能是:以行为单位对字符串变量下标为奇数位置上的字符按其ASCii值从小到大的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT76.DAT中。 例如:位置:          0     1     2     3     4     5     6     7       源字符串:      h     g     f      e     d     c     b     a          则处理后字符串:h     a     f      c     d     e     b     g  注意:部分源程序已给出。请勿改动主函数main()、读数据函数readDat()和输出数据函数writeDat()的内容。 【参考答案】 void jsSort() {    int i,j,k,strl;   char ch;    for(i=0;i<20;i++)   {      strl=strlen(xx[i]);     for(j=1;j          { ch=xx[i][j]; xx[i][j]=xx[i][k]; xx[i][k]=ch; }   } }   77.函数readDat()实现从文件IN77.DAT中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。请编制函数jsSort(),其功能是:以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT77.DAT中。  条件:从字符串中间一分为二,左边部分按字符的ASCii值降序排序,排序后左边部分与右边部分进行交换。如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上。  例如:位置:          0   1   2   3   4   5   6   7   8 源字符串:      a   b   c   d   h   g   f    e                        1   2   3   4   9   8   7   6   5 则处理后字符串:h   g   f   e   d   c   b   a                        8   7   6   5   9   4   3   2   1  注意:部分源程序已给出。请勿改动主函数main()、读数据函数readDat()和输出数据函数writeDat()的内容。 【参考答案】 void jsSort() {    int i,j,k,strl,half;   char ch;    for(i=0;i<20;i++)   {      strl=strlen(xx[i]);     half=strl/2;      for(j=0;j          { ch=xx[i][j]; xx[i][j]=xx[i][k]; xx[i][k]=ch; }     for(j=half-1,k=strl-1;j>=0;j--,k--)        { ch=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=ch;}   } }   78.函数readDat()实现从文件IN78.DAT中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。请编制函数jsSort(),其功能是:以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT78.DAT中。  条件:从字符串中间一分为二,左边部分按字符的ASCii值升序排序,排序后左边部分与右边部分进行交换。如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上。  例如:位置:  0   1   2   3   4   5   6   7   8 源字符串:  d   c   b   a   h   g   f    e                4   3   2   1   9   8   7   6   5 则处理后字符串:h   g   f   e   a   b   c   d               8   7   6   5   9   1   2   3   4  注意:部分源程序已给出。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。  【参考答案】 void jsSort() {    int i,strl,half,j,k;   char ch;    for(i=0;i<20;i++)             /*行循环*/   {      strl=strlen(xx[i]);         /*每行长度*/     half=strl/2;      for(j=0;j       for(k=j+1;k           { ch=xx[i][j]; xx[i][j]=xx[i][k]; xx[i][k]=ch;}     for(j=half-1,k=strl-1;j>=0;j--,k--)        {ch=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=ch;}    } }   79.函数readDat()是从文件IN79.DAT中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。请编制函数jsSort(),其功能是:以行为单位对字符串按下面给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中。最后,调用函数writeDat()把结果xx输出到文件OUT79.DAT中。 条件:从字符串中间一分为二,左边部分按字符的ASCii值降序排序,右边部分按字符的ASCii值升序排序。如果原字符串长度为奇数,则最中间的字符不参加排序,字符仍放在原位置上。 例如:位置:  0  1  2  3  4  5  6  7  8 源字符串: a  b  c  d  h  g  f  e 1  2  3  4  9  8  7  6  5  处理后的字符串:d  c  b  a  e  f  g  h 4  3  2  1  9  5  6  7  8  注意:部分源程序已给出。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。  【参考答案】 void jsSort() {    int i,j,k,strl,half;   char ch;    for(i=0;i<20;i++)   {      strl=strlen(xx[i]);         /*求各行字符串的总长度*/     half=strl/2;                 /*求总长度的一半*/     for(j=0;j           { ch=xx[i][j]; xx[i][j]=xx[i][k]; xx[i][k]=ch; }      if(strl%2)                    /*如果原字符串长度为奇数,则最中间的字符不参加排序*/      half++;      for(j=half;j           { ch=xx[i][j]; xx[i][j]=xx[i][k]; xx[i][k]=ch; }   } }   80.函数ReadDat()的功能是实现从文件IN80.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数ConvertCharA(),该函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的下一个字母,如果是字母z,则改写成字母a。大写字母和其他字符不变。把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT80.DAT中。 例如,原文:Adb.Bcdza             abck.LLhj       结果:Aec.Bdeab             bcdl.Llik  原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。  注意:部分源程序已给出。请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。 【参考答案】  void ConvertCharA(void) {    int  i,j,str;    for(i=0;i     str =strlen(xx[i]);    /*求得当前行的字符串的长度*/     for(j=0;j         xx[i][j]='a';      /*如果遇到的字符是小写字母z则改写成小写字母a*/        else if(xx[i][j]>='a' && xx[i][j]<='y')           xx[i][j]+=1;       /*如果该字符是从a到y的小写字母则改写为该字母的下一个字母*/   } }   81.函数ReadDat()的功能是实现从文件IN81.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数CovertCharD(),该函数的功能是:以行为单位把字符串中的所有小写字母改成该字母的上一个字母,如果是字母a,则改成字母z。大写字母仍为大写字母,小写字母仍为小写字母,其他字符不变。把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT81.DAT中。 例如:原文:Adb   Bcdza             abck   LLhj        结果:Aca   Bbcyz             zabj   Llgi  原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。  注意:部分源程序已给出。请勿改动主函数main( )、读函数ReadDat( )和写函数WriteDat( )的内容。 【参考答案】 void CovertCharD() {    int i;