首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 计算机考试 > 等级考试 > 复习指导 >

C语言上机编程题详细分析(3)

2009-05-22 
二级C语言上机辅导

  请编写一个函数void fun(char m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入xx所指的数组中。例如,若输入17和5,则应输出:19,23,29,31,37。

  注意:部分源程序存在PROG1.C中,请勿改动主函数和其他函数中的内容,仅在函数fun的指定的部位填入你编写的若干语句。

  试题源程序如下:

  #include

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

  {

  }

  main()

  { int m, n, zz[100];

  printf("\nPlease enter two integers(m & n): ");

  scanf("%d%d",&m,&n);

  fun(m, n, zz);

  for(m=0; m

  }

  分析:

  (1)本题的基本算法是求素数。假设有整数i,若i不能被2到i之间的任意一个数除尽,则i就是素数;若一旦能被某个数除尽就不是素数。

  (2)以下是求i是否为素数的基本算法:变量ok用作i是素数的标志,ok为1,则i是素数。

  ok=1;

  for(p=2; p

  if( i%p==0){ ok=0; break; }

  if(ok)……

  (3)本题要求把大于m的k个素数存入xx所指的数组中。所以,i的值应大于m;取大于m的值逐一进行判断,若是素数就放入xx所指数组中。把以上语句放入一个循环中:

  for( i=m+1,j=0; ? ; i++ )

  { ok=1;

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

  if( i%p==0 ){ ok=0; break; }

  if (ok) { xx[j]=i;j++; }

  }

  此处,变量i统计存入数组中元素的个数,同时作为下标。

  (4)按本题的要求,外循环结束的条件应当是:j

 

司法考试中案例分析是很重要的一部分,现将一些经典案例整理并附之分析,以供参考。

热点排行