全国计算机三级数据库、网络上机题库完整答案 下载本文

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;jxx[i][k])

{ 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;kxx[i][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;jxx[i][k])

{ 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;