【计算机类职业资格】计算机三级数据库技术-125及答案解析.doc

上传人:周芸 文档编号:1337420 上传时间:2019-10-17 格式:DOC 页数:3 大小:28KB
下载 相关 举报
【计算机类职业资格】计算机三级数据库技术-125及答案解析.doc_第1页
第1页 / 共3页
【计算机类职业资格】计算机三级数据库技术-125及答案解析.doc_第2页
第2页 / 共3页
【计算机类职业资格】计算机三级数据库技术-125及答案解析.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、计算机三级数据库技术-125 及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.下列程序的功能是:将大于整数 m 且紧靠 m 的 k 个素数存入数组 xx。请编写函数 num(int m,int k,int xx)实现程序功能,最后调用函数 readwriteDAT(),把结果输出到 OUT.DAT 文件中。 例如,若输入 17,5,则应输出 19,23,29,31,37。 注意:请勿改动主函数 main()和输入输出函数 readwriteDAT()的内容。 【试题程序】 #include stdlib.h #include stdio.h

2、 void readwriteDAT () ; void num (int m, int k, int xx ) void main () int m,n,xx1000; system ( “CLS“ ) ; printf (“nPlease enter two integers :“); scanf (“%d, %d“, num(m, n, xx); for (m =0;mn;m + ) printf (“%d “,xxm ) ; printf (“n“) ; readwriteDAT () ; void readwriteDAT () int m, n, xx1000,i; FILE *

3、rf,* wf; rf = fopen (“IN.DAT“, “r“) ; wf = fopen (“OUT. DAT“, “w“) ; for (i =0;i 10;i + ) fscanf (rf,“%d %d“, num (m, n, xx) ; for (m =0;m n;m + ) fprintf (wf, “%d “,xxm ) ; fprintf (wf, “n“) ; fclose (rf) ; felose (wf) ; (分数:100.00)_计算机三级数据库技术-125 答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.下

4、列程序的功能是:将大于整数 m 且紧靠 m 的 k 个素数存入数组 xx。请编写函数 num(int m,int k,int xx)实现程序功能,最后调用函数 readwriteDAT(),把结果输出到 OUT.DAT 文件中。 例如,若输入 17,5,则应输出 19,23,29,31,37。 注意:请勿改动主函数 main()和输入输出函数 readwriteDAT()的内容。 【试题程序】 #include stdlib.h #include stdio.h void readwriteDAT () ; void num (int m, int k, int xx ) void main

5、) int m,n,xx1000; system ( “CLS“ ) ; printf (“nPlease enter two integers :“); scanf (“%d, %d“, num(m, n, xx); for (m =0;mn;m + ) printf (“%d “,xxm ) ; printf (“n“) ; readwriteDAT () ; void readwriteDAT () int m, n, xx1000,i; FILE * rf,* wf; rf = fopen (“IN.DAT“, “r“) ; wf = fopen (“OUT. DAT“, “w“)

6、 for (i =0;i 10;i + ) fscanf (rf,“%d %d“, num (m, n, xx) ; for (m =0;m n;m + ) fprintf (wf, “%d “,xxm ) ; fprintf (wf, “n“) ; fclose (rf) ; felose (wf) ; (分数:100.00)_正确答案:()解析:void num(int m,int k,int xx) int i,half,cnt=0; /*定义变量 cnt 来统计已经取得的素数个数*/ int data=m+1; /*从大于整数 m 的数开始找*/ while(1) /*循环条件始终为

7、真,所以是无条件循环*/ half=data/2; /*求出当前数的一半,判断素数用*/ for(i=2;i=half;i+) /*如果该数依次除以从 2 到一半的整数,余数都不是 0,则该数是素数*/ if(data%i=0) /*如果余数为 0*/ break; /*则退出循环,取下一个数判断*/ if(ihalf) xxcnt=data; cnt+; /*判断该数为素数后,将该数存入数组 xx 中,并累计素数的个数*/ if(cnt=k) break; /*如果累计素数的个数超过了要求的个数,则退出循环*/ data+; /*如果累计素数的个数小于要求的个数,则继续取下一个数*/ 考点 本题考查对素数的筛选。考查的知识点主要包括:判断素数的算法,C 语言循环结构,if 条件判断结构,逻辑表达式。 解析 此题属于数学类问题。分析题干,本题存在 2 个关键点:关键点 1 如何分析本题中数的筛选范围;关键点 2 如何找出指定个数的素数。 本题的解题思路为:用一个无条件循环作为程序主体,在循环体中由一个 if 判断结构和 break 语句控制指定的筛选素数个数;利用一个内部循环体来实现数的筛选功能,逐个保存满足条件的数(素数),直到筛选出指定个数的素数,退出循环。 判断素数的算法;控制筛选指定个数素数的程序逻辑。

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

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

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