




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、實驗2流程控制實驗2.1實驗?zāi)康?1)掌握復(fù)合語句、if語句、switch語句的使用,熟練掌握for、while、do-while 三種基本的循環(huán)控制語句的使用,掌握重復(fù)循環(huán)技術(shù),了解轉(zhuǎn)移語句與標號語句。(2)熟練運用for、while、do-while 語句來編寫程序。(3)練習(xí)轉(zhuǎn)移語句和標號語句的使用。(4)使用集成開發(fā)環(huán)境中的調(diào)試功能:單步執(zhí)行、設(shè)置斷點、觀察變量值。2.2實驗內(nèi)容及要求.源程序改錯下面是計算s=n!的源程序,在這個源程序中存在若干語法和邏輯錯誤。要求在計算機 上對這個例子程序進行調(diào)試修改,使之能夠正確完成指定任務(wù)。例如,8! =40320。#include int ma
2、in()int i,n,s=1;printf(Please enter n:);scanf(%d,n);for(i=1,i=n,i+)s=s*i;printf(%d! = %d,n,s);return 0;解答:錯誤修改:1)輸入字符格式錯誤,正確形式為:scanf( %d ,&n);return 0;與的相對位置錯誤,正確形式為: return。;錯誤修改后的程序:#include int main() int i,n,s=1;printf(Please enter n:);scanf(%d,n);for(i=1,i=n,i+)s=s*i;printf(%d! = %d,n,s);retur
3、n 0; 運行結(jié)果:C:Program Files (x86)Dev-CppConsolePajser.exeplease enter n:SM 叫 0329Process exited with return ualue 0 prsss any koy to cortiriue . .圖1 2.2.1源程序改錯測試圖2.2.2 .源程序修改替換(1)修改第1題,分別用 while和do-while 語句替換for語句。替換為While語句1)在判斷while語句前,要先定義i=1 ,再執(zhí)行while語句。替換后的程序如下所示:#include int main()int i,n,s=1;pr
4、intf(please enter n:); scanf(%d,&n);i=1 ;while (i=n)s=s*i;i+;printf(%d!=%d,n,s);return 0;2)運行截圖及說明rogram Files (x86)Dev-CppConsolePauseRexePrcceG exited with return ualu 0Prs any Key to continue * * 圖2 2.2.2(1) while 語句測試圖替換為do-while 語句1)要先定義i=1 ,再執(zhí)行while語句。替換后的程序如下所示:#include int main()int i,n,s=1;
5、printf(please enter n:);scanf(%d,&n);i=1;dos=s*i;i+;while(iS的最小整數(shù)n”。例如輸入 整數(shù)40310,輸出結(jié)果為n=8。1)解題思路:先定義 S, x=1,i=1,輸入S,判斷x=S,如果為真,則有 x=x*i , i=i+1,再 返回判斷x=s,直至值為假,輸出i-1的值。源程序為:#include int main()int S;int x=1,i=1;printf( 請輸入整數(shù)S:);scanf(%d,&S);while(x=S的最小整數(shù)門是-1);return 0;2 )運行截圖及說明C:Program Files (x86)
6、Dev-CppConsolePauser.exe請輸入整數(shù)5:4。310滿立n!XS的最小整數(shù)n是8Process exited with return ualue 0 Press any key to continue .圖4 2.2.2(3)程序測試圖2.2.3 .程序設(shè)計假設(shè)工資稅金按以下方法計算:x v 1000元,不收取稅金;1000 x v 2000 ,收取5%勺稅金;2000 x 3000 ,收取10%勺稅金;3000 x V 4000 ,收取15%勺稅 金;4000 x 5000,收取25%勺稅金。輸入工資金額,輸 出應(yīng)收取稅金額度,要求分別用if語句和switch語句來實現(xiàn)。
7、解答:if語句:1)解題思路:.定義浮點數(shù)工資金額 x,應(yīng)收取稅金額為y。.輸入工資金額x,判斷x屬于哪一個收入范圍。.如果 x=1000 且 x=2000 且 x=3000 且 x=4000 且 x=5000,y=5%*1000+10%*1000+15%*1000+20%*1000+25%*(x-5000)=0.25x-750 。.輸出y,結(jié)束。2)程序清單#include int main()float x,y;printf(請輸入工資金額x:);scanf(%f,&x);if(x=1000&x=2000&x=3000&x=4000&x金飄m:55EJ應(yīng)收取稅金額度為625 . HOOEI
8、Oei元Procggg exited hi th return ualue 23Press any key to continue .圖10 2.2.3(1)用例5測試圖Switch 語句:1)解題思路;定義浮點數(shù)工資金額x,應(yīng)收取稅金額為V。輸入工資金額x。計算x/1000,強制轉(zhuǎn)化數(shù)的類型為int 。當(dāng)結(jié)果為0時,輸出y=0。當(dāng)結(jié)果為1時,輸出y=0.05*x-50 。當(dāng)結(jié)果為2時,輸出y=0.10*x-150 。當(dāng)結(jié)果為3時,輸出y=0.15*x-300 。當(dāng)結(jié)果為4時,輸出y=0.20*x-500 。當(dāng)結(jié)果為其他值時,輸出 y=0.25*x-750。.結(jié)束。2)程序清單#include
9、 int main()float x,y;printf(請輸入工資金額x:);scanf(%f,&x);switch(int) (x/1000)case 0:y=0;printf(應(yīng)收取稅金額度為f,y);break;case 1:y=0.05*x-50;printf(應(yīng)收取稅金額度為f,y);break;case 2:y=0.10*x-150;printf(應(yīng)收取稅金額度為f,y);break;應(yīng)收取稅金額度為f,y);break;應(yīng)收取稅金額度為f,y);break;應(yīng)收取稅金額度為f,y);break;應(yīng)收取稅金額度為f,y);break;return 0;3)測試測試用例輸入的工資金額
10、x理論輸出結(jié)果用例12000用例2120010用例3220070用例43200180用例54200340用例65200550C:Program Files (x86)Dev-CppConsolePausenexe請輸入工資金額翼:200 應(yīng)收取稅金額度為0.090000Prcceo exited with return ualue 0 Preoe any koy to continue * . .圖11 2.2.3( 1)用例1測試圖C:Program Files (x86)Dev-CppConsolePauser.exe請輸入工密金額砥白 應(yīng)收取稅金額度為1日日c。Process exite
11、d with return ualue 0Press 己ny keg to continue , 圖12 2.2.3( 1)用例2測試圖C:Program Files (x86)Dev-CppConsolePauser,exe請輸入工資金頷-220G應(yīng)收取稅金額度為70.000000Process exited with return ualu 0Press any koy to centinuo . , . 圖13 2.2.3_(1)用例3測試圖_C:Program Files (x86)Dev-CppConsolePauser.exe請輸入工奧金額x: 3200應(yīng)收取稅金額度為180,00
12、0060Process exited with return ualue 0,ess any keg to continue , + ,圖14 2.2.3(1)用例4測試圖C:Program Files (x86)Dev-CppConsolePauser.exe請輸入工資金額XH20G應(yīng)收取稅金額度為346.000000ProcGs$ exited with return ualue 0Press any key to continue 一 ,.圖15 2.2.3(1)用例5測試圖C:Program Files (x86)Dev-CppConsolePausenexe請輸入工資金額M: 520
13、g 立收取稅金額度為550.GQ0030Process exited with return ualue 6 Prss any key to continue .,.圖16 2.2.3(1)用例6測試圖(2)將輸入的一行字符復(fù)制到輸出,復(fù)制過程中將一個以上的空格字符用一個空格代替。1)解題思路:.輸入一行字符。.判斷字符是否為空格。.如果字符是空格,判斷上一位是否輸出過空格。.如果輸出過,不輸出空格。否則,輸出空格。.如果字符不是空格,輸出字符。.結(jié)束。2)程序清單#include int main()int flag=1;char c;printf(請輸入一行字符:n);while(c=ge
14、tchar()!=0)switch(c)case :if(flag)putchar(c);flag=0;break;default:putchar(c);flag=1;if(c=getchar()=0)printf(%c,c);return 0;3 )測試C:Program Files (x86)Dev-CppConsolePauser.exe請輸入一行字符:wdwe fho eifhiDuiwdwfi fho oifhiowi 看著惡猴頭菇士看看惡猴頭菇h看法那我kjfbniwkGh若法那段kjfbniwkekhfkhf圖17 2.2.3(2)測試圖(3)打印如下楊輝三角形。1/*第0行*/
15、1 1/*第 1 行 */1 2 1/*第 2 行 */1 3 3 11 4 6 4 11 5 10 10 5 11 6 15 20 15 6 11 7 21 35 35 21 7 11 8 28 56 70 56 28 8 11 9 36 84 126 126 84 36 9 1每個數(shù)據(jù)值可以由組合C每個數(shù)據(jù)值可以由組合Cij計算(表示第iC0 =1Ci 1(i=0,1,2,C/*(1 山 j (j=0,1,2,3,行第j列位置的值),而Cij的計算如下:),i)本程序中為了打印出金字塔效果,要注意空格的數(shù)目。 一位數(shù)之間是3個空格,兩位數(shù)之間有2個空格,3位數(shù)之間只有一個空格,程序編制過程
16、中要注意區(qū)分。1)解題思路:.定義楊輝三角行數(shù)為 10。.輸出每行最一個和最后一個數(shù)字為1。.每行除掉第一個和最后一個數(shù)字,在該行第 j位的數(shù)字為它的上一行的j-1位與j為之和。.結(jié)束。2)程序清單#include#define N 10int main()printf(楊輝三角行圖形如下:nn);int a1010,i,j;for(i=0;i=i;j-)printf();for(j=0;j=i;j+)if(i=j|j=0)aij=1;elseaij=ai-1j+ai-1j-1;printf(%3d ,aij);printf(n);return 0;3)測試C:Program Files (x
17、86)Dev*CppConsolePauser.exe悒輝三角行圖形如下: 1 i 1 121 TOC o 1-5 h z 133114641151010511G 152015G117213555217118 28 56 70 56 2281193G 8412G 126 843G91Process exited with return value 6 Press ani| key to continue . . .圖18 2.2.3(3)程序測試圖(4)編寫一個程序,將用戶輸入的任意正整數(shù)逆轉(zhuǎn),例如,輸入 1234,輸出4321。1)解題思路:輸入正整數(shù)x。x 除以10取余,取出個位數(shù)字。去掉
18、個位數(shù)字,再除以 10取余,取出十位數(shù)字。再去掉個位數(shù)字,再除以 10取余,取出百位數(shù)字。直到取出最高位時 x/10=0 o結(jié)束2 )程序清單#include int main(void)int x;printf(請輸入正整數(shù)x:n);scanf(%d,&x);doputchar(x%10+0);while(x/=10)!=0);return 0;3)測試C:Program Files (x86)Dev-CppConsolePauser.exe請輸入正整數(shù)X: 123H56F887654321Process exited with return ualue G Prece any key to
19、 continue .圖192.2.3(4)程序測試圖2.2.4. 選做題32編寫一個程序,用牛頓迭代法求方程f(x)=3x -4x -5x + 13 = 0滿足精度e=i0-6的一個近似根,并在屏幕上輸出所求近似根。xo = a牛頓迭代法:求方程近似根的迭代公式為小=xk 一 f (xk)/ f(xk),其中f(x)是函數(shù)f(x)的導(dǎo)函數(shù)。牛頓迭代法首先任意設(shè)定的一個實數(shù)a來作為近似根的迭代初值x。,然后用迭代公式計算下一個近似根xi。如此繼續(xù)迭代計算x2, x3,,xn,直到 xn 一 4精度e,此時值xn即為所求的近似根。1)解題思路:.輸入迭代初值x。.計算增量 d=-(3*x-4)*x)-5)*x+1
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電力維保合同協(xié)議書
- 中國飛機級膠合板行業(yè)市場前景預(yù)測及投資價值評估分析報告
- 設(shè)計合同補充協(xié)議書范本
- 拆房合同安全協(xié)議書模板
- 外墻施工合同協(xié)議書圖片
- 裝飾裝修工程方案大綱
- DIY蛋糕店商業(yè)計劃書-20250205-220220
- 2025年中國環(huán)氧粘合劑項目創(chuàng)業(yè)計劃書
- 汽車租賃經(jīng)營專題方案
- 籃球隊合同協(xié)議書
- 替莫唑胺與惡性膠質(zhì)瘤課件
- 腹腔鏡器械清洗流程圖
- 學(xué)校食堂餐廳紫外線燈消毒記錄表
- 工會文體活動管理制度范文
- 第6章_射線與物質(zhì)的相互作用
- 3D打印介紹PPT精選文檔課件
- 鋼結(jié)構(gòu)吊裝施工方案-
- 銀發(fā)【2007】246號
- 【機械畢業(yè)設(shè)計全套含CAD圖論文】麥田免耕施肥播種機設(shè)計
- (完整word版)后進生轉(zhuǎn)化檔案
- 工信部聯(lián)通【2010】99號鐵路共建共享文件
評論
0/150
提交評論