1、计算机三级网络技术机试(上机操作)模拟试卷 4及答案与解析 一、程序设计题 1 已知在文件 IN DAT中存有若十个 (个数 #include #define MAX 200 int inBufMAX; int totleNum=0; *文件 IN DAT中共有多少个正整数 * int totleCnt=0; *符合条件的正整数的个数 * double totleAverage=0 0;平均值 int ReadData(void); void WriteData(void); void findValue(void) void main() int i; system(”CLS”); for(
2、i=0; i0) 如果当前数大于零 totleNum+; 则将总个数加 1 for(j=0; j4; j+) temp=inBufi; 将要进行分解的数据存入 temp中 for(k=0; kj; k+) temp=temp 10;求第 j位的值 d3-i=temp 10; 先将 temp除以 10的 j次方,再对其求余 即可 if(d0+d1+d2+d3) 2!=0) 如果各位数字之和是奇数 totleCnt+; 则使符合条件的计数器加 1 totleAverage一 (totleAverage*(totleCnt- 1)+inBufi) totleCnt; totleAverage*(to
3、tleCnt-1)得到的是前 (totleCnt-1)个数的总和 【试题解析】 本题主要考查数位分解及数据平均值的求法。 本程序的步骤是: 将数值送入 temp中。 数位分解,由 temp 10得到个位数 ; (temp 10) 10得到十位教,依此类推,可得到各位上的数值。 按照题目所给的条件筛选出数据。 对选出的数据求平均值,由于本题中的数据量比较大,若采用先将各个值加起来再除以总个数采取平均的话。会因变量不能存储那么大的数据而导致溢出。本程序采用的方法是: N个数的平均值 =前 (N-1)个数的平均值 *(N-1)+第 N个数 N。采用这种递推的方法就避免了将大的数据存入变量中而产生溢出。