![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
全國二級C語言計算機(jī)等級考試2009上機(jī)模擬6 |
一、填空題 請補(bǔ)充函數(shù)fun,它的功能是:計算并輸出m(包括m)以內(nèi)能被2或5整除的所有自然數(shù)的倒數(shù)之和。 例如,在主函數(shù)中從鍵盤給m輸入21后,輸出為:s=1.731151。 請勿改動主函數(shù)main與其他函數(shù)中的任何內(nèi)容,僅在fun函數(shù)的橫線上填寫所需的若干表達(dá)式或語句。 注意:部分源程序給出如下。 # include double fun(int m) { int j; double toal=0.0; for(j=1;___1___;j++) if(j%2==0 ___2___ j%5==0) toal+=___3___/j; return toal; } main() { int m; double f; printf("\nInput m: "); scanf("%d",&m); f=fun(m); printf("\n\ns=%f\n",f); } 二、改錯題 下列給定程序中,函數(shù)fun的功能是:按以下遞歸公式求函數(shù)值。 10 (n=1) fun(n)= fun(n-1)+2 (n>1) 例如,當(dāng)給n輸入6時,函數(shù)值為20。 請修改程序中的錯誤,得出正確的結(jié)果。 注意:不要改動main函數(shù),不能增行或刪行,也不能更改程序的結(jié)構(gòu)。 # include /********error********/ int fun(n) { int m; /********error********/ if(n=1) m=10; else m=fun(n-1)+2; return (m); } main() { int n; printf("Enter n: "); scanf("%d",&n); printf("The result:%d\n\n",fun(n)); } 三、編程題 請編寫函數(shù)fun,對長度為7個字符的字符串,除首、尾字符外,將其余5個字符按ASCII碼降序排列。 例如,原來的字符串為Justabc,則排序后輸出為Jutsbac。 請勿改動主函數(shù)main與其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。 注意:部分源程序給出如下。 # include # include # include # include void fun(char *str,int n) { } main() { char str[10]; FILE *out; printf("input string with seven characters:"); gets(str); fun(str,7); printf("\n%s",str); out=fopen("outfile.dat","w"); strcpy(str,"Justsdf"); fprintf(out,"%s",str); fclose(out); } |