灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:3059回复:0

[三级考试]2012计算机等级考试三级网络技术上机100题(1)

楼主#
更多 发布于:2012-08-22 14:11

题目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++;}
  }


喜欢0 评分0
游客

返回顶部