下列给定程序中,函数fun()的功能是:找出一个大于给定整数m且紧随m的素数,并作为函数值返回。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构. 试题程序: #incl

admin2010-09-14  17

问题 下列给定程序中,函数fun()的功能是:找出一个大于给定整数m且紧随m的素数,并作为函数值返回。
   请改正程序中的错误,使它能得出正确的结果。
   注意:不要改动main函数,不得增行或删行,也不得更改程序的结构.
   试题程序:
   #include  <conio.h>
   #include  <stdio.h>
   int fun( int m)
   { int i,k;
     for (i=m+1; ;i++)
      { for (k=2;k<i;k++)
   /*************found**************/
          if (i%k!=0)
          break;
   /*************found**************/
          if (k<i)
          return(i);
      }
   }
   main()
   { int n;
     clrscr ();
     printf("\nPlease enter n: ");
     scanf ("%d", &n);
     printf ("%d\n",fun(n));
   }

选项

答案(1)错误: if(i%k!=0) 正确: if(i%k=0) (2)错误: if(k<i) 正确: if(k>=i)

解析 也许刚接触C语言的学习者对素数的概念不清楚,在这里说明一下,素数就是质数,本题的任务是随便输入一个整数m,然后在m的后面寻找紧跟m的一个质数,作为函数值返回。
   for (i=m+1; ;i++)  {
   是从m后面的一位开始循环,将m后面一位的值赋予i。然后;我们依次判断m后面的一位是否为素数。
   for (k=2;k<i;k++)
   if (i%k==0)
   是一个简单的数学判断问题,判断i被赋予的值与k的余数是否为零。
转载请注明原文地址:https://kaotiyun.com/show/kWID777K
0

相关试题推荐
最新回复(0)