新編C程序設計教程課件教學PPT作者趙忠孝新編C程序設計教程習題集(參考答案)_第1頁
新編C程序設計教程課件教學PPT作者趙忠孝新編C程序設計教程習題集(參考答案)_第2頁
新編C程序設計教程課件教學PPT作者趙忠孝新編C程序設計教程習題集(參考答案)_第3頁
新編C程序設計教程課件教學PPT作者趙忠孝新編C程序設計教程習題集(參考答案)_第4頁
新編C程序設計教程課件教學PPT作者趙忠孝新編C程序設計教程習題集(參考答案)_第5頁
已閱讀5頁,還剩105頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、新編C程序設計教程習題集第1章 習 題一選擇題1. 用高級語言編寫的源程序要轉換成等價的目標程序,必須經過【 】CA) 匯編 B) 編輯 C) 編譯 D) 解釋2. 計算機硬件能直接識別和執行的只有【 】DA) 高級語言 B) 符號語言 C) 匯編語言 D) 機器語言3. 在同等情況下,計算機執行【 】速度最快。BA)高級語言程序 B) 機器語言程序 C) 匯編語言程序 D) 源程序4. 以下說法錯誤的是【 】C A)高級語言都是用接近人們習慣的自然語言和數學語言作為語言的表達形式 B)計算機只能處理由0和1的代碼構成的二進制指令或數據 C)C語言源程序經過C語言編譯程序編譯之后生成一個后綴為

2、.EXE的二進制文件 D)每一種高級語言都有它對應的編譯程序 5. 以下敘述中錯誤的是 【 】AA)用戶所定義的標識符允許使用關鍵字;B)用戶所定義的標識符應盡量做到“見名知意”;C)用戶所定義的標識符必須以字母或下劃線開頭;D)用戶定義的標識符中,大、小寫字母代表不同標識;6. 下列選項中屬于合法C語言關鍵字的是 【 】D。A) VAR B)interger C)floaT D)default 7. 下列字符串不是標識符的是【 】D A) sum B) Average C) Day_night D) M.C)JOHN8. 正確的C語言自定義標志符是【 】A。 A)file_bak B)abc

3、(10) C)continue D)class+39. 一個 C程序的執行是從【 】AA)本程序的main函數開始,到main函數結束;B)本程序文件的第一個函數開始,到本程序文件的最后一個函數結束;C)本程序的main函數開始,到本程序文件的最后一個函數結束;D)本程序文件的第一個函數開始,到本程序main函數結束;10. 以下敘述中正確的是【 】A A)構成C程序的基本單位是函數 B)可以在一個函數中定義另一個函數 C)main()函數必須放在其他函數之前 D)所有被調用的函數一定要在調用之前進行定義 11. 以下敘述不正確的是【 】DA)一個C源程序可由一個或多個函數組成;B)一個C源程

4、序必須包含一個main函數;C)C程序的基本組成單位是函數;D)在C程序中,注釋說明只能位于一條語句的后面;12. 以下敘述中正確的是【 】CA)用C語言實現的算法必須要有輸入和輸出操作;B)用C語言實現的算法可以沒有輸出但必須要有輸入;C)用C程序實現的算法可以沒有輸入但必須要有輸出;D)用C程序實現的算法可以既沒有輸入也沒有輸出;13. 以下說法錯誤的是【 】C A)一個算法應包含有限個步驟 B)在計算機上實現的算法是用來處理數據對象的 C)算法中指定的操作,不能通過已經實現的基本運算執行有限次后實現 D)算法的目的是為了求解 14. 算法是指為解決某個特定問題而采取的確定且有限的步驟,下

5、面不屬于算法的五個特性的是【 】B A)有零個輸入或多個輸入 B)高效性 C)有窮性 D)確定性 二判斷題1. 一個C程序的執行總是從該程序的main函數開始,在main函數最后結束。【 】2. main函數必須寫在一個C程序的最前面。 【 × 】3. 一個C程序可以包含若干的函數?!?】4. C程序的注釋部分可以出現在程序的任何位置,它對程序的編譯和運行不起任何作用。但是可以增加程序的可讀性?!?】5. C程序的注釋只能是一行。【× 】6. C程序的注釋不能是中文文字信息。【× 】7. 可以使用Turbo C來編譯和連接一個C程序?!?】8. 可以使用Turbo

