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