1、计算机三级(数据库技术)上机考试 14 及答案解析(总分:-1.00,做题时间:90 分钟)1.已知数据文件 IN15.DAT 中存有 200 个 4 位数,并已调用读函数 readDat() 把这些数存入数组 a 中。请编制函数 jsVal(),其功能是:依次从数组 a 中取出一个 4 位数,如果该 4 位数连续小于该 4 位数以后的5 个数且该数是偶数,则统计出满足此条件的数的个数 cnt,并把这些 4 位数按从小到大的顺序存入数组b 中,最后调用写函数 writeDat()把结果 cnt 及数组 b 中符合条件的 4 位数输出到 OUT15.DAT 文件中。 注意:部分源程序已给出。 程
2、序中已定义数组:a200,b200,已定义变量:cnt。 请勿改动主函数main()、读函数 readDat()和写函数 writeDat()的内容。 试题程序: #include #define MAX 200 int aMAX, bMAX, cnt = 0; void jsVal() void readDat() int i; FILE *fp; fp = fopen(“IN15.DAT“, “r“); for(i = 0; i MAX; i+) fscanf(fp, “%d“, fclose(fp); main() int i; readDat(); jsVal(); printf(“满
3、足条件的数=%dn“, cnt); for(i = 0; i cnt; i+) printf(“%d “, bi); printf(“n“); writeDat(); writeDat() FILE *fp; int i; fp = fopen(“OUT15.DAT“, “w“); fprintf(fp, “%dn“, cnt); for(i = 0; i cnt; i+) fprintf(fp, “%dn“, bi); fclose(fp); (分数:-1.00)_计算机三级(数据库技术)上机考试 14 答案解析(总分:-1.00,做题时间:90 分钟)1.已知数据文件 IN15.DAT 中
4、存有 200 个 4 位数,并已调用读函数 readDat() 把这些数存入数组 a 中。请编制函数 jsVal(),其功能是:依次从数组 a 中取出一个 4 位数,如果该 4 位数连续小于该 4 位数以后的5 个数且该数是偶数,则统计出满足此条件的数的个数 cnt,并把这些 4 位数按从小到大的顺序存入数组b 中,最后调用写函数 writeDat()把结果 cnt 及数组 b 中符合条件的 4 位数输出到 OUT15.DAT 文件中。 注意:部分源程序已给出。 程序中已定义数组:a200,b200,已定义变量:cnt。 请勿改动主函数main()、读函数 readDat()和写函数 writ
5、eDat()的内容。 试题程序: #include #define MAX 200 int aMAX, bMAX, cnt = 0; void jsVal() void readDat() int i; FILE *fp; fp = fopen(“IN15.DAT“, “r“); for(i = 0; i MAX; i+) fscanf(fp, “%d“, fclose(fp); main() int i; readDat(); jsVal(); printf(“满足条件的数=%dn“, cnt); for(i = 0; i cnt; i+) printf(“%d “, bi); printf
6、(“n“); writeDat(); writeDat() FILE *fp; int i; fp = fopen(“OUT15.DAT“, “w“); fprintf(fp, “%dn“, cnt); for(i = 0; i cnt; i+) fprintf(fp, “%dn“, bi); fclose(fp); (分数:-1.00)_正确答案:(void jsVal() int i,j,flag=0; for (i=0;i=i+5;j+) if(aibj) flag=bi; bi=bj; bj=flag; )解析:根据题意可知,要编制函数的功能有两部分:一是找出满足条件的 4 位数;二是对找出的数进行从小到大排序。首先利用一个 for 循环来依次从数组中取得 4 位数,接着用当前得到的 4 位数与该数后面的5 个数(可以用循环次数来控制)依次进行比较,如果该数比它后面的 5 个数都小,则给标志变量 flag赋值 1。接着对 flag 进行判断,如果不为 1,则该数肯定不符合条件,直接去取下一个数;若 flag 值为1,再来判断该数是否是偶数,如果恰好该数又是偶数,则把该数加入到数组 b 中。这样就可以依次取出符合条件的数,然后利用选择法对 b 数组中的元素进行从小到大的排序。