首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数int fun(int lim,int aa[MAX]),其功能是求出小于或等于lim的所有素数并放在aa数组中,并返回所求
使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数int fun(int lim,int aa[MAX]),其功能是求出小于或等于lim的所有素数并放在aa数组中,并返回所求
admin
2018-10-21
69
问题
使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数int fun(int lim,int aa[MAX]),其功能是求出小于或等于lim的所有素数并放在aa数组中,并返回所求出的素数的个数。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容。仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#define MAX100
int fun(int lim,int aa[MAX])
{
}
void main()
{
FILE*wf;
int limit,i,sum;
int aa[MAX];
system("CLS");
printf("输入一个整数:");
scanf("%d",&limit);
sum=fun(limit,aa);
for(i=0;i<sum;i++)
{
if(i%10==0&&i!=0)
/*每行输出10个数*/
printf("\n");
printf("%5d",aa
);
}
/*********found*********/
wf=fopen("out.dat","w");
sum=fun(15,aa);
for(i=0;i<sHm;i++)
{
if(i%10==0&&i!=0)
/*每行输出10个数*/
fprintf(wf,"\n");
fprintf(wf,"%5d",aa
);
}
fclose(wf);
/*********found*********/
}
选项
答案
int fun(int lim,int aa[MAX]) { int i,j,k=0; for(i=2;i<=lim;i++)/*求出小于或等于lim的全部素数*/ {for(j=2;j<i;j++) if(i%j==0)break; if(j>=i) aa[k++]=i;/*将求出的素数放入数组aa中*/ } return k;/*返回所求出的素数的个数*/ }
解析
本程序如果一个数是合数,那么它的最小质因数肯定小于等于他的平方根。使用for循环语句查找小于lim的所有数,使用内嵌的循环判断语句判断该数是否为素数。在做这道题时,需要重点掌握素数的判定方法:
for(j=2;j<sqrt(i);j++)
if(i%j==0)break;
转载请注明原文地址:https://kaotiyun.com/show/Jcxp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
若有如下程序:main(){inta=1,b=1;for(;a<=10;a++){if(b>=9)break;if(b%3==1){b+=3;continue;}b++;}p
有如下程序段inta=14,b=15,x;charc=’A’;x=(a&&b)&&(c<’B’);执行该程序段后,x的值为_____。
有如下程序#include<stdio.h>main(){intv1=0,v2=0;charch;while((ch=getchar())!=’#’)switch(ch)
在C语言中引用数组元素时,其数组下标的数据类型只能是()。
有以下程序:#include<stdio.h>voidWriteStr(char*fn,char*sir){FILE*fP;fP=fopen(fn,"w");fput6(str,fp);
若有以下程序#includeinta[]={2,4,6,8};main(){inti;int*p=a;for(i=0;i
有以下程序:intfun(intn){if(n==1)return1;elsereturn(n+fun(n-1));}main(){intX;scanf("%d",&x);x=fun(x);printf("%
填空补充以下程序。 #define【】30 {【】; total=numPRICE; printf("total=%d,num=%d\n",【】); }
表示“整数x的绝对值大于5”时值为“假”的C语言表达式是______。
随机试题
如下图所示,右图是Photoshop将左图处理后得到的结果,该处理过程使用的是()。
有关血脂含量叙述哪项是正确的()。
护士对某一护理措施效果进行观察与研究,护士此时的角色是()。
下列各选项中,关于乡村公益事业用地使用权的内容及限制,不包括()。
一宗房地产的权益包括()。
将Word文档中的部分文本内容移动到另一个位置时,首先要进行的操作是()。
下列关于合同的法律特征表述错误的是()。
甲乙公司2011年度和2012年度有关交易事项如下:2011年6月12日,经乙公司股东同意,甲公司与乙公司的股东A签订股权转让协议。有关资料如下:(1)以评估后的2011年6月20日乙公司净资产的评估价值为基础,甲公司以3800万元的
公民、法人和其他组织对公安机关处理不服的,可以向上级公安机关或复议机关提出()。
对线性表进行二分法查找,其前提条件是
最新回复
(
0
)