首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
用筛选法可得到2~n(n<10000)之间的所有素数,方法是:首先从素数2开始,将所有2的倍数的数从数表中删去(把数表中相应位置的值置成0);接着从数表中找下一个非0数,并从数表中删去该数的所有倍数;依此类推,直到所找的下一个数等于n为止。这样会得到一个序
用筛选法可得到2~n(n<10000)之间的所有素数,方法是:首先从素数2开始,将所有2的倍数的数从数表中删去(把数表中相应位置的值置成0);接着从数表中找下一个非0数,并从数表中删去该数的所有倍数;依此类推,直到所找的下一个数等于n为止。这样会得到一个序
admin
2017-07-27
54
问题
用筛选法可得到2~n(n<10000)之间的所有素数,方法是:首先从素数2开始,将所有2的倍数的数从数表中删去(把数表中相应位置的值置成0);接着从数表中找下一个非0数,并从数表中删去该数的所有倍数;依此类推,直到所找的下一个数等于n为止。这样会得到一个序列:
2,3,5,7,11,13,17,19,23,……
函数fun用筛选法找出所有小于等于n的素数,并统计素数的个数作为函数值返回。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
1 #include<stdio.h>
2 int fun(int n)
3 { int a[10000],i,j,count=0;
4 for(i:2;i<=n; i++)a
=i;
5 i=2;
6 while(i<n) {
7 /**********found**********/
8 for(j=a
*2;j<=n;j+=__1__)
9 a[j]=0;
10 i++;
11 /**********found**********/
12 while(__2__==0)
13 i++;
14 }
15 printf(’’\nThe prime number between 2 to %d\n’’,n);
16 for(i=2; i<=n;i++)
17 /**********found**********/
18 if(a
!=__3__ )
19 {count++; printf(count%157’’%5d’’:’’\n%5d’’,a
);}
20 return count;
21 }
22 main()
23 { int n=20,r;
24 r=fun(n);
25 printf(’’\nThe number of prime is:%d\n’’,r);}
选项
答案
(1)a[i] (2)a[i] (3)0
解析
fun函数的功能是用筛选法可得到2~n(n<10000)之间的所有素数。第一空:循环“for(j=a
*2;j<=n;j+=__1__)”中,循环变量j的初始值从a
的2倍开始,下一次进入循环j就是a
的3倍,第一空处是补充i的变化情况,而i每次都增加一个a
,即第一空处应为“a
”。第二空:根据题意第二空处是从数表中找下一个非0数,即在循环中比较a
是否为0,如果为0的话,i++指向后一个数表元素,故第二空处应为“a
”。第三空:根据语句“{ count++;printf( count%15?’’%5d’’:’’\n%5d’’ ,a
); }”可知在满足条件之后计数变量count自增,并且输出a
,可知a
是一个素数,由审题分析可知,经过筛选之后数表中非0的元素就是素数,故第三空处应为“0”,即a
不为0的话就是素数。
转载请注明原文地址:https://kaotiyun.com/show/17Dp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
有以下程序#include<stdio.h>intfun(inta,intB){if(b=0)returna;elsereturn(fun(--a,--B));}main(){pdntf("%d\
有以下程序#defineF(X,Y)(X)*(Y)main(){inta=3,b=4:printf("%d\n",F(a++,b++));}程序运行后的输出结果是()。
在数据库系统的内部结构体系中,索引属于()。
设x为整型变量,n=14,n的地址为4000;m=6,m的地址为2000;执行语句x=&n后的结果为()。
若语句“t=fun(fun(x,y,A),(a+b,a+C),x+y+z);”对fun函数的调用正确,则fun函数的形参个数为()。
若函数调用时的实参为变量,以下关于函数形参和实参的叙述中正确的是()。
有以下函数定义:intfun(doublea,doubleB){returna*b;}若以下选项中所用变量都已正确定义并赋值,错误的函数调用是()。
有以下程序:#include<string.h>voidf(charp[][10],intn)/*字符串从小到大排序*/{chart[10];inti,j;for(i=0;i<n-1;i++)fo
以下程序的输出结果是【】。#inculde#inculde#inculdemain(){char*P,*q,*r;P=q=r=(char*)malloc(sizeof(char)*20):
下列关于线性链表的描述中,正确的是()。I、只含有一个指针域来存放下一个元素地址Ⅱ、指针域中的指针用于指向该结点的前一个或后一个结点(即前件或后件)Ⅲ、结点由两部分组成:数据域和指针域。
随机试题
Wecanmakemistakesatanyage.Somemistakeswemakeareaboutmoney.Butmostmistakesareaboutpeople.“DidJerryreallyca
在系统性红斑狼疮的多系统损害中,以哪项发生率最高
遗传性寻常型鱼鳞病的遗传方式是
粉尘爆炸压力及压力上升速率主要受()等因素的影响。
下列属于代理记账业务范围的有()。
2003年中国人民银行开始面向商业银行发行中央银行票据,这种货币政策工具属于(),其影响是()。
高压断路器铭牌上标明的额定电压即为允许的最高工作电压。()
A、 B、 C、 D、 D第一组图形封闭区域数分别为2、4、6,第二组图形封闭区域数分别为(3)、5、7。
若曲线y=x2+ax+b和2y=一1+xy3在点(1,一1)处相切,其中a,b是常数,则
【B1】【B13】
最新回复
(
0
)