1、国家三级(网络技术)机试模拟试卷 279及答案与解析 一、程序设计题 1 在文件 IN DAT中有 200个四位正整数。函数 ReadData()的功能是读取这 200个数存放到数组 inBuf中。请编制函数 select(),其功能是;要求按照每个数的后3位的大小进行升序排列,如果出现后 3位相等的数,则对这些数按原始四位数顺序进行排列。将排序后的前 10个数存人数组 outBuf中,最后调用函数 WriteData()把结果 outBuf输出到文件 OUT DAT中。 例如;处理前 7011 9011 5011 1015 9011 5019 处理后 7011 9011 5011 9011
2、1015 5019 注意;部分源程序已给出。 请勿改动主函数 main()、读函数 ReadData()和写函数 WriteData()的内容。 试题程序; #include #include #include #define INCOUNT 200 #define OUTCOUNT 1 0 int inBufINCOUNT, outBuf E 0UTCOUNT; void ReadData(); void WriteData(); void select() void main() ReadData(); select(); WriteData(); void ReadData() FILE
3、*in; int i; in=fopen(“IN DAT“, “r“); for(i=0; ic1) temp=inBufi; inBufi=inBufj; inBufj=temp; for(i=0; iOUTCOUNT; i+) outBufi=inBufi;将规定数目的数放到 outBuf中 【试题解析】 本题主要考查数位分解及排序。分解四位数后 3位的方法是将此四位数 inBufi对 1000求余,所得余数即为该数据的后 3位。本题排序的思想是,将当前数据与其后 的各个数据相比较,如果当前的数据比其后的数据大,则将两数据进行交换,从而使得前面的数据小于后面的数据,达到从小到大排序的目的。