1、计算机三级数据库技术(上机操作)机试模拟试卷 80及答案与解析 一、程序设计题 1 函数 ReadDat()实现从文件 in dat中读取一篇英文文章存入到字符串数组 XX中,请编写函数 StrCharJR(),其功能是:以该文章中的行为单位把字符串中的所有字符的二进制 ASCII码值右移 4位,高位补 0,然后把右移后的字符 ASCII码值再加上原字符的 ASCII码值,得到新的值仍存入原字符串对应的位置上,之后把已处理的结果仍按行重新存入数组 xx中。最后通过 main()函数调用函数WriteDat(),把结果 XX输出 到文件 out dat中。例如: “z”对应的 ASCII码值为7
2、AH,二进制值为 01111010,右移 4位后为 00000111,加上原来 “z”的 ASCII码值01111010得到 i0000001的结果。 原始数据文件存放的格式是;每行的宽度均小于 80个字符,含标点符号和空格,也按字符处理。 【试题程序】 #include #include char xx5080; int maxline=0; *文章的总行数 * int ReadDat(void); void WriteDat(void); void StrCharJR(void) void main() if(ReadDat() printf(”数据文件 IN DAT不能打开 ! n 007”); return; StrCharjR(); WriteDat(); int ReadDat(void) FILE*fP; inf i=0; char*P; if(fp=fopen(“in dat”。 “r”)=NULL) 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=0;i4);