6、 C來運行一個C程序。【 】9. 可以使用Turbo C來實時調試(即動態調試)一個C程序。【 】三問答題1. c語言程序的總體結構是怎樣的?答:一個完整的語言程序,是由一個main()函數(又稱主函數)和若干個其它函數結合構成,或僅由一個main()函數構成。2. c語言程序的基本單位是什么?它的結構又如何?答:函數是語言程序的基本單位,每個源文件可由一個或多個函數組成。C語言的任何函數(包括主函數main())都是由函數首部和函數體兩部分組成。函數的一般結構如下:函數類型 函數名(函數參數表) 函數首部 函數體 說明語句部分; 執行語句部分; 3. 主函數main()在程序中的地位如何。程

7、序總是從哪個函數開始執行,到哪個函數執行完后結束?答:一個源程序不論由多少個文件組成,都只能有一個main函數,即主函數。main()函數的作用,相當于其它高級語言中的主程序。其它函數的作用,相當于子程序。不論主函數在程序中的位置如何,C語言程序總是從main()函數開始執行,也是在main()函數終止執行。當主函數執行完畢時,整個程序也執行完畢。習慣上,將主函數main()放在程序的最前面。4. 什么是算法?算法的基本特征是什么?答:算法(Algorithm)是為解決某個問題而采取的方法和步驟,是程序的靈魂。一個算法應該具有以下五個重要的特征: 1.有窮性算法的有窮性是指算法必須能在執行有限

8、個步驟之后終止,不能是無限的。2.確切性算法的每一步驟必須有確切的定義,而不能是含糊的,模棱兩可的。3.可行性算法中的所有計算步都可以被分解為有限次的基本運算,即每個計算步都可以在有限時間內完成。4.有0個或多個輸入一個算法有0個或多個輸入,以刻畫運算對象的初始情況。所謂0個輸入是指算法本身定出了初始條件。 5. 有一個或多個輸出一個算法有一個或多個輸出,以反映對輸入數據加工后的結果。沒有輸出的算法是毫無意義的。5. 結構化程序設計采用方法是什么?答:結構化程序設計方法的主要原則可以概括為:(1)自頂向下。程序設計時,應先考慮總體,后考慮細節。(2)逐步求精。對復雜問題,應設計一些子目標作為過

9、渡,逐步細化。 (3)模塊化。一個復雜問題,肯定是由若干個稍簡單的問題構成(4)每種程序結構允許有一個入口和一個口。(5)嚴格控制GOTO語句的使用。6. 程序設計的一般一那幾個步驟?答:程序設計的一般步驟如下:1.分析問題對要解決的問題,首先必須分析清楚,明確問題的要求,列出所有已知量,找出問題的求解范圍、解的精度等。2.建立數學模型對實際問題進行分析之后,找出它的內在規律,就可以建立數學模型。3.選擇算法建立數學模型后,還不能著手編程序,必須根據數據結構,選擇解決問題的算法。一般選擇算法時要注意:(1) 算法的邏輯結構盡可能簡單。(2) 算法所要求的存儲量應盡可能少。(3) 避免不必要的循

10、環,減少算法的執行時間。(4) 在滿足問題要求條件下,使所需的計算量最小。4.編寫程序 把整個程序看作一個整體,先全局后局部,自頂向下,一層一層分解處理。如果某些子問題的算法相同,而僅僅是參數不同,可以用函數來表示。5.調試運行 準備多組試驗數據,調試運行。對程序中的錯誤進行修改,使程序能運行出結果。6.分析結果對試驗數據計算的結果進行分析,看是否正確。如果不正確,返回修改程序,再調試運行。7.寫出程序的文檔主要是對程序中的變量、函數或過程作必要的說明。解釋編程思路,畫出框圖,討論運行結果等。7. 執行一個c語言程序的一般過程是什么?答:一個簡單C程序的上機執行過程如下圖所示。 1)啟動Tc,

11、進入Tc集成環境。 2)編輯(或修改)源程序。 3)編譯。如果編譯成功,則可進行下一步操作;否則,返回2)修改源程序,再重新編譯,直至編譯成功。 4)連接。如果連接成功,則可進行下一步操作;否則,根據系統的錯誤提示進行相應修改,再重新連接,直至連接成功。 5)運行。通過觀察程序運行結果,驗證程序的正確性。 6)退出Tc集成環境,結束本次程序運行。編輯并保存編譯連接運行新建一個程序文件源程序.c文件目標文件.obj可執行.exe文件.obj語法錯誤邏輯錯誤圖 C程序的上機執行過程第2章習 題一選擇題1. 不合法的字符常量是【 】B 。A) t B) “B” C) a D)x322. 合法的字符常

