用C语言编写的代码程序是一个源程序。
以下不构成无限循环的语句或语句组是n=0; do{++n;}while(n<=0);。
已知int i,sum=0;执行以下程序段后的sum的值是16.for(i=7;i>=1;i=i-2){sum+=i;}
已知int i,sum=0;执行以下程序段后的sum的值是4.for(i=1;i<5;i=i+2){sum+=i;}
/*------------------------------------------------
【程序设计】 -- Guo S.
题目:编写函数fun(int n1, int n2),函数的功能是:
统计n1到n2之间(含n1和n2),
有几个素数。函数返回素数的个数。
提示:n1和n2的大小关系不确定,即无论n1和n2大小关系如何,函数fun均可对应。
比如,当n1为6, n2为8时,函数返回1,因为包括6和8,只有一个素数7
比如,当n1为8, n2为6时,函数也同样返回1,因为包括8和6,只有一个素数7
注意:部分源程序给出如下。请勿改动主函数
main和其它函数中的任何内容,仅在函
数fun的花括号中填入所编写的若干语句。
*********Begin**********和********** End **********不可删除
------------------------------------------------*/
#include "stdio.h"
#include "math.h"
void bky(void);
int fun(int n1, int n2)
{
/**********Begin**********/
/********** End **********/
}
main()
{
int k,n1,n2;
printf("请输入两个整数(用空格隔开):");
scanf("%d%d",&n1,&n2);
k=fun(n1,n2);
printf("%d和%d之间,有%d个素数\n",n1,n2,k);
bky();
}
void bky(void)
{
FILE IN,OUT;
int iIN1, iIN2,iOUT,i;
IN=fopen("in.txt","r");
if(IN==NULL)
{
printf("Please Verify The Currernt Dir..It May Be Changed");
}
OUT=fopen("out.txt","w");
if(OUT==NULL)
{
printf("Please Verify The Current Dir.. It May Be Changed");
}
for(i=0;i<6;i++)
{
fscanf(IN,"%d%d",&iIN1,&iIN2 );
iOUT=fun(iIN1, iIN2);
fprintf(OUT,"%d\n",iOUT);
}
fclose(IN);
fclose(OUT);
return ;
}
【参考代码】
int num=0, i, j, k, flg;
if(n1>n2){//确保n1小于n2
i=n1;
n1=n2;
n2=i;
}
for(i=n1;i<=n2;i++)
{
flg=1;
for(k=2;k<=sqrt(i);k++) // i-1, i/2均可
{
if(i%k==0)
{
flg=0;
break;
}
}
if(flg)
num++;
}
return num;
===============
【考生代码】
int i,j,t,b,s;
if(n1<n2){t=n1;
n1=n2;
n2=t;
}
for(i=n1;i<n2;i++){b=1;
for(j=2;j<=i/2;j++)
if(i%j==0){b=0;break;
}
if(b!=0) s++;
return s;
}
代码准确率:100.00%,得分比例:0.40
程序编译检测:编译成功,得分比例:0.40
程序结果检测:结果错误,得分比例:0.00
文章评论