已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
全國計算機(jī)等級考試二級教程C語言程序設(shè)計習(xí)題分析與解答(二) 第三章 順序結(jié)構(gòu)習(xí)題分析與解答 一、選擇題 (單選題)3.1 【參考答案】 C)3.2 【參考答案】 C)3.3 【參考答案】 D)3.4 【參考答案】 C)3.5 【參考答案】 D)3.6 【參考答案】 B)3.7 【參考答案】 C)3.8 【參考答案】 C)3.9 【參考答案】 A)3.10 【參考答案】 B)3.11 【參考答案】 C)3.12 【參考答案】 D)3.13 【參考答案】 D)3.14 【參考答案】 A)3.15 【參考答案】 C)3.16 【參考答案】 C)3.17 【參考答案】 C)3.18 【參考答案】 D)3.19 【參考答案】 C)3.20 【參考答案】 B)二、 填空題3.21 【參考答案】 (1) -200,2500 (2) i=-200,j=2500(3) i=-200j=25003.22 【參考答案】 1 12 2 0 3 03.23 【參考答案】 1 一條語句 2 分號(或;)3.24 【參考答案】 分號(;)3.25 【參考答案】 1:100 25.82 1.892342: 100 25.82 1.89234 3:100 25.82 1.892343.26 【參考答案】 x=127, x= 127, x= 177,x= 7f, x= 1273.27 【參考答案】 x=127, x=127 , x=127 ,x= 000127, x=%06d3.28 【參考答案】 a=513.789215,a= 513.79,a= 513.78921500,a= 513.78921500三、 編程題和改錯題3.29 【分析與解答】 (1) 主函數(shù)名main后應(yīng)有一對圓括號。(2) 變量定義語句中,v的前面缺逗號。(3) 第三行的printf語句用以提示輸入,但是原樣輸出的字符串沒有用雙引號括起來;另外,從輸入的形式看,輸入的數(shù)據(jù)緊跟在提示之后,因此,printf格式串中最后不應(yīng)該有換行符n。(4) 因為輸入項a、b、c從定義和計算結(jié)果來看都是double類型,因此,第四行scanf語句格式串中的格式說明不應(yīng)當(dāng)用%d而應(yīng)當(dāng)用%lf;且每一個變量之前應(yīng)該加地址運(yùn)算符&。(5) 第七行的printf語句中應(yīng)當(dāng)把%d都改成%lf或%f;按輸出要求在格式串中應(yīng)添加相應(yīng)的原樣輸出的字符;因為下一個printf的輸出從新的一行開始,因此在本輸出語句的格式串的最后應(yīng)當(dāng)加換行符n。(6) 第八行的printf語句中應(yīng)當(dāng)把格式串整理合并放在輸出項的前面,輸出項放在后面,%d都改成%lf或%f;中間的n刪去。(7) 請讀者自己寫出修改后的程序,并上機(jī)調(diào)試。3.30 【分析與解答】 (1) 分析:可用算術(shù)式56060把分鐘換算成小時和分鐘,商數(shù)就是小時數(shù),余數(shù)就是分鐘數(shù)。(2) 確定變量的名字和定義變量的類型:在程序中把小時數(shù)放在變量h中,把分鐘數(shù)放在變量m中。這兩個變量的類型可以是整型(本題中采用整型),也可以是實(shí)型。(3) 確定所用算法:求SX()56060SX的商數(shù),在C語言中可以用整除的算法,語句是h=560/60;。求余數(shù)可用求余運(yùn)算符 %:560%60,其值放入變量m中的語句是:m=560%60;。(4) 設(shè)計輸出格式。若輸出的形式定為:小時:分鐘,則按此形式設(shè)計輸出語句。(5) 把以上內(nèi)容放在主函數(shù)的一對花括號中。(6) 編寫程序如下: main() int h, m; h=560/60; m=560%60; printf(The result: %3d : %3dn, h,m); 運(yùn)行結(jié)果是: The result: 9 : 203.31 【分析與解答】 (1) 確定變量的名字和定義變量的類型。若用a存放1500,用b存放350;用q存放商數(shù),用r存放余數(shù),所有變量應(yīng)定義成int類型。(2) 設(shè)計輸入語句從終端輸入1500和350;在輸入語句之前,應(yīng)當(dāng)設(shè)計一個輸出語句,用以提示輸入。(3) 可用整除求商數(shù),結(jié)果放在變量q中??捎们笥噙\(yùn)算符%求兩數(shù)之余數(shù),結(jié)果放在變量r中。(4) 設(shè)計輸出語句。輸出a、b、q、r。(5) 把以上內(nèi)容放在主函數(shù)的一對花括號中。本題的程序與3.30相似,請讀者參考上題并根據(jù)本題的解釋自己編程,并上機(jī)調(diào)試。3.32 【分析與解答】 (1) 定義4個雙精度變量a、b、c和ave,變量a、b、c分別存放讀入的3個雙精度數(shù),ave存放它們的平均值。(2) 設(shè)計輸入語句,以及在此之前用于提示輸入的(printf)語句。(3) 設(shè)計求平均值的算法,把所求得的平均值放入變量ave中。(4) 設(shè)計把變量ave中的數(shù),從小數(shù)點(diǎn)后第二位數(shù)進(jìn)行四舍五入的算法?,F(xiàn)舉例說明:若ave中的數(shù)為123.4644,為了保留此值小數(shù)點(diǎn)后一位,可用表達(dá)式:(int)(123.4644*10)/10.0;依次推算,為了保留此值小數(shù)點(diǎn)后二位,可用表達(dá)式:(int)(123.4644*100)/100.0;其他依此類推。(5) 若要求對小數(shù)點(diǎn)后第二位數(shù)進(jìn)行四舍五入,則可對原數(shù)加0.05后再進(jìn)行以上運(yùn)算。如要求保留123.4644小數(shù)點(diǎn)后一位且對第二位數(shù)進(jìn)行四舍五入,可用表達(dá)式:(int)(123.467+0.05)*10)/10.0。注意:分母一定要用實(shí)數(shù)10.0而不能用整數(shù)10,否則就變成整除了;若要求保留123.4644小數(shù)點(diǎn)后兩位且對第三位數(shù)進(jìn)行四舍五入,可用表達(dá)式:(int)(123.467+0.005)*100)/100.0;其他依此類推。(6) 設(shè)計輸出語句。輸出a、b、c和ave。(7) 把以上內(nèi)容放在主函數(shù)的一對花括號中。(8) 編寫程序如下:main() double a,b,c,ave;printf(Enter a ,b ,c : );scanf(%lf%lf%lf, &a, &b, &c );ave=(a+b+c)/3;printf(ave=%fn, ave); /*用以比較四舍五入前后的數(shù)據(jù)*/ave=(int)(ave+0.05)*10)/10.0;printf(a=%f, b=%f, c=%f, ave=%fn, a,b,c,ave); 3.33 【分析與解答】 (1) 關(guān)于對變量中的數(shù)進(jìn)行交換的算法請參考3.7題中的解釋和教程中有關(guān)的例題。(2) 定義4個整型變量a、b、c和t,變量a、b、c分別存放讀入的3個整數(shù),t用作臨時存儲單元。(3) 設(shè)計輸入語句,以及在此之前用于提示輸入的(printf)語句。(4) 輸出a、b、c中的值,以便于比較。(5) 交換的步驟如下: 把c中的值賦給t。 把b中的值賦給c。 把a(bǔ)中的值賦給b。 把t中的值賦給a。經(jīng)過以上步驟,已按要求進(jìn)行了交換。(6) 輸出a、b、c中的值。(7) 編寫程序如下:main() int a, b, c, t;printf(Enter a, b, c :n);scanf(%d%d%d,&a,&b,&c);printf(1) a=%d,b=%d,c=%dn,a,b ,c);t=c; c=b; b=a; a=t;printf(2) a=%d,b=%d,c=%dn,a,b,c); 第四章 選擇結(jié)構(gòu)習(xí)題分析與解答一、 選擇題4.1 【參考答案】 A)4.2 【參考答案】 B)4.3 【參考答案】 A)4.4 【參考答案】 D)4.5 【參考答案】 C)4.6 【參考答案】 A)4.7 【參考答案】 B)4.8 【參考答案】 C)4.9 【參考答案】 D)4.10 【參考答案】 D)二、 填空題4.11【參考答案】 1 非零 2 零4.12【參考答案】 、=、=、!KG-*2=4.13 【參考答案】 1 ! 2 & 3 JB1|JB1|4.14【參考答案】 1:!KG-*2(邏輯非) 2:、=(小于、大于、小于等于、大于等于) 3:=、!KG-*2=(等于、不等) 4:&(邏輯與) 5:JB1|JB1|(邏輯或)。 4.15 【參考答案】 !4.16 【參考答案】 1 a=b 或 a1|xJB1|44.17 【參考答案】 14.18 【參考答案】 1 xm0)JB1|JB1|(m1=m0&d1=d0) age=y1-y0; else age=y1-y0-1;讀者可以參考以上語句寫出程序,也可以根據(jù)分析寫出與此形式不同的語句和程序。4.23【分析與解答】 (1) 若輸入的整數(shù)a是奇數(shù),輸出:odd number,是偶數(shù)輸出:even number。(2) 若一個a是偶數(shù),它就能被2除盡,即a%2=0,輸出even number;若是奇數(shù),它就不能被2除盡,即a%2!KG-*2=0,輸出odd number。讀者可以參考以上給出的算法,寫出相應(yīng)的C語句,并編寫出完整的程序。4.24 【分析與解答】 本題的主要算法是從3個數(shù)中找出最大的那個數(shù)。假定始終把最大的數(shù)放在變量max中。(1) 假定a中的數(shù)最大,把a(bǔ)賦給max。(2) 用b去和max比較,若b大于max,則把b賦給max;若不大于max,則什么也不做。(3) 用c去和max比較,若c大于max,則把c賦給max;若不大于max,則什么也不做。(4) 經(jīng)過以上操作,max中已放入了a、b、c三個數(shù)中的最大數(shù),輸出max即可。讀者可以參考以上給出的算法,寫出相應(yīng)的C語句,并編寫出完整的程序。4.25 【分析與解答】 (1) 本題已給出了非常明確的條件,只要寫出正確的條件判斷語句就可基本完成程序的編寫。(2) 由給出的函數(shù)可知,只有x的值在規(guī)定的范圍內(nèi)時,才求出y的值,因此程序應(yīng)當(dāng)對輸入的x進(jìn)行判斷,若超過范圍就不求y的值。(3) 現(xiàn)以使用ifCD#*2else語句為例寫出程序供參考。 main() int x,y;printf(Enter x : ); scanf(%d, &x);if(x-5&x10) if(x=0) y=x-1;else if(x0 ) y=x+1;else if(x-5) y=x;printf(x=%d y=%dn, x,y); printf(*END*nn); 第五章 循環(huán)結(jié)構(gòu)習(xí)題分析與解答一、 選擇題 (單選題)5.1【參考答案】 D)5.2【參考答案】 C)5.3 【參考答案】 B)5.4 【參考答案】 C)5.5 【參考答案】 C)5.6 【參考答案】 B)5.7 【參考答案】 D)5.8【參考答案】 A)5.9 【參考答案】 D)5.10【參考答案】 D)二、 填空題5.11 【參考答案】 1 5 2 4 3 65.12【參考答案】 程序段無限循環(huán),沒有輸出結(jié)果5.13 【參考答案】 -15.14【參考答案】 115.15【參考答案】 1 d=1.0 2 k+ 3 k=0 2 xamin三、 編程題5.17【分析與解答】 (1) 本題的基本算法是求累加值。累加項的值有規(guī)律的遞增,每一項的絕對值比前一項增2,因此可以利用循環(huán)的控制變量的遞增來得到累加項的絕對值。例如: for( i=1; i=1e-4 ) t=t/i;e+=t;i+; (6) 請讀者自己對變量做出正確的定義,設(shè)計輸出語句,完善程序;也可以參考此程序段,按照自己的思路獨(dú)立地完成程序。(7) e的值應(yīng)當(dāng)是:2.71828。(8) 根據(jù)以上分析,讀者已不難用for循環(huán)來實(shí)現(xiàn)求e值的計算。(9) 注意:在完成此程序時,不要對分母中的階乘值進(jìn)行單獨(dú)計算,因為17!的值已超過long類型的最大值,更無法求到50!。5.19【分析與解答】 (1) 從1880年至2000年的年數(shù)可用一個for循環(huán)來取得。(2) 對每一年,用以上指定的條件來進(jìn)行判斷,若滿足條件即為閏年,進(jìn)行輸出。(3) 按輸出的要求,需要設(shè)一個變量用于統(tǒng)計一行中輸出的個數(shù),若在一行上已連續(xù)輸出了5個年數(shù),就需輸出一個換行符,使下一個輸出項在新的一行上開始;若用變量n來做此統(tǒng)計,則當(dāng)表達(dá)式n%5=0時就應(yīng)輸出一個換行符,同時使n重新置0值。(4) 若變量y代表年數(shù),if語句的邏輯表達(dá)式可以寫成如下: (y%4=0 & y%100!=0JB1|JB1|y%400=0)(5) 以下程序段供參考: for ( y=1880; y1|JB1|y%400=0) printf(%d ,y);n+;if(n%5=0) printf(n); n=0; (6) 請讀者自己對變量做出正確的定義并賦初值,完善程序;也可以參考此程序段,按照自己的思路獨(dú)立地完成程序。從1880年至2000年有30個閏年。5.20 【分析與解答】 (1) 不難理解利用以下的for循環(huán)可以在一行上連續(xù)輸出n個*號: for(i=1; i=n; i+) printf(*); printf(n);若n的值是6,則連續(xù)輸出6個*號。(2) 以上圖形是在各行上輸出數(shù)目不等的*號,只是*號的數(shù)目依次有規(guī)律地變化。在上半部分各行依次是1、3、5、7個,因此可以用以下的程序段來實(shí)現(xiàn)這樣的輸出: for(k=1;k=7;k+,k+) for(i=1;i=1;k-,k-) for(i=1;i=k; i+)printf(*);printf(n); 以上程序段從第一列起輸出的結(jié)果如下:* 現(xiàn)在我們已完成了在每行輸出指定數(shù)目的*號。 (3) 輸出結(jié)果與題目要求不同,它們的區(qū)別是:按題目每一行之前有不同的空格,
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 浙江省寧波市鎮(zhèn)海區(qū)立人中學(xué)2019-2020學(xué)年八年級下學(xué)期期中物理試題【含答案、解析】
- 數(shù)據(jù)結(jié)構(gòu)試題庫及答案
- 2025年滬科新版二年級語文下冊月考試卷
- 2025年滬教新版選修1生物上冊月考試卷含答案
- 2025年滬教版八年級歷史上冊月考試卷含答案
- 2025年粵教滬科版選修6歷史上冊月考試卷
- 2025年度企業(yè)催告函模板制作合同3篇
- 個人與個人之間2024年度專利許可合同3篇
- 二零二五農(nóng)機(jī)零部件進(jìn)口代理合同3篇
- 抵押物合同(2篇)
- 2025-2030年中國陶瓷電容器行業(yè)運(yùn)營狀況與發(fā)展前景分析報告
- 2025年山西國際能源集團(tuán)限公司所屬企業(yè)招聘43人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 二零二五年倉儲配送中心物業(yè)管理與優(yōu)化升級合同3篇
- 2025屆廈門高三1月質(zhì)檢期末聯(lián)考數(shù)學(xué)答案
- 音樂作品錄制許可
- 江蘇省無錫市2023-2024學(xué)年高三上學(xué)期期終教學(xué)質(zhì)量調(diào)研測試語文試題(解析版)
- 拉薩市2025屆高三第一次聯(lián)考(一模)英語試卷(含答案解析)
- 開題報告:AIGC背景下大學(xué)英語教學(xué)設(shè)計重構(gòu)研究
- 師德標(biāo)兵先進(jìn)事跡材料師德標(biāo)兵個人主要事跡
- 連鎖商務(wù)酒店述職報告
- 2024年山東省煙臺市初中學(xué)業(yè)水平考試地理試卷含答案
評論
0/150
提交評論