首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用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
64
问题
使用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=2,c;if(a>b)c=1;elseif(a==b)c=0;elsec=-1:printf(“%
有如下程序:#include<stdio.h>main(){FILE*fp1;fp1=fopen("f1.txt","w");fprintf(fp1,"abc");fclose(fp1);}
有如下程序段inta=14,b=15,x;charc=’A’;x=(a&&b)&&(c<’B’);执行该程序段后,x的值为_____。
s1和s2已正确定义,并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句S;,则以下选项正确的是______。
以下程序的输出结果是()。#include<stdio.h>main(){inta=21,b=11;printf("%d\n",--a+b,--b+a);}
数据的存储结构是指
数据的存储结构是指()。
填空补充以下程序。 #define【】30 {【】; total=numPRICE; printf("total=%d,num=%d\n",【】); }
以下程序的功能是:输出100以内(不含100)能被3整除且个位数为6的所有整数,请填空。main()(inti,j;for(i=0;i<i0;i++){j=i*10+6;if(())continue;
下列程序的运行结果是______。voidfun(int*a,int*B){int*k;k=a;a=b;b=k;}main(){inta=3,b=6,*x’&a,*y
随机试题
急性出血坏死性胰腺炎最常见的并发症是
患者肝脏病理切片报告,广泛肝细胞坏死、肝小叶纤维支架塌陷,不规则结节状再生肝细胞团形成,假小叶形成,其病理诊断是()。
施工合同中规定的工程承包范围是指()。
在设备工程活动中,设备监理单位是最适宜的组织协调者,原因如下:()。
下列发生于报告年度资产负债表日至财务报告批准报出日之间的各事项中,不应调整报告年度财务报表相关项目金额的有()。
Levy-YeyatiSturzenegger的分类(LYS分类)是基于事实上的分类,它有三个分类变量,下列选项不属于其中的是()。
“最近发展区”理论假设的提出者是()
服务是指为他人做事,并使他人从中受益的一种有偿或无偿的活动,不以或很少以实物形式而以提供活劳动的形式满足他人某种特殊需要。根据以上定义,以下不属于服务的是:
1927年大革命失败后,中国共产党召开的彻底清算了大革命后期的陈独秀右倾机会主义错误,确定土地革命和武装斗争总方针的会议是()
以下叙述中错误的是()。
最新回复
(
0
)