首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请编写函数fun,函数的功能是:将大于形参m且紧靠m的k个素数存入xx所指的数组中。例如,若输入17,5,则应输出:19,23,29,31,37。 注意:部分源程序在文件PROGl.C文件中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的
请编写函数fun,函数的功能是:将大于形参m且紧靠m的k个素数存入xx所指的数组中。例如,若输入17,5,则应输出:19,23,29,31,37。 注意:部分源程序在文件PROGl.C文件中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的
admin
2019-09-02
42
问题
请编写函数fun,函数的功能是:将大于形参m且紧靠m的k个素数存入xx所指的数组中。例如,若输入17,5,则应输出:19,23,29,31,37。
注意:部分源程序在文件PROGl.C文件中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include<stdio.h>
void fun(int m,int k,int xx[])
{
}
main()
{
int m,n,zz[1000];void NONO();
printf("\nPlease enter two integers:");
scanf("%d%d",&m,&n);
fun(m,n,zz);
for(m=0;m<n;m++)
printf("%d",zz[m]);
printf("\n");
NONO();
}
void NONO()
{/*本函数用于打开文件,输入测试数据, 调用fun函数,输出数据,关闭文件。*/
int m,n,zz[1000],i;
FILE*rf,*wf;
rf=fopen("in.dat","r");
wf=fopen("out.dat","w");
for,(i=0;i<10;i++) {
fscanf(rf, "%d%d", &m, &n);
fun(m,n,zz);
for(m=0;m<n;m++) fprintf(wf,"%d",zz[m]);
fprintf(wf,"\n");
}
fcclse(rf);
fclose(wf); }
选项
答案
int r=0,temp,p,sign=1; for(temp=m+1;temp<m*m;temp++) //从temp开始循环,判断紧靠temp的整数 { for(p=2;p<temp;p++) {if(temp%p!=0)//判断temp是否为素数 sign=1;//若是素数,标志设为1 else {sign=0;//若不是素数,标志设为0 break;} } if(sign==1&&p>=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://jikaoti.com/ti/9sf0FFFM
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位的顺序组成一个新的数,并作为函数值返回。例如,从主函数输入一个整数:27638496,函数返回值为:26846。请在程序的下划线处填入正确的内容并把下
给定程序MODI1.C中函数fun的功能是:求出两个非零正整数的最大公约数,并作为函数值返回。例如,若给num1和num2分别输入49和21,则输出的最大公约数为7;若给numl和hum2分别输入27和81,则输出的最大公约数为27。请
给定程序MODI1.C中函数fun的功能是:从3个红球,5个白球,6个黑球中任意取出8个作为一组,进行输出,在每组中,可以没有黑球,但必须要有红球和白球。组合数作为函数值返回。正确的组合数应该是15。程序中i的值代表红球数,j的值代表白球数,k的
请编写函数fun,其功能是:计算并输出下列多项式的值:例如,在主函数中从键盘给n输入50后,输出为:s=1.718282。注意:要求n的值大于1但不大于100。部分源程序在文件PROG1.C中。请勿改动主函数mai
给定程序MODI1.C中函数fun的功能是:统计一个无符号整数中各位数字值为零的个数,通过形参传回主函数;并把该整数中各位上最大的数字值作为函数值返回。例如,若输入无符号整数30800,则数字值为零的个数为3,各位上数字值最大的是8。请改正函数f
给定程序中,函数fun的功能是:有N×N矩阵,将矩.阵的外围元素顺时针旋转。操作顺序是:首先将第一行元素的值存入临时数组r,然后使第一列成为第一行,最后一行成为第一列,最后一列成为最后一行,临时数组中的元素成为最后一列。例如,若N=3,有下列矩阵
由N个有序整数组成的数列已放在一维数组中,给定程序MODI1.C中函数fun的功能是:利用折半查找算法查找整数m在数组中的位置。若找到,返回其下标值-反之,返回1。折半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(lowh
已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。注意:部分源程序存在文件PROG1.C文件中。请勿改动主函数mai
随机试题
关于期货交割,以下表述正确的是()。
技术的发明和科学发现,更多的是靠
瑞草油的功能主治是
下列临时用房和临时设施中应纳入施工现场总平面布局的有()。
银行保函与信用证的不同表现在()。
A公司为支付货款,向B公司签发了一张金额为200万元的银行承兑汇票,某商业银行作为承兑人在票面上签章。B公司收到汇票后将其背书转让给C公司,以偿还所欠C公司的租金,但未在被背书人栏内记载C公司的名称。C公司欠D公司一笔应付账款,遂直接将D公司记载为B公司的
现场审核前的文件评审是为了确定文件所述体系()。
数据库应用系统在使用过程中,会根据用户的需求及系统运行情况对系统进行升级和改造。关于系统升级改造工作,下列说法错误的是()。
TheUnitedStates【C1】______alargepartoftheNorthAmericancontinent.ItsneighborsareCanada【C2】______thenorth,【C3】______M
Betterthinktwicebeforechoosingapasswordforemails,onlinebankaccountsandairlinetickets.Passwordsthatshownoi
最新回复
(
0
)