12、量是【 】D 。A) 084 B) 84 C) ab D)x4A3. C語言提供的合法的數據類型關鍵字是【 】DB。A) Float B) signed C) integer D)chara4. 屬于合法的C語言長整型常量的是【 】B 。A)2736 B)0L C)2E10 D)(long)58762735. 下面選項中,不是合法整型常量的是【 】B。A)160 B)0xcdg C)01 D)0x48a6. 以下所列的C語言常量中,錯誤的是【 】B 。A)0xFF B)1.2e0.5 C)2L D)727. 下面四個選項中,均是不正確的8進制數或16進制數的選項是【 】D 。A)016 0x8

13、f 018 B)0abc 017 0xaC)010 -0x11 0x16 D)0a12 7ff -1238. 下選項中不屬于C語言的類型是【 】D。A)signed short int B)unsigned long intB)unsigned int D)long short9. 判斷int x = 0xaffb1。x的結果是【 】B 。A)賦值非法 B)溢出 C)為affb D)為ffbc10. 下面選項中,是合法浮點數的是【 】B。A)+1e0.5 B).60 C)123e D)e311. 在C語言中,要求參加運算的數必須是整數的運算符是【 】C 。A)/ B)* C)% D) =12.

14、 在C語言中,字符型數據在內存中存放形式是【 】D。A)原碼 B)BCD碼 C)反碼 D)ASCII碼13. 下列語句中,不符合語法的賦值語句是【 】A 。A)a=7+b+c=a+7; B)a=7+b+ ;C)a=(7+b,b+,a+7); D)a=7+b,c=a+7; 14. 下面非法的C語言轉義字符是【 】B。A)b B)0xf C)037 D)15. 有字符串如下,"n407as1"xabc",則字符串的長度為【 】DA)6 B)7 C)8 D)916. 對于語句:f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判斷中,正確的是【 】B。A)語

15、法錯誤 B)f為5.0 C)f為0.0 D)f為2.017. 與代數式 不等價的C語言表達式是【 】A。A)x*y/u*v B)x*y/u/v C)x*y/(u*v) D)x/(u*v)*y18. 在C語言中,數字029是一個【 】D 。A)八進制數 B)十六進制數 C)十進制數 D)非法數19. C語言中整數-8在內存中的存儲形式為【 】A。A)1111111111111000 B)100000000001000C)000000000001000 D)111111111111011120. 對于char cx=039;語句,正確的是【 】A 。A)不合法 B)cx的ASCII值是33C)cx

16、的值為四個字符 D)cx的值為三個字符21. 在C語言中,不正確的short類型的常數是 【 】B 。A)123 B)32768 C)037 D)0xAF22. 若int k=7,x=12;則能使值為3的表達式是【 】D。A)x%=(k%=5) B)x%=(kk%5)C)x%=kk%5 D)(x%=k)(k%=5)23. 假定x和y為double型,則表達式x=2,y=x+3/2的值是【 】D。A)3.500000 B)3 C)2.000000 D)3.00000024. 設以下變量均為int類型,則值不等于7的表達式是【 】C。A)(x=y=6,x+y,x+1) B)(x=y=6,x+y,y

17、+1)C)(x=6,x+1,y=6,x+y) D)(y=6,y+1,x=y,x+1)25. 在16位C編譯系統上,若定義long a;,則能給a賦40000的正確語句是【 】D。A)a=20000+20000。 B)a=4000*10。C)30000+10000。 D)a=4000L*10L。26. 7/9*9 在C語言中的計算結果是 【 】C。A)1 B)7 C)0 D)以上都不是27. 以下能正確定義且賦初值的語句是【 】B A)int n1=n2=10; B)char c=32; C)float f=f+1.1; D)double x=12.3E2.5; 28. 若有定義:int a=7

