c语言程序实例填空题分析

本篇内容主要讲解“c语言程序实例填空题分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“c语言程序实例填空题分析”吧!

创新互联建站是一家网站设计公司,集创意、互联网应用、软件技术为一体的创意网站建设服务商,主营产品:响应式网站设计品牌网站制作成都营销网站建设。我们专注企业品牌在网站中的整体树立,网络互动的体验,以及在手机等移动端的优质呈现。成都网站设计、网站建设、外贸网站建设、移动互联产品、网络运营、VI设计、云产品.运维为核心业务。为用户提供一站式解决方案,我们深知市场的竞争激烈,认真对待每位客户,为客户提供赏析悦目的作品,网站的价值服务。

1、题目描述

用筛选法可得到2~n(n<10000)之间的所有素数,方法是:首先从素数2开始,将所有2的倍数的数从数表中删去(把数表中相应位置的值置成0);接着从数表中找下一个非0数,并从数表中删去该数的所有倍数;依此类推,直到所找的下一个数等于n为止。这样会得到一个序列:2,3,5,7,11,13,17,19,23,……

函数fun用筛选法找出所有小于等于n的素数,并统计素数的个数作为函数值返回

请在程序的下划线处填入正确的内容井把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1,C中

 不得增行或删行,也不得更改程序的结构

2、部分程序:

#include   

#pragma warning (disable:4996)

int fun(int  n)

{  int  a[10000], i,j, count=0;

   for (i=2; i<=n; i++)  a[i] = i;

   i = 2;

   while (i

/**********found**********/

      for (j=a[i]*2; j<=n; j+=___1___)

         a[j] = 0;

      i++;

/**********found**********/

      while (___2___==0)

         i++;

   }

   printf("\nThe prime number between 2 to %d\n", n);

   for (i=2; i<=n; i++)

/**********found**********/

     if (a[i]!=___3___)

      {  count++;    printf( count%15?"%5d":"\n%5d",a[i]);  }

   return  count;

}

main()

{  int  n=20, r;

   r = fun(n);

   printf("\nThe number of prime is  :  %d\n", r);

}

3、参考答案:

本题考查的是筛选算法。

    本程序的 while循环中又嵌套了一个for和 while循环,内嵌的for循环用于进行素数倍数的筛选,筛选的步长为a[i],故第一空填a[i];内嵌的 while循环用于判断下一个即将被筛选的数是否为零,如果为零,则跳过(通过i++实现),即不对它的倍数进行筛选,估第二空应填a[i];最后通过一个for循环统计素数的个数,其中的if用于判断a[i]是否为零,如果为零则说明a[i]不是素数,如果不为零则说明a[i]为素数,使得记录素数个数的变量 count+1,故第三空应填0。

到此,相信大家对“c语言程序实例填空题分析”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


网页名称:c语言程序实例填空题分析
分享地址:http://myzitong.com/article/gechod.html