一、填空題 請補(bǔ)充fun函數(shù),fun函數(shù)的功能是求m的階乘。 請勿改動主函數(shù)main與其他函數(shù)中的任何內(nèi)容,僅在fun函數(shù)的橫線上填寫所需的若干表達(dá)式或語句。 注意:部分源程序給出如下。 # include long fun(int m) { if(___1___) return (m*fun(___2___)); return ___3___; } main() { printf("8!=%ld\n",fun(8)); } 二、改錯題 下列給定程序的功能是:讀入一個整數(shù)n(2≤n≤5000),打印它的所有為素數(shù)的因子。例如,若輸入整數(shù)1234,則應(yīng)輸出:2、617。 請修改程序中的錯誤,使程序能得出正確的結(jié)果。 注意:不要改動main函數(shù),不能增行或刪行,也不能更改程序的結(jié)構(gòu)。 # 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"); } 三、編程題 數(shù)組point中存放著m個人的成績,請編寫函數(shù)fun,它的功能是:返回高于平均分的人數(shù),并將高于平均分的分?jǐn)?shù)放在high所指的數(shù)組中。 例如,當(dāng)point數(shù)組中的數(shù)據(jù)為50、60、65、70、75、80、88、90、95時,函數(shù)返回的人數(shù)應(yīng)該是5,high中的數(shù)據(jù)應(yīng)為75、80、88、90、95。 請勿改動主函數(shù)main與其他函數(shù)中的任何內(nèi)容,僅在函數(shù)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); }
|