首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请编写函数fun,函数的功能是:将大于形参m且紧靠m的k个素数存入xx所指的数组中。例如,若输入17,5,则应输出:19,23,29,31,37。 注意:部分源程序在文件PROGl.C文件中。 请勿改动主函数main和其他函数中的任何内容,仅在函数
请编写函数fun,函数的功能是:将大于形参m且紧靠m的k个素数存入xx所指的数组中。例如,若输入17,5,则应输出:19,23,29,31,37。 注意:部分源程序在文件PROGl.C文件中。 请勿改动主函数main和其他函数中的任何内容,仅在函数
admin
2015-06-08
40
问题
请编写函数fun,函数的功能是:将大于形参m且紧靠m的k个素数存入xx所指的数组中。例如,若输入17,5,则应输出:19,23,29,31,37。
注意:部分源程序在文件PROGl.C文件中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
Void fun(int m,int k,int xx[])
{
)
Main()
{
int m,n,z z[1 0 0 0];void NONO();
printf(“\nPlease enter two
integers:”);
scanf(“%d%d”,&m,&n);
fun(m,n,z z);
for(m=0 ; m
printf(“%d”,z z[m]);
printf(“\n”);
NONO();
}
Void NONO()
{/*本函数用于打开文件,输入测试数据,
调用fun函数,输出数据,关闭文件。*/
int m,n,z z[1 0 0 0],i;
FILE*rf,*wf;
rf=fopen(“in.dat”,“r”);
wf=fopen(“out.dat”,“w”);
for(i=0;i<1 0;i++) {
fscanf(rf,“%d%d”,&m,&n);
fun(m,n,z z);
for(m=0;m
(wf,“%d”,z z[m]);
fprintf(wf,“\n”);
}
fclose(rf);
fclose(wf);
}
选项
答案
int r=0,temp,p,sign=1; for(temp=m+1;temp
=temp) { if(k>=0) //判断已有的素数个数是否已经满足sum个 { xx[r++]=temp;//将素数temp存入数组select k--; //将题目中要求的素数个数减1 } else break; } }
解析
(1)该程序功能是取大于整数m且紧靠m的k个素数。其中,素数是指只能被1和自身除尽的正整数(>1),所以判别n是否为素数,只要用2~n-1这些数逐个去除n,判断余数是否为0即可。只要有一次余数为0,n就不是素数,否则n为素数。
(2)从已给部分源程序的main主函数开始入手,核心函数“fun(m,n,zz);”巾的参数由题目可知,zz存放素数,n为要求的素数个数。
[解题思路]
进入fun函数,根据前面的分析:
首先,定义、初始化变量sign,作为素数的标志;定义r,初始化为存储素数数组的起始位。
然后,每判断一次temp中的值是否为素数后,使temp的值增1,再次对temp中新的值进行判断其是否为素数,不断循环此过程,直到m的值等于指定的个数,即函数中的k个数。
转载请注明原文地址:https://kaotiyun.com/show/BaJp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
有以下程序:intfa(intx){returnx*x;}intfb(intx){returnx*x*x;}intf(int(*f1)(),int(*f2)(),(intx){returnf2(x)-f1(
若已建立如下图所示的单向链表结构:在该链表结构中,指针p、s分别指向图中所示结点,则不能将s所指的结点插入到链表末尾仍构成单向链表的语句组是______。
有如下说明:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是______。
假设在turboc2.0采用small模式编译如下程序main(){chara[4]={’a’,’b’};char*b="abc";printf("%d,%d",sizeof(A),sizeof(B));
有如下程序:longfib(intn){if(n>2)return(fib(n-1)+fib(n-2));elsereturn(2);}main(){printf("%ld\n",fib
有如下程序main(){intx=3;do{printf("%d",x--);}while(!x);}该程序的执行结果是______。
下面函数用来求出两个整数之和,并通过形参传回两数相加之和值。请填空。 intadd(intx,inty,【】,) {【】=x+y;}
以下程序的输出结果是_______。#include<stdio.h>main(){inti;for(i=1;i<5;i++){if(i%2)printf("*");elseco
若有以下说明和语句,请选出哪个是对c数组元素的正确引用_______。intc[4][5],(*cp)[5];cp=c;
在一个容量为25的循环队列中,若头指针front=16,尾指针rear=9,则该循环队列中共有【】个元素。
随机试题
该病人在来院前的做法错误的是要明确诊断,最需做的检查是
对由于业主原因所导致的目标偏差,可能成为首选措施的是( )。
禁止从英国、法国等国家进口牛及牛制品是为了防止“疯牛病”即“牛海绵状脑病”进入我国。( )
信用最基本的特征是()。
小组工作结束后,其跟进聚会通常安排在小组结束后的()。
已知(3x—1)10=a0+a1x+a2x2+…+a10x10,求:2a0+a1+5a2+7a3+17a4+31a5+65a6+127a7+257a8+511a9+1025a10的值.
毛泽东在《矛盾沦》中指出:矛盾问题的精髓是()。
下列命题正确的是().
某带链队列的初始状态为front=rear=NULL。经过一系列正常的入队与出队操作后,front=10,rear=5。该队列中的元素个数为()。
FashionWiththeprogressionofthehumansociety,peopleareincreasinglydemandingtheirclothestobebeautifulaswellas
最新回复
(
0
)