全国计算机等级考试三级网络技术辅导:排序与数据分析

版权申诉
0 下载量 10 浏览量 更新于2024-07-06 收藏 3.89MB PDF 举报
"该资源为计算机三级网络技术的机试辅导题,主要涉及数组排序算法和数据处理。" 在计算机编程中,数组排序是一个常见的任务,文档中的代码展示了两种不同的排序方法,主要用于处理200个正整数的数组。第一种方法是按每个数的后三位降序排列,如果后三位相同,则按原始4位数据升序排列。这种排序策略涉及到复合排序条件,即首先根据特定条件(这里是后三位)进行主要排序,然后在次要条件(原始4位数据)相同的情况下应用次要排序。 ```c // 第一种排序方法 for(i=0; i<199; i++) for(j=i+1; j<200; j++) { if(aa[i]%1000<aa[j]%100) { temp = aa[i]; aa[i] = aa[j]; aa[j] = temp; } else if(aa[i]%1000==aa[j]%1000) { if(aa[i]>aa[j]) { temp = aa[i]; aa[i] = aa[j]; aa[j] = temp; } } } ``` 第二种方法与之相反,按每个数的后三位升序排列,若后三位相同,则按原始4位数据降序排列。 ```c // 第二种排序方法 void jsSort() { for(i=0; i<199; i++) for(j=i+1; j<200; j++) { if(aa[i]%1000>aa[j]%1000) { temp = aa[i]; aa[i] = aa[j]; aa[j] = temp; } else if(aa[i]%1000==aa[j]%1000) { if(aa[i]<aa[j]) { temp = aa[i]; aa[i] = aa[j]; aa[j] = temp; } } } } ``` 此外,文档还提到了计算奇数的个数、奇数的平均值、偶数的平均值以及所有奇数的方差的问题。这涉及到读取数据文件并进行统计分析。计算奇数个数、平均值和方差通常在数据分析和统计学中是非常基本的操作。 ```c // 计算奇数的个数、平均值和方差 int ReadDat(void) { FILE* fp; int i, j, N=0, sum1=0, sum2=0, totfc=0; if((fp=fopen("IN.DAT","r"))==NULL) return 1; for(i=0; i<100; i++) { for(j=0; j<10; j++) { fscanf(fp, "%d,", &xx[i*10+j]); if(xx[i*10+j] % 2 != 0) // 奇数 { N++; sum1 += xx[i*10+j]; totfc += (xx[i*10+j] - ave1)*(xx[i*10+j] - ave1); } else // 偶数 sum2 += xx[i*10+j]; } } ave1 = sum1 / N; // 奇数平均值 ave2 = sum2 / (100 * 10 - N); // 偶数平均值 totfc = sqrt(totfc / N); // 奇数方差 } ``` 以上代码片段演示了如何从文件中读取数据,计算奇数的个数(`N`),奇数的总和(用于计算平均值`ave1`),以及奇数的方差`totfc`。在计算方差时,先计算每个奇数与平均值的差的平方,然后取平均值的平方根得到方差。 这份机试辅导题涵盖了数组操作、复合排序、文件I/O以及基本的统计计算,这些都是计算机三级网络技术考试中可能遇到的基础编程题目。学习者应该熟悉这些概念,并能熟练地将其应用于实际问题中。