就业数据资源平台
当前位置:首页 > 网络技术
2012计算机等级考试三级网络技术上机100题(1)

 题目1

  请编写一个函数jsValue(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入数组xx传回。


  最后调用函数writeDat()读取10组数据,分别得出结果且把结果输出到文件out.dat中。


  部分源程序存在文件prog1.c中。


  例如:若输入17 5 则应输出:19,23,29,31,37.


  请勿改动主函数main()和写函数writeDat()的内容。


  #include


  #include


  void readwriteDat();


  int isP(int m)


  {


  int i;


  for(i=2;i


  if(m % i==0)return 0;


  return 1;


  }


  void num(int m,int k,int xx[])


  { int s=0;


  for(m=m+1;k>0;m++)


  if(isP(m)) { xx[s++]=m; k--;}


  }


  main()


  {


  int m,n,xx[1000];


  clrscr();


  printf(“\nPlease enter two integers:”);


  scanf(“%d%d”,&m,&n);


  num(m,n,xx);


  for(m=0;m


  printf(“%d ”,xx[m]);


  printf(“\n”);


  readwriteDat();


  }


  void readwriteDat()


  {


  int m,n,xx[1000], i;


  FILE *rf,*wf;


  rf=fopen(“in.dat”,“r”);


  wf=fopen(“out.dat”,“w”);


  for(i=0;i<10;i++){


  fscanf(rf,“%d %d”,&m,&n);


  num(m,n,xx);


  for(m=0;m


  fprintf(wf,“\n”);


  }


  fclose(rf);


  fclose(wf);


  }


  #include


  void jsValue(int m,int k,int xx[])


  { int i,j,s=0;


  for(i=m+1;k>0;i++)


  { for(j=2;j


  if(i%j==0) break;


  if(i==j) { xx[s++]=i; k--;}


  }


  }


  main()


  {


  int m,n,zz[100];


  printf(“\n请输入两个整数:”);


  scanf(“%d%d”,&m,&n);


  jsValue(m,n,zz);


  for(m=0;m


  printf(“\n”);


  writeDat();


  }


  writeDat()


  {


  int m,n,zz[100],i;


  FILE *in,*out;


  in=fopen(“in.dat”,“r”);


  out=fopen(“out.dat”,“w”);


  for(i=0;i<10;i++){


  fscanf(in,“%d%d”,&m,&n);


  jsValue(m,n,zz);


  for(m=0;m


  fprintf(out,“\n”);


  }


  fclose(in);


  fclose(out);


  }


  另一解法:


  void num(int m,int k,int xx[])


  {


  int n=0,data=m+1;


  while(n


  if(isP(data)) xx[n++]=data;


  data++;}


  }

就业数据资源平台