1、国家三级(数据库技术)机试模拟试卷 97及答案与解析 一、程序设计题 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 stdio.h void readwriteDat()
2、; 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;m n;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.da
3、t“ ,“ 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); fclose(wf); 国家三级(数据库技术)机试模拟试卷 97答案与解析 一、程序设计题 1 【正确答案】 int isP(int m) int i; for ( i=2; i m; i+) if(m % i=O)return 0; /*用小于 m的所有整数去试除 */ /*除尽则 m不是素数 */ /*此步有优化余地 */ return 1; /*寻找满足条件的素数 */ void num(int m, int k, int xx) int s=0; for (+m; k 0 ;m+) if (m%3=1 k-; 【试题解析】 类型:素数判断与运算。 关键点:素数判定。 求素数的题,可以先定义一个求素数的函数,然后在程序中直接调用,这样简单而且不容易出错。 原程序如果给了求素数的函数,可以直接调用。