一、填空题 请补充fun函数,fun函数的功能是求m的阶乘。 请勿改动主函数main与其他函数中的任何内容,仅在fun函数的横线上填写所需的若干表达式或语句。 注意:部分源程序给出如下。 # include long fun(int m) { if(___1___) return (m*fun(___2___)); return ___3___; } main() { printf("8!=%ld\n",fun(8)); } 二、改错题 下列给定程序的功能是:读入一个整数n(2≤n≤5000),打印它的所有为素数的因子。例如,若输入整数1234,则应输出:2、617。 请修改程序中的错误,使程序能得出正确的结果。 注意:不要改动main函数,不能增行或删行,也不能更改程序的结构。 # include # include /*******error*********/ Prime(int m); { int j,p; p=1; /*******error*********/ for(j=2;j if!(m%j) { p=0; break; } return(p); } main() { int i,n; printf("\nplease enter an integer number between 2 and 5000:"); scanf("%d",&n); printf("\n\nThe prime factor(s) of %d is(are):",n); for(i=2;i if((!(n%i)) && (Prime(i))) printf(" M,",i); printf("\n"); } 三、编程题 数组point中存放着m个人的成绩,请编写函数fun,它的功能是:返回高于平均分的人数,并将高于平均分的分数放在high所指的数组中。 例如,当point数组中的数据为50、60、65、70、75、80、88、90、95时,函数返回的人数应该是5,high中的数据应为75、80、88、90、95。 请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 注意:部分源程序给出如下。 # include # include # include int fun(int point[],int n,int high[]) {
} main() { int j,m,high[9]; int point[9]={50,60,65,70,75,80, 88,90,95}; FILE *out; m=fun(point,9,high); printf("\nHigh the average point are :"); out=fopen("outfile.dat","w"); for(j=0;j { printf("%d ",high[j]); fprintf(out,"%d\n0",high[j]); } fclose(out); }
|