18、;float x=2.5,y=4.7;則表達式x+a%3*(int)(x+y)%2/4的值是【 】AA)2.500000 B)2.750000 C)3.500000 D)0.000000 29. 若有運算符<<,sizeof,&=,則它們按優先級由高至低的正確排列次序是【 】BA)sizeof,&=,<<, B)sizeof,<<,&=C),<<,sizeof,&= D)<<,&=,sizeof30. 設變量a是int型,f是float型,i是double型,則表達式10+a+i*f值的數據類型

19、為【 】C A)int B)float C)double D)不確定二填空題1. 在C語言中(以16位PC機為例),一個char數據在內存中所占字節數為【 1 】,其數值范圍為【 0 】【255 】。一個int數據在內存中所占字節數為【 2 】 ,其數值范圍為【-32768 】 【 32767 】。一個long數據在內存中所占字節數為【 4 】,其數值范圍為【-214783648】 【 214783647 】。一個float數據在內存中所占字節數為【 4 】,其數值范圍為【-3.4×1038】 【3.4×1038 】。2. C語言的標識符只能由大小寫字母,數字和下劃線三種字

20、符組成,而且第一個字符必須為【字母或下劃線】。3. 字符常量使用一對【單引號】界定單個字符,而字符串常量使用一對【雙引號】來界定若干個字符的序列。4. 在C語言中,不同運算符之間運算次序存在【優先級】的區別,同一運算符之間運算次序存在【結合性 】的規則。5. 設x,i,j,k都是int型變量,表達式x=(i=4,j=16,k=32)計算后,x的值為【 32 】 。6. 設x=2.5,a=7,y=4.7,則x+a%3*(int)(x+y)%2/4為【 2 】。7. 設a=2,b=3,x=3.5,y=2.5,則表達式(float)(a+b)/2+(int)x%(int)y的值為【 3.5 】。8.

21、 數學式子的C語言表達式為【exp(3)+sqrt(2*x+3*y) 】。9. 數學式子的C語言表達式為【 abs(x-y)+(x+y)/(3*x) 】 。10. 數學式子的C語言表達式為【 (-b+sqrt(b*b-4*a*c)/(2*a) 】 。11. 已知:char a=a,b=b,c=c,i;則表達式i=a+b+c的值為【 294 】。12. 已知int a=12,n=5;則:a+=a; a-=2;a*=2+3 ;a/=a+a ;n%=(n%=2) ;a+=a-=a*=a ;表達式運算后a的值各為【 0 】。13. 設int a; float f; double i ;則表達式10+a

22、+i*f值的數據類型是【double 】。14. 若a為int型變量,則表達式 (a=4*5,a*2) ,a+6的值為【 40 】。15. 假設所有變量均為整型,則表達式(a=2,b=5,a+,b+,a+b)的值為【 9 】。16. 已知a,b,c是一個十進制數x的百位,十位,個位,則計算該a,b,c數的表達式是【 a=x/100,b=(x-x/100*100)/10,c=x%10 】。17. 定義:double x=3.5,y=3.2;則表達式(int)x*0.5的值是【 1.5 】,表達式y+=x+的值是【6.7 】。18. 定義:int m=5,n=3;則表達式m/=n+4的值是【 0

23、】,表達式m=(m=1,n=2,n-m)的值是【 1 】,表達式m+=m-=(m=1)*(n=2)的值是【-2 】。19. 表達式5%(-3)的值是【 2 】,表達式-5%(-3)的值是【 -2 】。20. 若a是int變量,則執行表達式a=25/3%3后,a的值是【 2 】。三判斷題1. 在C程序中對用到的所有數據都必須指定其數據類型。【 】2. 一個變量在內存中占據一定的存儲單元?!?】3. 一個實型變量的值肯定是精確的?!?× 】4. 對幾個變量在定義時賦初值可以寫成:int a=b=c=3;【 × 】5. 自增運算符(+)或自減運算符(-)只能用于變量,不能用于常量

24、或表達式?!?】6. 在C程序的表達式中,為了明確表達式的運算次序,常使用括號“()”?!?】7. %運算符要求運算數必須是整數。【 】8. 若a是實型變量,C程序中允許賦值a=10,因此實型變量中允許存放整型數?!?#215; 】9. 在C程序中,逗號運算符的優先級最低。【 】10. C語言不允許混合類型數據間進行運算?!?#215; 】 四簡答題1. 為什么C語言的字符型可以進行數值運算? 答:C語言將字符(character)以其ASCII碼的值進行存儲和處理,因此可以參加數值運算。2. 簡述a和“a”的區別。答:字符常量由單引號括起來,字符串常量由雙引號括起來。例如:'a

25、9;和 "a"是不同的。'a'是字符常量,占一個字節;"a"是字符串常量,占2個字節。3. 程序:int m=12; m=15;為什么整型變量m的值在運算后不是當初的12,而是15? 答:int m=12;是在定義變量時進行初始化,m=15;是程序運行時對變量重新賦值,原來的值也就隨之改變。4. 將下面各數用八進制和十六進制數表示:十進制 32 1 32768 2002 128 0八進制 040 0177777 0100000 03722 0177600 00十六進制0x20 0xffff 0x8000 0x7d2 0xff80 0x05

26、. 華氏溫度F與攝氏溫度c的轉換公式為:c=(F-32)*5/9 ,則float c,F; c=5/9*(F-32)是其對應的C語言表達式嗎?如果不是,為什么?答:對五程序閱讀題1. 寫出以下程序運行的結果。void main( ) char c1='a',c2='b',c3='c',c4='101',c5='102' printf("a%c b%ctc%ctabcn",c1,c2,c3); printf("tb%c %c",c4,c5);2. 寫出以下程序運行的結果。voi

27、d main( ) int i,j,m,n; i=8; j=10; m=+i; n=j+; printf(“%d,%d,%d,%d”,i,j,m,n); 9,11,9,10 第3章習題一選擇題1. printf函數中用到格式符“5s”,其中數字5表示輸出的字符串占用5列。如果字符串長度小于5,則輸出按方式【 】C。A)從左起輸出該字串,右補空格 B)按原字符長從左向右全部輸出C)右對齊輸出該字串,左補空格 D)輸出錯誤信息2. 已有定義int a=-2;和輸出語句:printf(“%8lx”,a);以下正確的敘述是【D 】。A)整型變量的輸出格式符只有d一種B)x是格式符的一種,它可以適用于任

