2006年9月全国等级考试三级c语言上机题库(六十二)

文章作者 100test 发表时间 2007:03:10 19:15:41
来源 100Test.Com百考试题网


题目62(无忧id 9 字符替换题)

无忧id 9 题条件微有不同,解法在后面给出

函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS2.DAT中。

  替代关系:f(p)=p*13 mod 256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)值小于等于32或其ASCII值是偶数,则该字符不变,否则将f(p)所对应的字符进行替代。

  部分源程序存在文件prog1.c中。原始数据文件存放的格式是:每行的宽度均小于80个字符。

  请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。

#include

#include

#include

#include

unsigned char xx[50][80].

int maxline=0./*文章的总行数*/

int ReadDat(void).

void WriteDat(void).

void encryptChar()

{ int i,j.

for(i=0.i

for(j=0.j

if(xx[i][j]*13%6<=32||(xx[i][j]*13%6)%2==0) continue.

else xx[i][j]=xx[i][j]*13%6.

}

void main()

{

clrscr().

if(ReadDat()){

printf("数据文件ENG.IN不能打开!\n\007").

return.

}

encryptChar().

WriteDat().

}

int ReadDat(void)

{

FILE *fp.

int i=0.

unsigned char *p.

if((fp=fopen("eng.in","r"))==NULL) return 1.

while(fgets(xx[i],80,fp)!=NULL){

p=strchr(xx[i],\n).

if(p)*p=0.

i .

}

maxline=i.

fclose(fp).

return 0.

}

void WriteDat(void)

{

FILE *fp.

int i.

fp=fopen("ps2.dat","w").

for(i=0.i

printf("%s\n",xx[i]).

fprintf(fp,"%s\n",xx[i]).

}

fclose(fp).

}

void encryptChar() /*如果计算后f(p)值小于等于32或原字符ASCII值是偶数*/

{ int i,j.

for(i=0.i

for(j=0.j

if(xx[i][j]*13%6<=32||xx[i][j]%2==0) continue.

else xx[i][j]=xx[i][j]*13%6.

}

此题还有许多解法,方法可看题8



相关文章


2006年9月全国等级考试三级c语言上机题库(六十七)
2006年9月全国等级考试三级c语言上机题库(六十五)
2006年9月全国等级考试三级c语言上机题库(六十三)
2006年9月全国等级考试三级c语言上机题库(六十四)
2006年9月全国等级考试三级c语言上机题库(六十二)
2006年9月全国等级考试三级c语言上机题库(六十一)
2006年9月全国等级考试三级c语言上机题库(六十)
2006年9月全国等级考试三级c语言上机题库(五十九)
2006年9月全国等级考试三级c语言上机题库(五十八)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