2006年9月全国等级考试三级c语言上机题库(一)

来源:计算机等级考试    发布时间:2012-08-28    计算机等级考试视频    评论

题目1(上机题库id 14、id 27(提供isP()函数;上机题库id 23题)

请编写一个函数jsValue(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入数组xx传回。
最后调用函数writeDat()读取10组数据,分别得出结果且把结果输出到文件out.dat中。
部分源程序存在文件prog1.c中。
例如:若输入17 5 则应输出:19,23,29,31,37。
请勿改动主函数main()和写函数writeDat()的内容。
#include <conio.h>
#include <stdio.h>
void readwriteDat();

int isP(int m)
{
int i;

for(i=2;i<m;i++)
if(m % i==0)return 0;
return 1;
}

void num(int m,int k,int xx[])
{ int s=0;
for(m=m+1;k>0;m++)
if(isP(m)) { xx[s++]=m; k--;}
}

main()
{
int m,n,xx[1000];
clrscr();
printf("/nPlease enter two integers:");
scanf("%d%d",&m,&n);
num(m,n,xx);
for(m=0;m<n;m++)
printf("%d ",xx[m]);
printf("/n");
readwriteDat();
}

void readwriteDat()
{
int m,n,xx[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);
num(m,n,xx);
for(m=0;m<n;m++)fprintf(wf,"%d ",xx[m]);
fprintf(wf,"/n");
}
fclose(rf);
fclose(wf);
}

无忧id 14题(无isP()函数)
#include <stdio.h>

void jsValue(int m,int k,int xx[])
{ int i,j,s=0;
for(i=m+1;k>0;i++)
{ for(j=2;j<i;j++)
if(i%j==0) break;
if(i==j) { xx[s++]=i; k--;}
}
}


main()

{
int m,n,zz[100];

printf("/n请输入两个整数:");
scanf("%d%d",&m,&n);
jsValue(m,n,zz);
for(m=0;m<n;m++)printf("%d ",zz[m]);
printf("/n");
writeDat();
}

writeDat()
{
int m,n,zz[100],i;
FILE *in,*out;

in=fopen("in.dat","r");
out=fopen("out.dat","w");
for(i=0;i<10;i++){
fscanf(in,"%d%d",&m,&n);
jsValue(m,n,zz);
for(m=0;m<n;m++)fprintf(out,"%d ",zz[m]);
fprintf(out,"/n");
}
fclose(in);
fclose(out);
}

另一解法:
void num(int m,int k,int xx[])
{
int n=0,data=m+1;
while(n<k){
if(isP(data)) xx[n++]=data;
data++;}
}

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答