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

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


★☆题目36(无忧id 5 字符替换题)

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

  替代关系:f(p)=p*11 mod 256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)值小于等于32或f(p)对应的字符是数字0至9,则该字符不变,否则将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]*11%6<=32||xx[i][j]*11%6>=0&.&.xx[i][j]*11%6<=9) continue.

else xx[i][j]=xx[i][j]*11%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("ps6.dat","w").

for(i=0.i

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

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

}

fclose(fp).

}

或另一解法:

void encryptChar()

{ int i,j,val.

for(i=0.i

for(j=0.j

{ val=xx[i][j]*11%6.

if(val<=32||val>=0&.&.val<=9) continue.

else xx[i][j]=val.

}

}

此题还有许多解法,方法可看题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语言上机题库(三十四)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