一、填空題 請補充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); }
|