【计算机类职业资格】三级数据库技术机试-235及答案解析.doc
《【计算机类职业资格】三级数据库技术机试-235及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】三级数据库技术机试-235及答案解析.doc(15页珍藏版)》请在麦多课文档分享上搜索。
1、三级数据库技术机试-235 及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:5,分数:100.00)1.函数 ReadDat()实现从 in.dat 文件中读取 20 行数据并存放到字符串数组 xx 中(每行字符串长度均小于80)。请编写函数 jsSort(),其函数的功能是:以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组 xx 中,最后调用函数 WriteDat(),把结果 xx 输出到 out.dat 文件中。条件:从字符串中间一分为二,左边部分按字符的 ASCII 值降序排序,右边部分按字符的 ASCII 值升序排序。如果原字符串长
2、度为奇数,则最中间的字符不参加排序,字符仍放在原位置上。例如: 位置 0 1 2 3 4 5 6 7 8源字符串 a b C d h g f e1 2 3 4 9 8 7 6 5则处理后字符串 d C b a e f g h4 3 2 1 9 5 6 7 8注意:部分源程序已经给出。请勿改动主函数 main()、读数据函数 ReadDat()和输出数据函数 WriteDat()的内容。#includestdio.h#includestring.h#includeconio.hchar xx2080;void jsSort()void ReadDat()FILE *in;int i=0;char
3、 *p;in=fopen(“in.dat“,“r“);while(i20fgets(xxi,80,in)!=NULL)p=strchr(xxi,/n);if(p)*p=0;i+;fclose(in);void WriteDat()FILE *out;int i;out=fopen(“out.dat“,“w“);for(i=0; i20;i+)printf(“%s/n“,xxi);fprintf(out,“%s/n“,xxi);fclose(out);void main()ReadDat();jsSort();WriteDat();(分数:20.00)_2.已知数据文件 IN.DAT 中存有 2
4、00 个四位数,并已调用读函数 readDat()把这些数存入数组 a 中。请编写函数 jsval(),其功能是:把个位数字和千位数字重新组成一个新的两位数(新两位数的十位数字是原四位数的个位数字,新两位数的个位数字是原四位数的千位数字),以及把百位数字和十位数字组成另一个新的两位数(新两位数的十位数字是原四位数的百位数字,新两位数的个位数字是原四位数的十位数字),如果新组成的两个两位数均是偶数并且两个两位数中至少有一个数能被 9 整除,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组 b 中,并计算满足上述条件的四位数的个数 cnt。最后 main()函数调用写
5、函数 writeDat(),把结果 cnt 以及数组 b 中符合条件的四位数输出到OUT.DAT 文件中。注意:部分源程序已经给出。程序中已定义数组:a200,b200;已定义变量:cnt。请勿改动数据文件 IN.DAT 中的任何数据及主函数 main()、读函数 readDat()和写函数 writeDat()的内容。#includestdio.h#define MAX 200int aMAX,bMAX,cnt=0;void jsVal()void readDat()int i;FILE *fp;fp=fopen(“IN.DAT“,“r“);for(i=0;iMAX;i+)fscanf(fp
6、,“%d,“,ai);fclose(fp);void writeDat()FILE *fp;int i;fp=fopen(“OUT.DAT“,“w“);fprintf(fp,“%d/n“,cnt);for(i=0;icnt;i+)fprintf(fp,“%d/n“,bi);fclose(fp);void main()int 1;readDat();jsVal();printf(“满足条件的数=%d/n“,cnt);for(i=0; icnt;i+)printf(“%d“,bi);printf(“/n“);writeDat();(分数:20.00)_3.函数 ReadDat()实现从 IN.DA
7、T 文件中读取一篇英文文章并存入到字符串数组 xx 中。请编写函数ConvertCharD(),其功能是:以行为单位把字符串中的所有小写字母改写成该字母的上一个字母,如果是字母 a,则改写成字母 z。大写字母仍为大写字母,小写字母仍为小写字母,其他字符不变。最后把已处理的字符串仍按行重新存入字符串数组 xx 中,最后调用函数 WriteDat(),把结果 xx 输出到 OUT.DAT 文件中。例如,原文:Adb.Bcdzaabck.LLhj结果:Aca.Bbcyzzabj.LLgi原始数据文件存放的格式是:每行的宽度均小于 80 个字符。注意:部分源程序已经给出。请勿改动主函数 main()、
8、读数据函数 ReadDat()和输出数据函数 WriteDat()的内容。#includestdio.h#includestring.h#includeconio.hchar xx5080;int maxline=0; /*文章的总行数*/int ReadDat(void);void WriteDat(void);void ConvertCharD(void)void mein()if(ReadDat()printf(“数据文件 IN.DAT 不能打开!/n/007“);return;ConvertCharD();WriteDat();int ReadDat(void)FILE *fp;int
9、 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;imaxline;i+)printf(“%s/n“,xxi);fprintf(fp,“%s/n“,xxi);fclose(fp);(分数:20.00)_4.函数 ReadDat()实现
10、从 IN.DAT 文件中读取一篇英文文章并存入到字符串数组 xx 中。请编写函数StrCharJL(),其功能是:以行为单位把字符串中的所有字符的 ASCII 值左移 4 位,如果左移后,其字符的 ASCII 值小于等于 32 或大于 100,则原字符保持不变,否则就把左移后的字符 ASCII 值再加上原字符ASCII 值,得到新的字符仍存入原字符串对应的位置上。最后把已处理的字符串仍按行重新存入字符串数组 xx 中,最后调用函数 WriteDat(),把结果 xx 输出到 OUT.DAT 文件中。原始数据文件存放的格式是:每行的宽度均小于 80 个字符(含标点符号和空格)。注意:部分源程序已
11、经给出。请勿改动主函数 main()、读数据函数 ReadDat()和输出数据函数 WriteDat()的内容。#includestdio.h#includestring.h#includeconio.hchar xx5080;int maxline=0; /*文章的总行数*/int ReadDat(void);void WriteDat(void);void StrCharJL(void)void main()if(ReadDat()printf(“数据文件 IN.DAT 不能打开!/n/007“);return;StrCharJL();WriteDat();int ReadDat(void
12、)FILE *fp;int 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; imaxline;i+)printf(“%s/n“,xxi);fprintf(fp,“%s/n“,xxi);fclose(fp);(分数:20.00)_5.
13、在 in.dat 文件中有 200 组数据,每组有 3 个数,每个数均是三位数。函数 ReadDat()读取这 200 组数据并存放到结构数组 aa 中。请编写函数 jsSort(),其功能是:要求在 200 组数据中找出条件为每组中的第一个数大于第二个数加第三个数的和,其中满足条件的组数作为函数 jsSort()的返回值,同时把满足条件的数据存入结构数组 bb 中,再对 bb 中的数据按照每组数据的第一个数加第三个之和的大小进行升序排列(第一个数加第三个数的和均不相等),排序后的结果仍重新存入结构数组 bb 中,最后调用函数WriteDat(),把结果 bb 输出到 out.dat 文件中。
14、注意:部分源程序已经给出。请勿改动主函数 main()、读数据函数 ReadDat()和输出数据函数 WriteDat()的内容。#includestdio.h#includestring.h#includeconio.htypedef structint x1,x2,x3;data;data aa200,bb200;int jsSort()void ReadDat()FILE *in;int i;in=fopen(“in.dat“,“r“);for(i=0;i200;i+)fscanf(in, “%d%d%d“, aai.x1, aai.x2, aai.x3);fclose(in);void
15、 WriteDat(int count)FILE *out;int i;out=fopen(“out.dat“,“w“);for(i=0;icount;i+)printf(“%d,%d,%d 第一个数+第三个数=%d/n“,bbi.x1,bbi.x2,bbi.x3,bbi.x1+bbi.x3);fprintf(out,“%d%d%d/n“,bbi.x1,bbi.x2,bbi.x3);fclose(out);void main()int count;ReadDat();count=jsSort(); /*返回满足条件的个数*/WriteDat(count);(分数:20.00)_三级数据库技术机
16、试-235 答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:5,分数:100.00)1.函数 ReadDat()实现从 in.dat 文件中读取 20 行数据并存放到字符串数组 xx 中(每行字符串长度均小于80)。请编写函数 jsSort(),其函数的功能是:以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组 xx 中,最后调用函数 WriteDat(),把结果 xx 输出到 out.dat 文件中。条件:从字符串中间一分为二,左边部分按字符的 ASCII 值降序排序,右边部分按字符的 ASCII 值升序排序。如果原字符串长度为奇数,则最中间
17、的字符不参加排序,字符仍放在原位置上。例如: 位置 0 1 2 3 4 5 6 7 8源字符串 a b C d h g f e1 2 3 4 9 8 7 6 5则处理后字符串 d C b a e f g h4 3 2 1 9 5 6 7 8注意:部分源程序已经给出。请勿改动主函数 main()、读数据函数 ReadDat()和输出数据函数 WriteDat()的内容。#includestdio.h#includestring.h#includeconio.hchar xx2080;void jsSort()void ReadDat()FILE *in;int i=0;char *p;in=fo
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 三级 数据库技术 235 答案 解析 DOC
