版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、. . - 優(yōu)選實驗名:循環(huán)結(jié)構(gòu)實驗?zāi)康?、掌握在程序設(shè)計條件型循環(huán)結(jié)構(gòu)時,如何正確地設(shè)定循環(huán)條件,以及如何控制循環(huán)的次數(shù)。2、了解條件型循環(huán)結(jié)構(gòu)的基本測試方法。3、掌握如何正確地控制計數(shù)型循環(huán)結(jié)構(gòu)的次數(shù)4、了解對計數(shù)型循環(huán)結(jié)構(gòu)進(jìn)行測試的基本方法5、了解在嵌套循環(huán)結(jié)構(gòu)中,提高程序效率的方法二、實驗容(一) ) 題目 1 1、題目容描述1、下面是一個計算e 的近似值(使誤差小于給定的)的程序。main() double e=1.0,x=1.0,y,detax ;int i=1; printf( “n please input enter a error:”); scanf(“%lf”,&
2、detax); y=1/x; while(y=detax) x=x*i; y=1/x; e=e+y; +i; printf(“%12.10lf”,e); 2、實驗步驟(1)閱讀上面的程序,寫出程序所依據(jù)的計算公式。(2)當(dāng)輸入的detax 各是什么值時,能分別使程序按下面的要求運行:.不進(jìn)入循環(huán);.只循環(huán)一次;.只循環(huán)兩次;.進(jìn)入死循環(huán) (程序?qū)⒂肋h(yuǎn)循環(huán)下去)。為了能知道程序循環(huán)了多少次,應(yīng)該在程序中增加一條什么樣的語句?(3)原程序中while 語句中的y=detax,分別換成ydetax,y=detax,ydetax,y=detax ,觀察程序運行將會有什么變化。假如不知道機(jī)器的程序中的各
3、語句實際上是什么,分別輸入什么樣的detax 來測試出while 語句的循環(huán)條件寫錯了。(4)把原程序中while 語句之前的y=1/x 語句去掉,觀察程序的運行將會發(fā)生什么樣的變化。假如不知道機(jī)器的程序?qū)嶋H上是怎么寫的,輸入什么樣的detax 就能測試出少了上述這條語句。(5) 若把原程序中的+i 換成i+,觀察程序的運行發(fā)生了什么變化?假如不知道這條語句到底是怎么寫的,輸入什么樣的detax 就能測試出這條語句寫錯了. . . - 優(yōu)選(6)把原程序中的while 結(jié)構(gòu)改寫成dowhile 結(jié)構(gòu),再分別按上述的 (2)、( 3)兩步進(jìn)行實驗。2、輸入和輸出信息描述及數(shù)據(jù)類型確定;、輸入數(shù)據(jù)
4、序號輸入數(shù)據(jù)描述數(shù)據(jù)類型1 e,x,y,detax double 2 i int (2)輸出數(shù)據(jù)序號輸出數(shù)據(jù)描述數(shù)據(jù)類型1 e double 3、程序源代碼(填寫程序調(diào)試正確后的代碼)#include int main() double e,x,y,detax; int i; e=1.0; x=1.0; i=1.0; printf(please input enter a error:n ); scanf(%lf,&detax); y=1/x; while(y=detax) x=x*i; y=1/x; e=e+y; +i; printf(%12.10lf,e); return 0; 7
5、、程序調(diào)試錯誤序號錯誤信息 (列出出錯語句以及出錯提示)是否解決解決方法1 格式不對是手動調(diào)整2 warning: return type defaults to int -wreturn-type| 是在main()前加上 int 3 error: stray 243 in program|error: stray 273 in program| 是將double e=1.0,x=1.0,y,detax ;int i=1; 改為 double e,x,y,detax;int i;e=1.0;x=1.0;i=1.0; 4 程序 e近似值 main.c|in function main erro
6、r: stray 241 in program| 是將printf( “n please input enter a error:”);改為printf(please input enter a error:n ); 5 error: stray 241 in program| 是將scanf(“%lf”,&detax);改為6 error: i undeclared (first use in this function)| 是將i改為 i 7 c|19|error: stray 241 in program| 是將printf( “%12.10lf”,e);改為 printf(%1
7、2.10lf,e); 8 c|20|warning: control reaches end of 是在后一個大括號前加上return 0; . . - 優(yōu)選non-void function -wreturn-type| 8、測試與結(jié)果分析、測試數(shù)據(jù)與結(jié)果測試序號測試用例選取原因測試輸入數(shù)據(jù)測試輸出結(jié)果是否正確結(jié)果分析1 不循環(huán)2 1.0000000000 是2 循環(huán)一次1 2.5000000000 是3 循環(huán)兩次0.7 2.5000000000 是死循環(huán)0 無是、相關(guān)問題回答(1)閱讀上面的程序,寫出程序所依據(jù)的計算公式。答: e=1+1/2+1/6+1/i! (2)當(dāng)輸入的detax 各
8、是什么值時,能分別使程序按下面的要求運行:.不進(jìn)入循環(huán);.只循環(huán)一次;.只循環(huán)兩次;.進(jìn)入死循環(huán) (程序?qū)⒂肋h(yuǎn)循環(huán)下去)。為了能知道程序循環(huán)了多少次,應(yīng)該在程序中增加一條什么樣的語句?答:大于 1不進(jìn)入循環(huán),等于 1只循環(huán)一次,大于0.5小于 1只循環(huán)兩次,等于 0進(jìn)入死循環(huán) (程序?qū)⒂肋h(yuǎn)循環(huán)下去)。應(yīng)增加 printf(“i=%d”,i-1); (3)原程序中while 語句中的y=detax,分別換成ydetax,y=detax,ydetax,ydetax ,輸入不小于 1時不進(jìn)行循環(huán),輸出1;輸入小于 1時則會進(jìn)行循環(huán)。y=detax,當(dāng)輸入為 0時, y被賦值為 0,直接結(jié)束循環(huán);當(dāng)輸
9、入不為0,則進(jìn)入死循環(huán)。 ydetax,輸入不大于 1時不進(jìn)行循環(huán),輸出為1;輸入大于 1時則進(jìn)入死循環(huán)。 y=detax,輸入不小于 1時進(jìn)入死循環(huán);輸入小于1則不進(jìn)行循環(huán),輸出1。分別輸入 3,0.5,1即可。(4)把原程序中while 語句之前的y=1/x 語句去掉,觀察程序的運行將會發(fā)生什么樣的變化。假如不知道機(jī)器的程序?qū)嶋H上是怎么寫的,輸入什么樣的detax 就能測試出少了上述這條語句。答:輸入 1. (5) 若把原程序中的+i 換成i+,觀察程序的運行發(fā)生了什么變化?假如不知道這條語句到底是怎么寫的,輸入什么樣的detax 就能測試出這條語句寫錯了. (6)把原程序中的while
10、結(jié)構(gòu)改寫成dowhile 結(jié)構(gòu),再分別按上述的 (2)、( 3)兩步進(jìn)行實驗。答:( 2)步與原來while 相同。( 3)步當(dāng)有的輸入條件不符合判斷條件時,仍會先進(jìn)行一次循環(huán)后結(jié)束,而 while 則直接結(jié)束。#include int main() double e,x,y,detax; /定義變量int i; e=1.0; /賦值x=1.0; i=1.0; printf(n please input enter a error:); scanf(%lf,&detax); /輸入 detax y=1/x; do . . - 優(yōu)選x=x*i; y=1/x; e=e+y; +i; whi
11、le(y=detax); /執(zhí)行 dowhile循環(huán)printf(%12.10lfn,e); /輸出printf(i=%dn,i-2); ) 題目 21、題目容描述下面是一個用以計算的c 程序。main() int i ,j; long sum=0; for(i=1,i=20,i+) for(j=1;j=3;j+) sum=sum+(i+1)*(i+1)*(j+2) printf( “sum is :%dn”,sum); 2、實驗步驟(1)將上述程序中的和分別做什么樣修改,能使程序按如下要求運行:.不循環(huán);.外循環(huán)1 次,不進(jìn)入循環(huán);.外循環(huán),循環(huán)各1 次;.外循環(huán)1 次,循環(huán)2 次;外循環(huán)2
12、次,循環(huán)1 次; .外循環(huán)19 次,循環(huán) 3 次; .外循環(huán)20 次,循環(huán)2 次; .外循環(huán)21 次,循環(huán)3 次。(2)試修改程序,以便能知道控制表達(dá)式i=1;j=20;i+ 和 j=1;j3;j+= 各執(zhí)行了多少次?(3)循環(huán)與外循環(huán)的控制表達(dá)式進(jìn)行對換,觀察程序的執(zhí)行結(jié)果有無變化,并且觀察對換后的外循環(huán)與循環(huán)控制表達(dá)式執(zhí)行的總次數(shù)有無變化?(4)將( 3)中程序?qū)憺閙ain() int i,j,k; long sum=0; for (j=1.j=3.j+) k=j+2; for(i=1;i=20;i+) sum=sum+(i+1)*(i+1)*k; printf( “sum is :%dn
13、”,sum); 觀察程序的執(zhí)行結(jié)果有無變化?(5)將( 3)中程序改寫為main() int i,j,m,n; . . - 優(yōu)選long sum=0; for(j=1;j=3;j+) m=j+2; for(i=1;j=20;i+) n=i+1; sum=sum+m*m*k; printf(“sum is :%dn”,sum); 觀察程序的執(zhí)行結(jié)果有無變化?(6)在( 5)的程序中,若將外循環(huán)控制表達(dá)式分別做如下修改: .j=1;j=3;j+ .j=1;j3;j+ .j=1;j3;j- .j=1;j3;j+ .j=0;j=3;j+= .j=0;j3;j+ j=1;j=3;j+ j=1;j3;+j
14、 觀察程序的執(zhí)行結(jié)果有無變化2、輸入和輸出信息描述及數(shù)據(jù)類型確定;、輸入數(shù)據(jù)序號輸入數(shù)據(jù)描述數(shù)據(jù)類型1 i,j int 2 sum long int (2)輸出數(shù)據(jù)序號輸出數(shù)據(jù)描述數(shù)據(jù)類型1 sum long int 3、程序源代碼(填寫程序調(diào)試正確后的代碼)#include main() int i ,j; long sum=0; for(i=1;i=20;i+) for(j=1;j=3;j+) sum=sum+(i+1)*(i+1)*(j+2); printf(sum is :%dn,sum); 4、程序調(diào)試錯誤序號錯誤信息(列出出錯語句以及出錯提示)是否解決解決方法1 |6|warnin
15、g: value puted is not used -wunused-value| 是將for(i=1;i=20;i+)改為 for(i=1;i3;j+) .外循環(huán),循環(huán)各 1次: 改為 for(i=1;,i=1;i+) for(j=1;j=1;j+) .外循環(huán) 1次,循環(huán) 2次:改為 for(i=1;i=1;i+) int j =1;for(;j=2;j+) .外循環(huán) 2次,循環(huán) 1次:改為 for(i=1;i=2;i+) for(;j2;j+) .外循環(huán) 19次,循環(huán) 3次:改為 for(i=1;i=19;i+) int j=1; for(;j=3;j+) .外循環(huán) 20次,循環(huán) 2次:
16、改為for(i=1;i=20;i+) int j=1; for(;j=2;j+) .外循環(huán) 21次,循環(huán) 3次:改為 for(i=1;i=21;i+) int j=1; for(;j=3;j+) (2)試修改程序,以便能知道控制表達(dá)式i=1;j=20;i+ 和 j=1;j3;j+= 各執(zhí)行了多少次?答:添加 printf(i=%d,j=%d,i,j);分別執(zhí)行 60和20次。(3)循環(huán)與外循環(huán)的控制表達(dá)式進(jìn)行對換,觀察程序的執(zhí)行結(jié)果有無變化,并且觀察對換后的外循環(huán)與循環(huán)控制表達(dá)式執(zhí)行的總次數(shù)有無變化?答:無,次數(shù)外循環(huán)3次,循環(huán) 60次,循環(huán)不變,外循環(huán)次數(shù)改變(4)將( 3)中程序改寫觀察程
17、序的執(zhí)行結(jié)果有無變化?無。(5)將( 3)中程序改寫觀察程序的執(zhí)行結(jié)果有無變化?無。(6)在( 5)的程序中,若將外循環(huán)控制表達(dá)式分別做如下修改:j=1;j=3;j+ .j=1;j3;j+ .j=1;j3;j- .j=1;j3;j+ .j=0;j=3;j+= .j=0;j3;j+ j=1;j=3;j+ j=1;j3;+j 觀察程序的執(zhí)行結(jié)果有無變化答:( 1).j=1;j=3;j+結(jié)果0 .(4)j=1;j3;j+結(jié)果0(5)j=1;j3;j結(jié)果不運行( 7)j=1;j3;j+ 結(jié)果23170(8)j=0;j=3;j+=結(jié)果有錯( 9)j=0;j3;j+結(jié)果 29790(10)j=1;j=3;
18、j+結(jié)果 39720 .(11)j=1;j3;+j結(jié)果 23170。、題目 3 1、 題目容描述繪制等腰空心梯形,下底和高都為輸入變量n,n=5時,打印圖形如右:2、程序源代碼(填寫程序調(diào)試正確后的代碼)#include . . - 優(yōu)選int main() int i,x,n,j; /定義變量printf(please enter the n:); scanf (%d,&n); /輸入格式for(i=n;i=1;i-) for(j=0;jn-i;j+) printf( ); /當(dāng)j小于 n-i時循環(huán)輸出空格for(x=1;x1&x2*i+n-2&(i!=n)&
19、(i!=1) printf( ); /若滿足條件則打印空格if(x=1|x=2*i+n-2|i=1|i=n) printf(*); /若滿足則打印 * printf(n); /換行 return 0; 3、測試與結(jié)果分析、測試數(shù)據(jù)與結(jié)果測試序號測試用例選取原因測試輸入數(shù)據(jù)測試輸出結(jié)果是否正確結(jié)果分析1 6 正確2 8 正確3 13 正確. . - 優(yōu)選(四)題目 4 1、題目容描述想一個 1100之間的數(shù),猜對 : right,猜錯 :wrong并提示大小。( 1)最多猜 10次猜多個數(shù),( 2)10次猜不對就猜下一個數(shù)6、程序源代碼(填寫程序調(diào)試正確后的代碼)猜十次:#include #include /預(yù)處理 magic #include /時間函數(shù)int main() int magic,number,i; /定義變量i=1; srand(time(null); magic = rand() % 100 + 1; /產(chǎn)生隨機(jī)數(shù)for (i=1;i=10;i+) printf(請輸入你猜的數(shù)字:n); scanf (%d,&number); /輸入 number if
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《營業(yè)稅課件》課件
- 《統(tǒng)計調(diào)查技能模塊》課件
- 《認(rèn)識寶島臺灣》課件
- 《王老吉的市場營銷》課件
- 《網(wǎng)頁設(shè)計與鑒賞》課件
- 2025年中考語文文言文總復(fù)習(xí)-教師版-專題01:文言文閱讀之理解實詞含義(講義)
- 鞋業(yè)生產(chǎn)線采購招標(biāo)合同三篇
- 教育機(jī)構(gòu)話務(wù)員工作總結(jié)
- 藥品醫(yī)療器械銷售心得分享
- 兒童感染科護(hù)理工作總結(jié)
- 四人合伙投資協(xié)議書范本
- 成都市農(nóng)貿(mào)市場建設(shè)技術(shù)要求(2019年版)(完整版)
- 2024-2030年版中國IPVPN服務(wù)行業(yè)發(fā)展現(xiàn)狀及投資商業(yè)模式分析報告
- 【7歷期末】安徽省蕪湖市弋江區(qū)2023~2024學(xué)年七年級上學(xué)期期末考試歷史試卷(含解析)
- 北京市海淀區(qū)2021-2022學(xué)年第一學(xué)期四年級期末考試語文試卷(含答案)
- 2024-2030年中國企業(yè)大學(xué)行業(yè)運作模式發(fā)展規(guī)劃分析報告
- 房地產(chǎn)激勵培訓(xùn)
- 山東省濟(jì)南市2023-2024學(xué)年高二上學(xué)期期末考試地理試題 附答案
- 期末復(fù)習(xí)試題1(試題)-2024-2025學(xué)年二年級上冊數(shù)學(xué)北師大版
- 【MOOC】微型計算機(jī)原理與接口技術(shù)-南京郵電大學(xué) 中國大學(xué)慕課MOOC答案
- 安徽省蕪湖市2023-2024學(xué)年高一上學(xué)期期末考試 生物 含解析
評論
0/150
提交評論