28、何一種類型的數據C)x是格式符的一種,其變量的值按十六進制輸出,但8lx是錯誤的D)8lx不是錯誤的格式符,其中數字8規定了輸出字段的寬度3. 以下程序的輸出結果是 【 】D。main() int a=3; printf("%dn",(a+=a-=a*a) ); A) -6 B)12 C) 0 D) -12 4. putchar函數可以向終端輸出一個【 】D。A)整型變量表達式值 B)實型變量值C)字符串 D)字符或字符型變量值5. 若x,y均定義為int型,z定義為double型,以下不合法的scanf函數調用語句是【 】D。A)scanf(“%d%lx,%le”,&am

29、p;x,&y,&z);B)scanf(“%2d*%d%lf”,&x,&y,&z);C)scanf(“%x%*d%o”,&x,&y);D)scanf(“%x%o%6.2f”,&x,&y,&z);6. 已有如下定義和輸入語句,若要求a1,a2,c1,c2的值分別為10,20,A和B,當從第一列開始輸入數據時,正確的數據輸入方式是【 】A。int a1,a2; char c1,c2;scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);A)10A20B<CR> B

30、)10 A 20 B<CR>C)10 A20B<CR> D)10A20 B<CR>7. 已有定義int x; float y;且執行scanf(“%3d%f”,&x,&y);語句,若從第一列開始輸入數據12345 678<回車>,則x的值為【 】B。A)12345 B)123C)45D)3458. 已有定義int x; float y;且執行scanf(“%3d%f”,&x,&y);語句,若從第一列開始輸入數據12345 678<回車>,則y的值為【 】B。A)無定值 B)45.000000 C)678

31、.000000 D)123.0000009. 閱讀以下程序,當輸入數據的形式為25,13,10<CR>正確的輸出結果為【D 】。main()int x,y,z;scanf(“%d%d%d”,&x,&y,&z);printf(“x+y+z=%dn”,x+y+z);A)x+y+z=48 B)x+y+z=35C)x+z=35 D)不確定值10. 邏輯運算符兩側運算對象的數據類型【 】D。A)只能是0或1 B)只能是0或非0正數C)只能是整型或字符型數據 D)可以是任何類型的數據11. 以下關于運算符優先順序的描述中正確的是【 】C。A)關系運算符<算術運算符

