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

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

1、国家三级(网络技术)机试模拟试卷 17及答案与解析 一、程序设计题 1 下列程序的功能是:选出 100 1000间的所有个位数字与十位数字之和被 10除所得余数恰是百位数字的素数 (如 293)。计算并输出上述这些素数的个数 cnt,以及这些素数值的和 sum。请编写函数 countValue()实现程序要求,最后调用函数writeDAT()把结果 cnt和 sum输出到文件 OUT17.DAT中。 注意:部分源程序已给出。 请勿改动主函数 main()和写函数 writeDAT()的内容。 试题程序: #include stdio.h int cnt, sum; void countValu

2、e() main ( ) cnt=sum=0; countValue (); printf(“素数的个数 =%dn“, cnt); printf (“满足条件素数值的和 =%d“, sum); writeDAT (); writeDAT () FILE *fp; fp=fopen(“OUT17.DAT“, “w“); fprintf(fp, “%dn%dn“, cnt, sum); fclose (fp); 国家三级(网络技术)机试模拟试卷 17答案与解析 一、程序设计题 1 【正确答案】 void countValue()。 int i, j, half, hun, ten, data; f

3、or(i=101; i 1000; i+) hun=i/100; /*求百位数字 */ ten=i%100/10; /*求十位数字 */ data=i%10; /*求各位数字 */ if(hun=(ten+data)%10) /*如果个位数字与十位数字之和被 10除所得余数恰是百位数字,则进一步判断该数是否为素数 */ half=i/2; for(j=2; j =half; j+) if(i%j=0) break; if(jhalf) cnt+; sum+=i; /*计算这些素数的个数 cnt,以及这些素数值的和sum*/ 【试题解析】 本题的解题思路是利用一个 for循环依次取得 100到

4、1000之间的数,接着求得当前所取得的数的各个位上的数字值 ,语句 “hun=i/100;ten=i%100/10: data=i%10: ”可以分别取得某数的百位、十位及个位上的数字值,然后判断该数个位数字与十位数字之和被 10除所得的余数是否恰好等于百位上的数字。如果这个条件成立,接着去判断原数是否是素数,这里,考虑到效率问题,可以依次用从 2到该原数本身一半的数去除原数,如果原数能被除尽,则证明该数肯定不是素数,不需要做下面的工作,接着去取下一个数,继续判断。只有同时满足上述两个条件的数才是本题所需的数,这时把该数累加到变量sum(满足条件素数值的和 )中,同时也给计数器 变量 cnt(素数的个数 )加 1。

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

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

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