[计算机类试卷]国家三级(网络技术)机试模拟试卷304及答案与解析.doc

上传人:cleanass300 文档编号:495827 上传时间:2018-11-28 格式:DOC 页数:4 大小:27KB
下载 相关 举报
[计算机类试卷]国家三级(网络技术)机试模拟试卷304及答案与解析.doc_第1页
第1页 / 共4页
[计算机类试卷]国家三级(网络技术)机试模拟试卷304及答案与解析.doc_第2页
第2页 / 共4页
[计算机类试卷]国家三级(网络技术)机试模拟试卷304及答案与解析.doc_第3页
第3页 / 共4页
[计算机类试卷]国家三级(网络技术)机试模拟试卷304及答案与解析.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、国家三级(网络技术)机试模拟试卷 304及答案与解析 一、程序设计题 1 已知数据文件 IN39 DAT中存有 300个四位数,函数 ReadData()负责把这些数存人数组 inBuf中,请编制一函数 findValue(),其功能是;求出这些四位数中是素数的个数 count,再求出所有满足此条件的四位数的平均值 averagel,以及所有不满足此条件的 4位数的平均值 average2,并通过函数 WriteData()把结果输出到0UT DAT文件中。 例如; 3191是素数,则该数满足条件,计算平均值 averagel,且个数count=count+l。 1234是非素数,则该数不满足

2、条件,计算平均值 average2。 注意;部分源程序已给出。 程序中已定义数组; inBuf300, outBuf300,已定义变量; count。 请勿改动主函数 main()、读函数 ReadData()和写函数 WriteData()的内容。 试题程序; #include #define NUM 300 int inBufNUM, count=0; double averagel=0, average2=0; void ReadData(); void WriteData(); void findValue() void main() ReadData(); findValue();

3、WriteData(); printf(“count= d naveragl= 7 21fk naverag2= 7 21fkn“, count, averagel,average2); void ReadData() FILE*fp; int i; fp=fopen(“IN DAT“, “r“); for(i=0; iNUM; i+) fscanf(fp, “ d, “, &inBufi); fclose(fp); void WriteData() FILE*fp; fp=fopen(“OUT DAT“, “w“); fprintf(fp, “count= d naverag1= 7 2If

4、 naverag2= 7 21f n“, count,average1, average2); fclose(fp); 国家三级(网络技术)机试模拟试卷 304答案与解析 一、程序设计题 1 【正确答案】 void findValue() int i, j, flag, count_no=0; for(i=0; iNUM; i+) flag=0; for(j=2; jinBufi; j+) IN断是否为素数 if(inBufi j=0) flag=1; *如果当前数据可被除 1和其自身之外的整数整除的 话,则将标志置1,表明该数不是素数 * continue; 一旦发现不是素数,就退出循环 i

5、f(flag=0)如果是素数 count+; 则计数器加 1 averagel=(averagel*(count-1)+(double)inBufi) count; *计算平均值, averagel* (count-1)得到的是前 count-1个数的总和 * else如果不是素数 count_no+; 将非素数计数器加 1 average2=(average2*(count_no-1)+(double)inBufi) count_no; *计算平均值, average2*(count_no-1)得到的是前 count_no-1个数的总和 * 【试题解析】 本题主要考查素数的判断和平均值计算问题。 1判断是否为素数;素数的定义是;若一个数除了其自身和 1再没有其他的除数,则该数就是素数。故用其定义可以很容易判断。在 2到所判断数之间的数进行扫描,若有一个除数,则该数就不是素数。 2求平均值;由于本题中的数据量比较大,若采用先将各个值加起来再除以总个数来取平均的话,变量不能存储那么大的数据而导致溢出。本题的程序采用的方法是; N个数的平均值 =前 (N-1)个数的平均值 *(N-1)+第 N个数 N,采用这种递推的方法就避免了将大的数据存入变量中而产生溢出。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1