32、<賦值運算符<邏輯與運算符B)邏輯與運算符<關系運算符<算術運算符<賦值運算符C)賦值運算符<邏輯與運算符<關系運算符<算術運算符D)算術運算符<關系運算符<賦值運算符<邏輯與運算符12. 下列運算符中優先級最高的是【 】B。A)<B)+C)&&D)!=13. 能正確表示“當x的取值在1,10和200,210范圍內為真,否則為假”的表達式是【 】C。A) (x>=1)&&(x<=10)&&(x>=200)&&(x<=210)B) (x&

33、gt;=1)|(x<=10)|(x>=200)|(x<=210)C) (x>=1)&&(x<=10)|(x>=200)&&(x<=210)D) (x>=1)|(x<=10)&&(x>=200)|(x<=210)14. 能正確表示邏輯關系:“a10或a0”的C語言表達式是【 】D。A)a>=10 or a<=0 B)a>=0|a<=10C)a>=10 &&a<=0 D)a>=10a<=015. 設int x=1,y=1;

34、表達式(!x|y-)的值是【 】BA)0 B)1 C)2 D)-116. 有如下程序段int a=14,b=15,x;char c=A;x=(a&&b)&&(c<B);執行該程序段后,x的值為【 】DA)ture B)false C)0 D)1 xa b c17. 表示圖中坐標軸上陰影部分的正確表達式是【 】C。A) (x<=a)&&(x>=b)&&(x<=c)B) (x<=a)|(b<=x<=c)C) (x<=a)|(x>=b)&&(x<=c)D) (x

35、<=a)&&(b<=x<=c)18. 判斷char型變量ch是否為大寫字母的正確表達式是【 】C。A)A<=ch<=ZB)(ch>=A)&(ch<=Z)C)(ch>=A)&&(ch<=Z)D)(A<=ch)AND(Z>=ch)19. 設x、y和z是int型變量,且x=3,y=4,z=5,則下面表達式中值為0的是【D 】。A) x&&y B)x<=yC)x|y+z&&y-z D)!(x<y)&&!z|1)20. 已知x=43,ch=

36、A,y=0;則表達式(x>=y&&ch<B&&!y)的值是【 】C。A)0 B)語法錯 C)1 D)“假”21. 若希望當A的值為奇數時,表達式的值為“真”,A的值為偶數時,表達式的值為“假”,則以下不能滿足要求的表達式是【 】C。A)A%2=1 B)!(A%2=0) C)!(A%2) D)A%222. 設有:int a=1,b=2,c=3,d=4,m=2,n=2;執行(m=a>b)&&(n=c>d)后n的值為【 】B。A)1 B)2 C)3 D)423. 判斷char型變量c1是否為小寫字母的正確表達式是【 】D。A)a

37、<=c1<=zB)(c1>=a)&&(c1<=z)C)(a>=c1)|(z<=c1)D)(c1>=a)&&(c1<=z)24. 已知x,y,z均為整型變量,且值均為1,則執行語句+x|+y&&+z;后,表達式x+y的值為【 】CA)1 B)2 C)3 D)425. 以下程序的運行結果是【 】B。#include “stdio.h”main() int a,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);A)6,1 B)2,1 C)

38、6,0 D)2,026. 以下不正確的if語句形式是【 】C。A)if(x>y&&x!=y);B)if(x=y) x+=y;C)if(x!=y) scanf(“%d”,&x) else scanf(“%d”,&y);D)if(x<y) x+; y+;27. 已知char ch='C' ;則以下表達式的值是【 】。Dch=(ch>='A' && ch<='Z')?(ch+32):ch;A)A B)a C)Z D)c28. 已知int x=10,y=20,z=30;以下語句:if

39、(x>y)z=x; x=y; y=z;執行后x,y,z的值是【 】。BA)x=10,y=20,z=30 B)x=20,y=30,z=30C)x=20,y=30,z=10 D)x=20,y=30,z=2029. 以下if語句語法正確的是【 】B。A) if(x>0)printf(“%f”,x)else printf(“%f”,-x);B)if(x>0)x=x+y; printf(“%f”,x); else printf(“%f”,-x);C)if(x>0)x=x+y; printf(“%f”,x); ;else printf(“%f”,-x);D)if(x>0)x=

