1、计算机三级数据库技术(上机操作)机试模拟试卷 58及答案与解析 一、程序设计题 1 函数 ReadDat()实现从数据文件 in dat巾读取一篇英文文章,存入到无符号字符串数组 XX中,请编写函数 encryptChar()。按给定的替代关系对数组 XX中的所有字符进行替代其替代值仍存入数组 xx的对应位置上,最后调用函数 WriteDat()把结果 xx输出到文件 out dat中。替代关系为: f(p)=P*17 mod 256, mod为取余运算, p是数组 XX中某一个字符的 ASCII码值, f(P)是计算后的无符号整 型值 (注意:中间变量定义为整型变量 )。如果计算后 f(p)
2、值小于等于 32或 f(p)是奇数。则该字符不变,否则用 f(p)替代所对应的字符。 【试题程序】 #include #include #include unsigned char xxFSOE80; int maxline=0; *文章的总行数 * int ReadDat(void); void WriteDat(void), void encryptChar() *第 i行内容已作为字符串存人 xxi为起始地址的存储单元内 * *请使用中间变量来存放替代关系处理后的值 val* *例如: val=xxij*17 256;* *该提示仅供解题参考,考生也可用其他方法解题 * void mai
3、n() if(RcadDat() printf(”数据文件 IN DAT不能打开 ! n 007”); return encryptChar(); WriteDat(): int ReadDat(void) FILE*fp; int i=0; unsigned char*P; if(fp=fopen(“in dat”。 “r”)=NULL) return 1; while(fgets(xxi, 80, fp)!一 NULL) p=strchr(xxi, rr)l if(p)*p=0; i+1 maxline=i; fclose(fp); return 0; void WriteDat(void
4、) FILE*fp; int i; fp=fopen(“out dat”。 “w”); for(i=0; imaxline;i+) printf(“ s n”, xxEi); fprintf(fp, “ s n”, xxi); fclose(fp); 计算机三级数据库技术(上机操作)机试模拟试卷 58答案与解析 一、程序设计题 1 【正确答案】 void encryptChar() int i, j, val; *定义变量 * for(i=0; imaxline; i+) |*替代字符 *|。 for(j=0 1j80; j+) val=xxDi*17 256; *替代关系 * if(val=32 val 2=1) *判断条件 * continue; else xxij=val;