1、计算机三级网络技术机试(上机操作)模拟试卷 80及答案与解析 一、程序设计题 1 文件 IN DAT中存有 200个四位整型数,函数 readData()负责将 IN DAT中的数据读到数组 inBuf中。请编制一函数 findData(),该函数的功能是:依次从数组inBuf中取出一个四位数,如果四位数连续大于该四位数前的 5个数且该数是奇数(该四位数以前不满 5个数,则不统计 ),该数必须能被 7整除,则按照从小到大的顺序存入 outBuf中,并用 count记录下符合条件的数据的个数。函数 writeData()负 责将 outBuf中的数据输出到文件 OUT DAT中,并且在屏幕上输出
2、。 注意:部分源程序已给出。 程序中已定义数组: inBuf200, outBuf200,已定义变量: count。 请勿改动主函数 main()、读函数 readData()和写函数 writeData()的内容。 试题程序: #include #define MAX 200 int inBufMAX, outBufMAX, count=0; void findData() void readData() int i; FILE*fpit fp=fopen(“IN DAT”, “r”); for(i=0; ioutBufj) 如果第 i位比它后面的数大 则将两者进行交换也即将更小的数放到第 i位 temp=outBufi; outBufi=outBufj; outBufj=temp; 【试题解析】 本题考查的主要是数据的奇偶性判断及数据的排序。 基本思想是: 查找符合要求的利用条件 inBufi 2 !=0找出奇数。用该数与其前面的连续 5个数相比较。如果有一个数不符合要求 (小于或等于后面的数 ),则可将该数排除,这样便可找出所有符合要求的项。 将当前数与其后的各个数相比较。如果当前数比其后的数大。则将两数据进行交换,从而使得前面的数小于后面的数,最终迭到从小到大排序的目的。