(好資料)c語言輔導(dǎo)2_第1頁
(好資料)c語言輔導(dǎo)2_第2頁
(好資料)c語言輔導(dǎo)2_第3頁
(好資料)c語言輔導(dǎo)2_第4頁
(好資料)c語言輔導(dǎo)2_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

模擬練習(xí)一試題四、程序閱讀題(每題5分, 共15分)說明:閱讀下列程序,將運行時的輸出結(jié)果寫在答卷紙的相應(yīng)題號下。1、 程序1# include void main( ) int j, k; float f,s; s=0; f=1; for(k=1; k=3; k+) for(j=1; jk; j+) f=f*k; s=s+f; printf(%.0f#,s); 【講解】第1次:k=1,j=1, 里層循環(huán)不執(zhí)行:s=s+f=0+1,s=1第2次:k=2,j=1,循環(huán)執(zhí)行,f=1*2=2:s=1+2,s=3第3次:k=3,j=1,循環(huán)執(zhí)行,f=2*3=6,注意:里層循環(huán)繼續(xù),s現(xiàn)在不運算,第4次:k=3,j=2,循環(huán)執(zhí)行,f=6*3=18,注意:里層循環(huán)結(jié)束,s現(xiàn)在運算:s=s+f=3+18=21模擬練習(xí)二試題二、單選題(每題2分,共20分) (14) 下列程序段的輸出結(jié)果是 (14) 。int count = 0, x, y, z;for(x = 1; x = 2; x+) for(y = 1; y = 3; y+) for(z = 1; z 2) return f(n-1)+n; else return n;A、9 B、10 C、2 D、4【講解】f(4)=f(3)+4=(f(2)+3)+4=(2+3)+4=9試題三、程序填空題(每空2分,共20分)說明:閱讀下列程序說明和相應(yīng)程序,在每小題提供的若干可選答案中,挑選一個正確答案。程序1【程序說明】求 2/1 + 3/2 + 5/3 + 8/5 + 的前10項之和。(該序列從第2項起,每一項的分子是前一項分子與分母的和,分母是前一項的分子) 【程序】#include void main() int i, a = 1, b = 1, t; (21) ; for(i = 1; i = 10; i+) t = a; (22) ; b = t;y = (23) ; printf(%fn, y);(21) A、int y = 0 B、int y C、double y = 0 D、double y【講解】這里應(yīng)該是定義變量y的類型,應(yīng)為y是小數(shù)的和,應(yīng)該在C和D中選擇。結(jié)合(23)處考慮,有y=y+,所以此處必須賦初值。因此正確的是C。(22) A、a = b B、b = a + bC、a = a + bD、b = a 【講解】仔細(xì)閱讀程序,發(fā)現(xiàn)a表示分子,b表示分母,結(jié)合題目的意思考慮,此處正確的是C。(23) A、y + 1.0*a/bB、y + a/bC、a/b D、1.0*a/b 【講解】在選項A中,1.0*a先算,結(jié)果是小數(shù)。B和C都是整數(shù),不對。D沒有累加,不對。程序2【程序說明】讀入一批正整數(shù)(以零或負(fù)數(shù)為結(jié)束標(biāo)志),輸出其中的素數(shù)。函數(shù)prime(m)用于判斷m是否為素數(shù)。素數(shù)就是只能被1和自身整除的正整數(shù),1不是素數(shù),2是素數(shù)?!境绦颉?include stdio.h#include math.hvoid main( ) int x; int prime(int m); scanf(%d, &x); while( (24) ) if(prime(x) printf(%dn, x); scanf(%d, &x); int prime(int m) int k, n, res; if(m = 1) return 0; res = 1; n = (int)sqrt(m); for(k = 2; k = n; k+) if(m%k = 0) (25) ; break; return (26) ; (24) A、x = 0C、x 0【講解】根據(jù)題目意思,0或負(fù)數(shù)就結(jié)束,因此,循環(huán)要執(zhí)行的條件就是X0。(25) A、res = 1B、res = 0C、res = -1 D、res = 2【講解】如果m%k=0就說明m被k整除了,那么就不是素數(shù)了。此時res=0。(為什么不是res=1?根據(jù)這一句if(prime(x) printf(%dn, x);可以推斷出來。)(26) A、1 B、resC、0 D、-1根據(jù)這一句if(prime(x) printf(%dn, x);可以推斷出來答案為B。)程序3【程序說明】輸入1000個整數(shù),用選擇法將它們從小到大排序后輸出。【程序】#include void sort(int a , int n);void main( ) int i, a1000; for(i = 0; i 1000; i+) scanf(%d, &ai); (27) ; for(i = 0; i 1000; i+) printf(%d , ai); printf(n); void sort( (28) ) int i, index, k, t; for(k = 0; k n-1; k+) index = (29) ; for(i = k + 1; i n; i+) if( (30) ) index = i; t = aindex; aindex = ak; ak = t; (27) A、sort(a , 1000)B、sort(a, 1000)C、sort(a) D、sort(a1000)(28) A、int a, int n B、int a C、int *a, int *n D、int *a, int n (29) A、kB、0C、nD、i(30) A、ai aindexB、ai aindexC、ai aindex試題四、程序閱讀題(每空2分,共20分)說明:閱讀下列程序并回答問題,在每小題提供的若干可選答案中,挑選一個正確答案。程序1#include stdio.hvoid main( ) int j, k, n = 3, temp, sum = 0; int a66; /*執(zhí)行完以下循環(huán)后,得到的數(shù)組是:*/ for(k = 0; k n; k+) /* 0 1 2*/ for(j = 0; j n; j+) /*3 4 5*/ akj = k * n + j; /*6 7 8*/ for(k = 0; k n; k+)sum = sum + akk; /*這2句求對角線元素的和:sum=a00+a11+a22 結(jié)果:sum=0+4+8=12*/ printf(%dn, sum); /*輸出12*/ for(k = 0; k n; k+) /*注意:sum此時的值為12*/sum = sum + akn-k-1; /*sum=12(上句)+a02+a11+a20sum=12+2+4+6=24*/ printf(%dn, sum); /*輸出24*/(31) 程序運行時,第1行輸出 (31) 。A、15B、12C、3 D、0(32) 程序運行時,第2行輸出 (32) 。A、30B、24C、15D、12程序2#include void main( ) char ch; while(ch = getchar() != n) if ( ch=A & ch=A & ch=A & ch=A & ch=A & ch=A & ch=Z ) ch = a + Z - ch;得到: ch= a + Z Z ch= a + 0 ch=a(小寫字母a)程序3#include int f(int number, int digit) int count = 0; while(number != 0) if(number%10 = digit) count+; number = number / 10; return count;void main( ) printf(count=%dn, f(10090, 0); printf(count=%dn, f(10090, 9); (36) 程序運行時,第1行輸出 (36) 。A、count=0B、count=1C、count=3D、count=5 (37) 程序運行時,第2行輸出 (37) 。A、count=3B、count=9C、count=1 D、count=5 【講解】程序的核心是理解自定義函數(shù)f(number,digit)的作用:f計算number中有數(shù)字digit的個數(shù)。在(36)中,10090中有3個0,所以答案是C在(37)中,10090中有1個9,所以答案是C程序4#include void main( ) int choice, i; float price;for( i = 1; i = 5; i+) /*22222222222222*/ scanf(%d, &choice); if(choice = -1) break; /*第3次,輸入-1,程序執(zhí)行到這一句,直接退出for循環(huán)*/ switch (choice) /*111111111111111*/ case 1: price=2.5; break; case 2: price=1.5; break; case 3: price=4.5; break; /*第1次,輸入3,程序執(zhí)行到這一句*/ case 4: price=3.5; break; default: price=0.0; break; /*第2次,輸入7,程序執(zhí)行到這一句*/ /*1111111111111*/ printf(%0.1fn, price); /*22222222222

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論