1、计算机三级数据库技术(上机操作)机试模拟试卷 31及答案与解析 一、程序设计题 1 函数 ReadDat()实现从数据文件 in dat中读取一篇英文文章存入到字符串数组xx中;请编写函数 CharConvA(),其函数的功能是:以该文章中的行为单位把字符串中的最后一个字符的 ASCII码值右移 4位二进制位,高位补 0后加最后第二个字符的 ASCII码值,得到最后一个新的值。最后第二个字符的 ASCII码值右移 4位二进制位,高位补。后加最后第三个字符的 ASCII码值,得到最后第二个新的值,以此类推一直处理到第二个字符 。注意:第一个新的值与上述处理不同,第一个字符的 ASCII码值加原最
2、后一个字符的 ASCll码值,得到第一个新的值。得到的新值分别存放在原字符串对应的位置上,之后把已处理的字符串仍按行重新存入数组 xx中。最后 main()函数调用函数 WriteDat()把结果 xx输出到 out dat文件中。原始数据文件存放的格式是:每行的宽度均小于 80个字符,含标点符号和空格。并也按它们的 ASCII码值作以上处理。 【试题程序】 #include #include char xxES03E80; int maxline=0; *文章的总行数 * int ReadDat(void); void WriteDat(void); void CharConvA(void)
3、 void main() if(ReadDat() printf(”数据文件 IN DAT不能打开 ! n 007”): return; CharConvA(); WriteDal(); int ReadDat(void) FILE*fp; int i=0; char*P; if(fp=fopen(”in dat”, ”r”)=NU return 1; while(fgets(xxi, 80, fp)!=NULL) p=strchr(xxi, n); if(p)*p=0; i+; maxline=i; fclose(fp); return 0; void WriteDat(void) FILE*fp; int i; fp=fopen(“out dat”。 “W”); for(i=0li0lj一一 ) x)iD=(xxiD4)+xxDD一 1; xxi3E03+=temp;