40、x+y; printf(“%f”,x) else printf(“%f”,-x);30. 有如下程序main()float x=2.0,y; if(x<0.0)y=0.0; else if(x<10.0)y=1.0/x; else y=1.0; printf("%fn",y);該程序的輸出結果是【 】。CA)0.000000 B)0.250000 C)0.500000 D)1.00000031. 若int k=8;則執行下列程序后,變量k的正確結果是【 】D。main()int k=8; switch(k) case 9:k+=1; case 10:k+=1;

41、case 11:k+=1;break; default:k+=1; printf("%dn",k);A)12 B)11 C)10 D)9 32.  對表達式for(表達式1; 表達式3)可理解為 【 】。BA)for(表達式1;0;表達式3) B)for(表達式1;1;表達式3) C)for(表達式1;表達式1;表達式3) D)for(表達式1;表達式3;表達式3) 33.  下面有關for循環的正確描述是【 】D。 A)for循環只能用于循環次數已經確定的情況 B)for循環是先執行循環體語句,后判斷表達式 C)在for循

42、環中,不能用break語句跳出循環體 D)for循環的循環體語句中,可以包含多條語句,但必須用花括號括起來 34. 設有程序段int k=10;while(k=0) k=k-1;則下面描述中正確的是【 】C。A)while循環執行10次B)循環是無限循環C)循環體語句一次也不執行D)循環體語句執行一次35. 設有以下程序段int x=0,s=0;while(!x!=0) s+=+x;printf(“%d”,s);則【 】B。A)運行程序段后輸出0 B)運行程序段后輸出1C)程序段中的控制表達式是非法的 D)程序段執行無限次36. 語句while(!E);中的表達式!E等價于【 】A。

43、A)E=0B)E!=1C)E!=0D)E=137. 下面程序段的運行結果是【 】A。a=1; b=2; c=2;while(a<b<c) t=a; a=b; b=t; c-;printf(“%d,%d,%d”,a,b,c);A)1,2,0B)2,1,0C)1,2,1D)2,1,138. 下面程序段的運行結果是【 】D。x=y=0;while(x<15) y+,x+=+y;printf(“%d,%d”,y,x);A)20,7B)6,12C)20,8D)8,2039. 已知 int t=0; while(t=1) . 則以下敘述正確的是 【 】。 BA)循環控

44、制表達式的值為0 B)循環控制表達式的值為1 C)循環控制表達式不合法 D)以上說法都不對 40. 下面程序段的運行結果是【 】C。int n=0;while(n+<=2); printf(“%d”,n);A)2B)3C)4D)有語法錯41. 設有程序段t=0;while(printf(“*”)t+; if(t<3) break;則下面描述正確的是【 】D。A)其中循環控制表達式與0等價 B)其中循環控制表達式與0等價C)其中循環控制表達式是不合法的 D)以上說法都不對42. C語言中while和do-while循環的主要區別是【 】A。A)do-while的循環體至少無條件執行一

45、次B)while的循環控制條件比do-while的循環控制條件嚴格C)do-while允許從外部轉到循環體內D)do-while的循環體不能是復合語句43. 以下描述中正確的是【 】C。A)由于do-while循環中循環體語句只能是一條可執行語句,所以循環體內不能使用復合語句B)do-while循環由do開始,用while結束,在while(表達式)后面不能寫分號C)在do-while循環體中,一定要有能使while后面表達式的值變為零(“假”)的操作D)do-while循環中,根據情況可以省略while44. 若i為整型變量,則以下循環執行次數是【 】B。for(i=2;i=0;) prin

46、tf(“%d”,i-);A)無限次B)0次 C)1次 D)2次45. 以下for循環的執行次數是【 】C。for(x=0,y=0;(y=123)&&(x<4);x+)A)是無限循環B)循環次數不定C)執行4次D)執行3次46. 以下不是無限循環的語句為【 】A。A)for(y=0,x=1;x>+y;x=i+) i=x;B)for(;x+=i);C)while(1) x+; D)for(i=10;i-) sum+=i;47. 下面程序段的運行結果是【 】C。for(y=1;y<10;) y=(x=3*y,x+1),x-1);printf(“x=%d,y=%d”,

47、x,y);A)x=27,y=27B)x=12,y=13C)x=15,y=14D)x=y=2748. 下面程序段的運行結果是【 】D。for(x=3;x<6;x+) printf(x%2)?(“*%d”):(“#%dn”),x);A)*3 B)#3 C)#3 D)*3#4 #4 *4 *4#5 *5 *5 #549. 下列程序段不是死循環的是【 】D。A)int i=100;while(1)i=i%100+1; if(i>100) break;B) for(;);C) int k=0;do +k; while(k>=0);D) int s=36;while(s) -s;50.

48、執行語句for(i=1;i+<4;);后變量i的值是【 】C。A)3B)4C)5D)不定51. 以下正確的描述是【 】。BA)continue語句的作用是結束整個循環的執行B)只能在循環體內和switch語句體內使用break語句C)在循環體內使用break語句或continue語句的作用相同D)從多層循環嵌套中退出時,只能使用goto語句52. 下面程序段【 】D。for(t=1;t<=100;t+) scanf(“%d”,&x); if(x<0) continue; printf(“%3d”,t);A)當x<0時整個循環結束 B)x>=0時什么也不輸出

