模拟试题

3773考试网计算机等级考试模拟试题正文

计算机三级数据库技术上机模拟试题及答案

来源:青年人 2010-9-8 17:30:38

 

 

第七题:

  计算500-800区间内素数的个数cnt,并按所求素数的值从大到小的顺序,再计算其间隔减、加之和,即第1个素数-第2个素数+第三个素数-第4个素数+第5个素数。。。的值sum。请编写函数countvalue()实现程序的要求;最后main()函数调用函数writeDAT()把结果cnt和sum,输出到文件OUT11.DAT中。

  注意:部分源程序存放在prog1.c中请勿改动主函数main()和输出数据函数writeDAT()的内容。

  #include

  int cnt,sum;

  void countvalue()

  {

  }

  void main()

  {cnt=sum=0;

  countvalue();

  printf("素数的个数=%d\n",cnt);

  printf("按要求计算的值=%d\n",sum);

  writeDAT();}

  writeDAT()

  {FILE *fp;

  fp=fopen("OUT11.DAT","w");

  fprintf(fp,"%d\n%d\n",cnt,sum);

  fclose(fp);

  }

  

  这是答案:

  void countvalue()

  {

  int i,j,k,l;

  k=0;

  l=1;

  for (i=800;i>=500;i--)

  {

  for (j=2;j<=i/2;j++)

  {

  if ((i%j)==0)

  {

  k=1;

  break;

  }

  }

  if ((k==0)&&(l==1))

  {

  sum=sum+i;

  l=2;

  cnt++;

  continue;

  }

  if ((k==0)&&(l==2))

  {sum=sum-i;

  l=1;

  cnt++;

  }

  k=0;

  }

  }

  

  void countvalue()

  {int i,j;

  for(i=800;i>=500;i--)

  {for(j=2;j

  if(!(i%j)) break;

  if(j==i)

  { cnt++;

  if(cnt%2) sum+=i;

  else sum-=i;

  }

  }

  }

 

 

 

上一页  [1] [2] [3] [4] [5] [6] [7] 

触屏版 电脑版
3773考试网 琼ICP备12003406号-1