【计算机类职业资格】三级数据库技术机试-304及答案解析.doc

上传人:tireattitude366 文档编号:1321343 上传时间:2019-10-17 格式:DOC 页数:4 大小:28KB
下载 相关 举报
【计算机类职业资格】三级数据库技术机试-304及答案解析.doc_第1页
第1页 / 共4页
【计算机类职业资格】三级数据库技术机试-304及答案解析.doc_第2页
第2页 / 共4页
【计算机类职业资格】三级数据库技术机试-304及答案解析.doc_第3页
第3页 / 共4页
【计算机类职业资格】三级数据库技术机试-304及答案解析.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、三级数据库技术机试-304 及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.在文件 in33.dat中有 200个正整数,且每个正整数均在 1000至 9999之间。函数 readDat()的功能是读取这 200个数并存放到数组 aa中。请编制函数 jsSort(),该函数的功能是:要求按照每个数的后 3位的大小进行升序排列,将排序后的前 10个数存入数组 bb中,如果数组 bb中出现后 3位相等的数,则对这些数按原始 4 位数据进行降序排列,最后调用函数 writeDat()把结果 bb输出到文件 out33.dat中。例如:处理前 60

2、12 5099 9012 7025 8088处理后 9012 6012 7025 8088 5099注意:部分源程序已给出。请勿改动主函数 main()、读函数 readDat()和写函数 writeDat()的内容。试题程序:# includestdio. h# includestring. h#includeconio. hint aa200 ,bb10;void readDat ();void writeDat();void jsSort()void main ( )readDat ( );jsSort ( );writeDat ( );void readDat ()FILE *in;i

3、nt i;in=fopen (“in33 .dat“ , “r“ );for(i=0;i200;i+) fscanf (in, “%d “.fclose (in);void writeDat ()FILE *out;int i;clrscr ( );out =fopen (“out33 .dar“ , “w“ );for (i=0; i10; i+)printf (“i=%d, %d/n“, i+1, bbi ;fprintf (out, “%d/n“ ,bbi );fclose (out);(分数:100.00)_三级数据库技术机试-304 答案解析(总分:100.00,做题时间:90 分钟

4、)一、上机题(总题数:1,分数:100.00)1.在文件 in33.dat中有 200个正整数,且每个正整数均在 1000至 9999之间。函数 readDat()的功能是读取这 200个数并存放到数组 aa中。请编制函数 jsSort(),该函数的功能是:要求按照每个数的后 3位的大小进行升序排列,将排序后的前 10个数存入数组 bb中,如果数组 bb中出现后 3位相等的数,则对这些数按原始 4 位数据进行降序排列,最后调用函数 writeDat()把结果 bb输出到文件 out33.dat中。例如:处理前 6012 5099 9012 7025 8088处理后 9012 6012 7025

5、 8088 5099注意:部分源程序已给出。请勿改动主函数 main()、读函数 readDat()和写函数 writeDat()的内容。试题程序:# includestdio. h# includestring. h#includeconio. hint aa200 ,bb10;void readDat ();void writeDat();void jsSort()void main ( )readDat ( );jsSort ( );writeDat ( );void readDat ()FILE *in;int i;in=fopen (“in33 .dat“ , “r“ );for(i

6、=0;i200;i+) fscanf (in, “%d “.fclose (in);void writeDat ()FILE *out;int i;clrscr ( );out =fopen (“out33 .dar“ , “w“ );for (i=0; i10; i+)printf (“i=%d, %d/n“, i+1, bbi ;fprintf (out, “%d/n“ ,bbi );fclose (out);(分数:100.00)_正确答案:(void jsSort()int i,j,data;for(i=0;i199;i+)for(j=i+1;j200;j+)if(aai%1000aa

7、j%1000) /*按照每个数的后 3位的大小进行升序排列*data=aai;aai=aaj;aaj=data;else if(aai%1000=aaj%1000) /*如果后 3位数值相等,则对这些数值按原始 4位数据进行降序排列*/if(aaiaaj)data=aai;aai=aaj;aaj=data;for(i=0;i10;i+) /*将排好序的前十个数存入数组 bb中*/bbi=aai;)解析:解析 本题考查的知识点如下:(1)循环结构的嵌套。(2)选择结构的嵌套。(3)特殊运算符“%”的使用。(4)数据的升降序排列。在该题中,首先要解决的问题是如何把题中 4位数转换成符合要求的 3位数。这里要用到一个比较特殊的运算符%,它的功能是取余。将 4位数赊以 1000取余则得到要求的 3位数。根据题意,若后 3位相等,则按照原数据进行降序排序,所以在这里要加一个选择结构进行判断。对数据进行排序,可以使用最简单的“选择排序法”。即第一次从第一个数据开始和所有后面的数据进行比较,与比它大(小)的数据交换位置,将数据中最大(小)的数交换到最前面。第二次从第二个数据开始与后面的数据进行比较,将此次比较中最(小)的数据交换至第二个位置,直至最后一个数据。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1