薄观约取 厚积薄发 断点-影子
}
fclose(fp); }
****************************************************************************** ★题目8(字符替换题)
函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS1.DAT中。
替代关系:f(p)=p*11 mod 256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)值小于等于32或大于130,则该字符不变,否则将f(p)所对应的字符进行替代。(注意中间变量用无符号整型),部分源程序存在文件prog1.c中。原始数据文件存放的格式是:每行的宽度均小于80个字符。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #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>130) 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(\ 断点亡魂 薄观约取 厚积薄发 断点-影子 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(\for(i=0;i fclose(fp); } ****************************************************************************** ★☆题目9(字符串排序题) 函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数SortCharD(),其函数的功能是:以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT2.DAT中。 例:原文:dAe,BfC. CCbbAA 结果:fedCBA. bbCCAA 原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。 部分源程序存在文件prog1.c中。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。 #include int maxline=0;/*文章的总行数*/ int ReadDat(void); void WriteDat(void); void SortCharD(void) {int i,j,k,strl; char ch; for(i=0;i 断点亡魂 薄观约取 厚积薄发 断点-影子 {strl=strlen(xx[i]); for(j=0;j {ch=xx[i][j]; xx[i][j]=xx[i][k]; xx[i][k]=ch;} } } void main() { clrscr(); if(ReadDat()){ printf(\数据文件IN.DAT不能打开!\\n\\007\return; } SortCharD(); WriteDat(); } int ReadDat(void) { FILE *fp; int i=0; char *p; if((fp=fopen(\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(\for(i=0;i fclose(fp); } ***************************************************************************** 断点亡魂 薄观约取 厚积薄发 断点-影子 ★☆题目10(替换字符题) 函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数ConvertCharA(),其函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的下一个字母,如果是字母z,则改写成字母a。大写字母仍为大写字母,小写字母仍为小写字母,其他字符不变。把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT1.DAT中。 例:原文:Adb.Bcdza abck.LLhj 结果:Aec.Bdeab bcdl.LLik 原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。 部分源程序存在文件prog1.c中。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。 #include int maxline=0;/*文章的总行数*/ int ReadDat(void); void WriteDat(void); void ConvertCharA(void) { int i,j; for(i=0;i { for(j=0;j if(xx[i][j]=='z') xx[i][j]='a'; else if(xx[i][j]>='a'&&xx[i][j]<='y') xx[i][j]+=1; } } void main() { clrscr(); if(ReadDat()){ printf(\数据文件IN.DAT不能打开!\\n\\007\return; } ConvertCharA(); WriteDat(); } int ReadDat(void) { FILE *fp; int i=0; char *p; if((fp=fopen(\ 断点亡魂 薄观约取 厚积薄发 断点-影子 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; clrscr(); fp=fopen(\for(i=0;i fclose(fp); } ☆题目11(字符串字母移位题) 程序prog1.c的功能是:把 s 字符串中的所有字母改写成该字母的下一个字母,字母z改写成字母a。要求大写字母仍为大写字母,小写字母仍为小写字母,其它字符不做改变。 请考生编写函数chg(char *s)实现程序要求,最后调用函数readwriteDAT( )从in.dat文件中读取50组数据,把结果输出到文件bc1.out中。 例如:s 字符串中原有的内容为:Mn.123Zxy,则调用该函数后,结果为:No.123Ayz。 注意:部分源程序存在文件prog1.c文件中。 请勿改动主函数main( )和输出数据函数readwriteDAT()的内容。 #include void readwriteDAT(); void chg(char *s) { while (*s) { if (*s=='z' || *s=='Z') *s -= 25; 断点亡魂