1、计算机三级网络技术机试(上机操作)模拟试卷 53及答案与解析 一、程序设计题 1 请编写函数 countValue(),其功能是:计算 500 800之间素数的个数 count,并按所求素数的值从小到大排序,再计算其间隔加、减之和,即第 1个素数一第 2个素数 +第 3个素数一第 4个素数 +第 5个素数 的值 sum。函数 WriteData()负责把结果输出到 OUT DAT文件中。 注意:部分源程序已给出。 请勿改动主函数 main()和写函数 WriteData()的内容。 试题程序: #include int count, sum; void WriteData(); void co
2、untValue() void main() count=sum=0; countValue(); printf(“count= d n, sum= d n”, count, sum); WriteData(); void WriteData() FILE*fp; fp=fopen(“OUT DAT”, “W”); fprintf(fp, “ d n d n”, count, sum); felose(fp); 计算机三级网络技术机试(上机操作)模拟试卷 53答案与解析 一、程序设计题 1 【正确答案】 void countValue() int i, j, flag temp; int ou
3、tBuf300; for(i=500; ioutBufj) *如果第 i位比它后面的数大则将两者进行交换, 也即将更小的值放到第 i位 * temp=outBufi; outBufi=outBufj; outBufj=temp; for(i=0; icount; i+) if(i 2=0)sum+=outBufi; 如果下标是偶数则加上该数 else sum-=outBufi; 如果下标是奇数则减去该数 【试题解析】 本题主要考查素数的判断、排序和数组中指定下标元素的求和问题。 判断是否为素数:素数的定义是:若一个数除了其自身和 1再没有其他的除数,则该数就是素数。故用其定义可以很容易判断。在 2到所判断数之间的数进行扫描,若有一个除数,则该数就不是素数。 排序:排序的思想是 (以 从小到大为例 ):将当前数据与其后的各个数据相比较,如果当前的数据比其后的数据大,则将两数据进行交换,从而使得前面的数据小于后面的数据,达到从小到大排序的目的。 计算其间隔加、减之和:判断下一位数的标号是奇数还是偶数,若下标为偶数 (即第奇数个 )则加,否则则减。