南开计算机等级考试上机100题(三级)
1.函数ReadDat()从文件ENG中读取一篇英语文章。并将它存储在字符串数组xx中;请编译encryptChar()函数,根据给定的替换关系替换数组xx中的所有字符,仍然存储在数组xx的相应位置。最后,调用函数WriteDat()将结果xx输出到文件PS10。DAT
替换关系:f(p)=p*11 mod 256 (p为数组中某个字符的ASCII值,f(p)为计算后新字符的ASCII值)。如果原字符的ASCII值为偶数或者计算出的f(p)值小于等于32,则该字符保持不变,否则f(p)对应的字符将被替换。已经给出了部分源程序,原始数据文件的格式为:每行宽度小于80个字符。不要改变主函数()的内容,读取数据函数ReadDat()和输出数据函数WriteDat()。
#包括
#包括
#包括
#包括
无符号字符xx[50][80];
int maxline = 0;/*文章的总行数*/
int ReadDat(void)
void WriteDat(void)
void encryptChar()
{ int i,j;
char * p;
for(I = 0;I = ' A ' & & xx[j]= ' 0 ' & & p = ' A ' & & p = ' 0 ' & & xx[j]= ' A ' & & xx[j]= ' A ' & & p130)
;
else xx[j]= p;} }
11.函数ReadDat()从文件in.dat中读取20行数据,存储在字符串数组xx中(第一行字符串长度小于80)。请编译函数jsSort(),它的作用是以行为为单位按照给定的条件对字符串进行排序,排序后的结果仍然逐行存储在字符串数组xx中。最后,调用函数WriteDat()将结果xx输出到文件out.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 function()、ReadDat()和WriteDat()的内容。
#包括
#包括
#包括
char xx[20][80];
void jsSort()
{ int i,j,k,m;
char c;
for(I = 0;ixx[m])
{ c = xx[j];
xx[j]= xx[m];
xx[m]= c;}
for(j = 0;jxx[m])
{ c = xx[j];
xx[j]= xx[m];
xx[m]= c;} }
}
0条评论