49、C)printf函數永遠也不執行 D)最多允許輸出100個非負整數53. 下面程序段【 】C。x=3;do y=x-; if(!y) printf(“x”); continue; printf(“#”);while(1<=x<=2);A)將輸出#B)將輸出#*C)是死循環D)含有不合法的控制表達式二填空題1. 設y是int型,請寫出y為奇數的關系表達式 【 y%2 】 。2. 設int a=5,b=6,表達式(+a=b-)?+a:-b的值是【 7 】 。3. 將以下程序寫成三目運算表達式是【a=(a>b)?a:b; 】 。if(a>b)max=a;else max=b;

50、4. 以下程序輸出的結果是【 0 】。main() int a=5,b=4,c=3,d;d=(a>b>c);printf("%dn",d);5. 若從鍵盤輸入58,則以下程序輸出的結果是 【585858 】 。main()int a;scanf("%d",&a);if(a>50)printf("%d",a);if(a>40)printf("%d",a);if(a>30)printf("%d",a);6. 閱讀下面語句,則程序的執行結果是 【 1,0 】 。#

51、include "stdio.h"main() int a=-1,b=1,k;if(+a<0)&&!(b-<=0)printf("%d,%dn",a,b);else printf("%d,%dn",b,a);7. 以下程序的輸出結果為【 】。main() short i; i=-4; printf(“ni:dec=%d,oct=%o,hex=%x,unsigned=%un”,i,i,i,i);8. 以下程序的輸出結果為【*3.140000,3.142* 】。main() printf(“*%f,%4.3f*

52、n”,3.14,3.1415);9. 以下程序的輸出結果為【c:dec=120,oct=170,hex=78,ASCII=x 】。main() char c=x; printf(“c:dec=%d,oct=%o,hex=%x,ASCII=%cn”,c,c,c,c); 10. 以下程序的輸出結果為【 】。x=1 y=2 *sum*=3 10 Squared is:100main() int x=1,y=2; printf(“x=%d y=%d *sum*=%dn”,x,y,x+y); printf(“10 Squared is:%dn”,10*10);11. 以下程序段的輸出結果為【 】。int

53、 x=7281;printf(“(1) x=%3d,x=%6d,x=%6o,x=%6x,x=%6un”,x,x,x,x,x);printf(“(2) x=%-3d,x=%-6d,x=$%-06d,x=$%06d,x=%06dn”,x,x,x,x,x);printf(“(3) x=%+3d,x=%+6d,x=%+08dn”,x,x,x);printf(“(4) x=%o,x=%#on”,x,x);printf(“(5) x=%x,x=%#xn”,x,x);12. 假設變量a和b均為整型,以下語句可以不借助任何變量把a、b中的值進行交換。請填空。a+=【b 】; b=a-【 b 】; a-=【b

54、】;13. 假設變量a、b和c均為整型,以下語句借助中間變量t把a、b和c中的值進行交換,即:把b中的值給a,把c中的值給b,把a中的值的給c。例如:交換前,a=10,b=20,c=30;交換后,a=20,b=30,c=10。請填空?!?t=a; 】; a=b; b=c; 【c=t; 】;14. 有一輸入函數scanf(“%d”,k);其不能使float類型變量k得到正確數值的原因是【類型錯 】和【 地址錯 】。15. 已有定義int a; float b,x; char c1,c2;為使a=3,b=6.5,x=12.6,c1=a,c2=A,正確的scanf函數調用語句是【scanf("%d%f%f%c%c",&

溫馨提示

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

評論

0/150

提交評論