《三级数据库技术机试-271》由会员分享,可在线阅读,更多相关《三级数据库技术机试-271(2页珍藏版)》请在金锄头文库上搜索。
1、三级数据库技术机试 -271( 总分: 100.00 ,做题时间: 90 分钟 )一、上机题( 总题数: 1,分数: 100.00)1.下列程序的功能是:计算500800之间素数的个数ent,并按所求素数的值从小到大的顺序,再计算其间隔加、减之和,即第1个素数-第2个素数+第3个素数-第4个素数+第 5个素数的值sumo请编写函数countValue()实现程序的要求,最后调用函数 writeDat()把结果ent和sum输出到文件OUT66.DA中。 注意:部分源程序己给出。请勿改动主函数 main()和写函数 writeDAT()的内容。试题程序:include int cnt, sum;
2、void countValue ()void main ( )cnt=sum=0;countValue ();printf( 素数的个数 =%d/n,cnt);printf( 按要求计算机得值 =%d/n, sum);writeDAT ( );writeDAT ( )FILE *fp;fp=fopen (OUT66.DAT, w);fprintf (fp, %d/n%d/n, cnt, sum);fclose(fp);分数: 100.00)正确答案: (void countValue() int i , j , half , yy100 ;for(i=500 ;i 800;i+) half=i
3、/2 ;for(j=2 ;j =half) /* 如果该数是素数,则将该数存入数组 yy 中 */ yycnt=i ;cnt+ ; /* 统计素数的个数 */for(i=0 , j=-1 ; i ent ; i+) /* 计算这些素数的间隔加、减之和 */ i=j*-1;sum+=j*yyi ;)解析: 解析 本题考查的知识点如下:(1) 利用循环和“ %”进行素数的判断。(2) 间隔加、减的实现。在本题中,首先要找出判断素数的方法。若一个数a依次除以从2到a/2的数所得的余数都不是 0,则这个数是素数。用此方法依次判断出从500到800区间内的素数。由题意可知,第1,3,5个素数计算加法,第2,4,6个素数计算减法。减去1个正整数就是加上负的这个正整数,所以可以将这个正整数乘以-1 进行加法。 使用循环实现求和, 在奇数次的循环中, 每个素数乘以 1,偶数次的循环中, 素数乘以 -1 , 就可实现间隔加、减。