1、三级数据库技术机试-140 及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.下列程序的功能是:将大于整数 m 且紧靠 m 的 k 个被 3 除余 1 的素数存入数组 xx。请编写函数 num(int m,imt k,int xx)实现程序的要求,最后调用函数 readwriteDat()把结果输出到文件 out.dat 中。例如:若输入 17,5,则应输出:19,31,37,43,61。部分源程序已给出。请勿改动主函数 main()和输出数据函数 readwriteDat()的内容。#include conio.h#include stdi
2、o.hvoid readwriteDat();void num(int m, int k, int xx)main ( )int m,n,xx1000;clrscr();printf(“/nPlease enter two integers:“);scanf(“ %d%d“ ,num(m,n,xx);for(m=0;mn;m+)printf(“ %d“ ,xxm);printf(“/n“ );readwriteDat();viod readwriteDat()int m,n, xx1000, i;FILE *rf,*wf;rf=fopen(“in.dat“ ,“ r“ );wf=fopen(“
3、 out.dat“ ,“ w“ );for(i=0;i10;i+)fscanf(rf,“ %d%d“ ,num(m,n,xx);for(m=0;mn;m+)fprintf(wf,“ %d“ ,xxmfprintf(wf,“/n“ );fclose(rf);fclose(wf);(分数:100.00)_三级数据库技术机试-140 答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.下列程序的功能是:将大于整数 m 且紧靠 m 的 k 个被 3 除余 1 的素数存入数组 xx。请编写函数 num(int m,imt k,int xx)实现程序的要求,
4、最后调用函数 readwriteDat()把结果输出到文件 out.dat 中。例如:若输入 17,5,则应输出:19,31,37,43,61。部分源程序已给出。请勿改动主函数 main()和输出数据函数 readwriteDat()的内容。#include conio.h#include stdio.hvoid readwriteDat();void num(int m, int k, int xx)main ( )int m,n,xx1000;clrscr();printf(“/nPlease enter two integers:“);scanf(“ %d%d“ ,num(m,n,xx)
5、;for(m=0;mn;m+)printf(“ %d“ ,xxm);printf(“/n“ );readwriteDat();viod readwriteDat()int m,n, xx1000, i;FILE *rf,*wf;rf=fopen(“in.dat“ ,“ r“ );wf=fopen(“ out.dat“ ,“ w“ );for(i=0;i10;i+)fscanf(rf,“ %d%d“ ,num(m,n,xx);for(m=0;mn;m+)fprintf(wf,“ %d“ ,xxmfprintf(wf,“/n“ );fclose(rf);fclose(wf);(分数:100.00)
6、_正确答案:(提示:类型:素数判断与运算。关键点:素数判定。求素数的题,可以先定义一个求素数的函数,然后在程序中直接调用,这样简单而且不容易出错。原程序如果给了求素数的函数,可以直接调用。解答:/*判定 m 是否为素数*/int isP(int m)int i;for ( i=2; im; i+)if(m % i=O)return 0;/*用小于 m 的所有整数去试除*/*除尽则 m 不是素数*/*此步有优化余地*/return 1;/*寻找满足条件的素数*/void num(int m, int k, int xx)int s=0;for (+m; k0 ;m+)if (m%3=1 k-;)解析: