1、国家三级(网络技术)机试模拟试卷 287及答案与解析 一、程序设计题 1 文件 IN DAT中存有 200个整数,函数 read_dat(int inBufMAX)负责将这 200个数读到数组 inBuf中。请编制程序,要求;求出数组 inBuf中最大数 max及最大数的个数 count和数组 inBuf中能被 3整除或能被 7整除的数的算术平均值average(保留 2位小数 ),结果输出列 OUT DAT中。 部分程序、读函数 read_dat(int inBufMAX)及输出格式已给出。 试题程序; #include #include #define MAX 200 void read
2、dat(int inBufMAX) int i, j; FILE*fp; fp=fopen(“IN DAT“, “r“); for(i=0; imax) 如果某个数比先前确定的最大值大 max; inBufi; 则将该数设为新的最大值 for(i=0; iMAX; i+) if(inBufi=max) count+; 如果当前值与最大值相等,则将计数器加 1 if(inBufi 3|inBufi 7) 如果该数能被 3或 7整除 j+=inBufi; 将该值计入总和 k+; 计数器加 1 average=j k;求平均值 【试题解析】 本题主要考查依据数组下标对数据进行筛选及平均值的求法。程序基本步骤是; 1对 200个整数进行遍历,求出最大值 max,再统计出最大值的个数。 2求出能被 3或 7整除的数,所以两个条件之间用 “或 “运算,将满足条件的数累加到 j中。 3最后用 j k求其平均值。