




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)名:循環(huán)結(jié)構(gòu)實(shí)驗(yàn)?zāi)康?、掌握在程序設(shè)計(jì)條件型循環(huán)結(jié)構(gòu)時(shí),如何正確地設(shè)定循環(huán)條件,以及如何控制循環(huán)的次數(shù)。2、了解條件型循環(huán)結(jié)構(gòu)的基本測(cè)試方法。3、掌握如何正確地控制計(jì)數(shù)型循環(huán)結(jié)構(gòu)的次數(shù)4、了解對(duì)計(jì)數(shù)型循環(huán)結(jié)構(gòu)進(jìn)行測(cè)試的基本方法5、了解在嵌套循環(huán)結(jié)構(gòu)中,提高程序效率的方法二、實(shí)驗(yàn)內(nèi)容(一) 題目 11、題目?jī)?nèi)容描述1、下面是一個(gè)計(jì)算e的近似值(使誤差小于給定的S )的程序。main()doublee=1.0,x=1.0,y,detax;inti=1;printf( “ npleaseinputenteraerror:” );scanf(“ %lf ” ,&detax);y=1/x;w
2、hile(y>=detax)x=x*I;y=1/x;e=e+y;+i;printf( “ %12.10lf” ,e);2、實(shí)驗(yàn)步驟( 1)閱讀上面的程序,寫(xiě)出程序所依據(jù)的計(jì)算公式。(2)當(dāng)輸入的detax各是什么值時(shí),能分別使程序按下面的要求運(yùn)行:.不進(jìn)入循環(huán);.只循環(huán)一次;.只循環(huán)兩次;.進(jìn)入死循環(huán)(程序?qū)⒂肋h(yuǎn)循環(huán)下去)。為了能知道程序循環(huán)了多少次,應(yīng)該在程序中增加一條什么樣的語(yǔ)句?(3)原程序中while語(yǔ)句中的y>=detax,分別換成y>detax,y=detax,y<detax,y<=detax ,觀察程序運(yùn)行將會(huì)有什么變化。假如不知道機(jī)器內(nèi)的程序中的各
3、語(yǔ)句實(shí)際上是什么,分別輸入什么樣的deta冰測(cè)t出while語(yǔ)句的循環(huán)條件寫(xiě)錯(cuò)了。(4)把原程序中while語(yǔ)句之前的y=1/x語(yǔ)句去掉,觀察程序的運(yùn)行將會(huì)發(fā)生什么樣的變化。假如不知道機(jī)器內(nèi)的程序?qū)嶋H上是怎么寫(xiě)的,輸入什么樣的deta端能測(cè)試出少了上述這條語(yǔ)句。( 5)若把原程序中的+i 換成 i+, 觀察程序的運(yùn)行發(fā)生了什么變化?假如不知道這條語(yǔ)句到底是怎么寫(xiě)的,輸入什么樣的detax就能測(cè)試出這條語(yǔ)句寫(xiě)錯(cuò)了.(6)把原程序中的while結(jié)構(gòu)改寫(xiě)成dowhile結(jié)構(gòu),再分別按上述的(2)、( 3)兩步進(jìn)行實(shí)驗(yàn)。2、輸入和輸出信息描述及數(shù)據(jù)類型確定;( 1)、 輸入數(shù)據(jù)序號(hào) 輸入數(shù)據(jù)描述1 e
4、,x,y,detax2 i3 2) 輸出數(shù)據(jù)序號(hào)輸出數(shù)據(jù)描述1 E3、程序源代碼(填寫(xiě)程序調(diào)試正確后的代碼)#include<stdio.h>intmain()doublee,x,y,detax;inti;e=1.0;x=1.0;i=1.0;printf("pleaseinputenteraerror:n");scanf("%lf",&detax);y=1/x;while(y>=detax)x=x*i;y=1/x;e=e+y;+i;printf("%12.10lf",e);return0;7、程序調(diào)試錯(cuò) 錯(cuò)誤
5、信息(列出出錯(cuò)語(yǔ)句以及出錯(cuò)提示)誤序號(hào)1 格式不對(duì)2 warning:returntypedefaultsto'int'-Wreturn-type|3 error:stray'243'inprogram|error:stray'273'inprogram|4 程序 e 近似值 main.c|Infunction'main'error:stray'241'inprogram|5 error:stray'241'inprogram|6 error:'I'undeclared(firstu
6、seinthisfunction)|7 c|19|error:stray'241'inprogram|數(shù)據(jù)類型 doubleint數(shù)據(jù)類型 double是 解決方法否解決是手動(dòng)調(diào)整是 在 main() 前加上 int是將 doublee=1.0,x=1.0,y,detax ; inti=1;改為doublee,x,y,detax;inti;e=1.0;x=1.0 ;i=1.0;是將printf( “ npleaseinputenteraerror:” ); 改為printf("pleaseinputenteraerror:n");是 將 scanf( “ %
7、lf” ,&detax); 改為是 將 I 改為 i是 將 printf( “ %12.10lf ” ,e); 改為 printf("%12.10lf",e);是 在后一個(gè)大括號(hào)前加上return0;8 c|20|warning:controlreachesendofnon-voidfunction-Wret urn-type|8、測(cè)試與結(jié)果分析( 1 )、 測(cè)試數(shù)據(jù)與結(jié)果測(cè)試測(cè)試用例選取原測(cè)試輸入測(cè)試輸出結(jié)果是否結(jié)果分析序號(hào)因數(shù)據(jù)正確1不循環(huán)21.0000000000是2循環(huán)一次1是3循環(huán)兩次0.7是死循環(huán)0無(wú)是( 2)、相關(guān)問(wèn)題回答( 1)閱讀上面的程序,寫(xiě)出程
8、序所依據(jù)的計(jì)算公式。閱讀上面的程序,寫(xiě)出程序所依據(jù)的計(jì)算公式。答:e=1+1/2+1/6 +1/i!(2)當(dāng)輸入的detax各是什么值時(shí),能分別使程序按下面的要求運(yùn)行:.不進(jìn)入循環(huán);.只循環(huán)一次;.只循環(huán)兩次;.進(jìn)入死循環(huán)(程序?qū)⒂肋h(yuǎn)循環(huán)下去)。為了能知道程序循環(huán)了多少次,應(yīng)該在程序中增加一條什么樣的語(yǔ)句?答:大于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ǔ)句中的y>=detax,分別換成y>detax,y=detax,y<detax,y&
9、lt;=detax ,觀察程序運(yùn)行將會(huì)有什么變化。假如不知道機(jī)器內(nèi)的程序中的各語(yǔ)句實(shí)際上是什么,分別輸入什么樣的deta冰測(cè)t出while語(yǔ)句的循環(huán)條件寫(xiě)錯(cuò)了。答:y>detax,輸入不小于1時(shí)不進(jìn)行循環(huán),輸出1;輸入小于1時(shí)則會(huì)進(jìn)行循環(huán)。y=detax,當(dāng)輸入為0時(shí),y被賦值為0,直接結(jié)束循環(huán);當(dāng)輸入不為 0,則進(jìn)入死循環(huán)。yvdetax,輸入不大于1時(shí)不進(jìn)行循環(huán),輸出為1;輸入大于1時(shí)則 進(jìn)入死循環(huán)。y<=detax,輸入不小于1時(shí)進(jìn)入死循環(huán);輸入小于1則不進(jìn)行循環(huán),輸出1。分別輸入3, 0.5, 1即可。(4)把原程序中while語(yǔ)句之前的y=1/x語(yǔ)句去掉,觀察程序的運(yùn)行將
10、會(huì)發(fā)生什么樣的變化。假如不知道機(jī)器內(nèi)的程序?qū)嶋H上是怎么寫(xiě)的,輸入什么樣的deta端能測(cè)試出少了上述這條語(yǔ)句。答:輸入1.( 5)若把原程序中的+i 換成 i+, 觀察程序的運(yùn)行發(fā)生了什么變化?假如不知道這條語(yǔ)句到底是怎么寫(xiě)的,輸入什么樣的detax就能測(cè)試出這條語(yǔ)句寫(xiě)錯(cuò)了.(6)把原程序中的while結(jié)構(gòu)改寫(xiě)成dowhile結(jié)構(gòu),再分別按上述的(2)、( 3)兩步進(jìn)行實(shí)驗(yàn)。答:(2)步與原來(lái)while 相同。(3)步當(dāng)有的輸入條件不符合判斷條件時(shí),仍會(huì)先進(jìn)行一次循環(huán)后結(jié)束,而 while則直接結(jié)束。#include<stdio.h>intmain()doublee,x,y,deta
11、x;/ 定義變量inti;e=1.0;/ 賦值x=1.0;i=1.0;printf("npleaseinputenteraerror:");scanf("%lf",&detax);/ 輸入 detax y=1/x;do x=x*i;y=1/x;e=e+y;+i;執(zhí)行do-while循環(huán) 輸出while(y>=detax);/ printf("%12.10lfn",e);/ printf("i=%dn",i-2);(二) 題目 21、題目?jī)?nèi)容描述下面是一個(gè)用以計(jì)算的C程序。main()inti,j;lo
12、ngsum=0;for(i=1,i<=20,i+)for(j=1;j<=3;j+)sum=sum+(i+1)*(i+1)*(j+2)printf( “ sumis:%d n” ,sum);2、實(shí)驗(yàn)步驟( 1)將上述程序中的和分別做什么樣修改,能使程序按如下要求運(yùn)行:. 不循環(huán);. 外循環(huán)1次,不進(jìn)入內(nèi)循環(huán);.外循環(huán),內(nèi)循環(huán)各1 次; . 外循環(huán) 1 次,內(nèi)循環(huán)2次;外循環(huán)2次,內(nèi)循環(huán)1次; . 外循環(huán)19次,內(nèi)循環(huán)3次;. 外循環(huán) 20次,內(nèi)循環(huán)2次;. 外循環(huán)21次,內(nèi)循環(huán)3次。( 2)試修改程序,以便能知道控制表達(dá)式i=1;j<=20;i+ 和 j=1;j<3;j+
13、= 各執(zhí)行了多少次?( 3)內(nèi)循環(huán)與外循環(huán)的控制表達(dá)式進(jìn)行對(duì)換,觀察程序的執(zhí)行結(jié)果有無(wú)變化,并且觀察對(duì)換后的外循環(huán)與內(nèi)循環(huán)控制表達(dá)式執(zhí)行的總次數(shù)有無(wú)變化?( 4)將(3)中程序?qū)憺閙ain()inti,j,k;longsum=0;for(j=1.j<=3.j+)k=j+2;for(i=1;i<=20;i+)sum=sum+(i+1)*(i+1)*k;printf( “ sumis:%d n” ,sum);觀察程序的執(zhí)行結(jié)果有無(wú)變化?( 5)將(3)中程序改寫(xiě)為main()intI,j,m,n;longsum=0;for(j=1;j<=3;j+)m=j+2;for(I=1;j&
14、lt;=20;I+)n=I+1;sum=sum+m*m*k;printf( “ sumis:%d n” ,sum);觀察程序的執(zhí)行結(jié)果有無(wú)變化?( 6)在(5)的程序中,若將外循環(huán)控制表達(dá)式分別做如下修改:.j=1;j<3;j+.j=1;j=3;j+.j=1;j>=3;j+.j=1;j>3;j+.j=1;j<=3;j-.j=1;j>3;j-.j=1;j<3;j+.j=0;j<=3;j+=.j=0;j<3;j+j=1;j<=3;j+j=1;j<3;+j觀察程序的執(zhí)行結(jié)果有無(wú)變化2、輸入和輸出信息描述及數(shù)據(jù)類型確定;( 1)、 輸入數(shù)據(jù)序
15、號(hào) 輸入數(shù)據(jù)描述1 I, j2 sum3 2) 輸出數(shù)據(jù)序號(hào) 輸出數(shù)據(jù)描述1 sum3、程序源代碼(填寫(xiě)程序調(diào)試正確后的代碼)#include<stdio.h>main()inti,j;longsum=0;for(i=1;i<=20;i+)for(j=1;j<=3;j+)sum=sum+(i+1)*(i+1)*(j+2);printf("sumis:%dn",sum);4、程序調(diào)試錯(cuò) 錯(cuò)誤信息(列出出錯(cuò)語(yǔ)句以及出錯(cuò)提示)誤序號(hào)1 |6|warning:valuecomputedisnotused-Wunused-value|2 |2|warning:
16、returntypedefaultsto'int'-Wreturn-type|3 |9|error:expected''before'printf'|數(shù)據(jù)類型int longint數(shù)據(jù)類型Longint是 解決方法否解決是 將 for(i=1;i<=20;i+)改為for(i=1;i<=20;i+)是 在main ()前加上int是 sum=sum+(i+1)*(i+1)*(j+2) 后面加上分號(hào)是將printf( “ sumis:%d n” ,sum); 改為 printf("sumis:%dn",sum);4
17、|9|error:stray'241'inprogram|5|10|warning:controlreachesendofnon-voidfunction-Wreturn-type|是 力口上 return0;6|9|warning:format'%d'expectsargumentoftype'int',butargument2hastype'否longint'-Wformat=|(2)相關(guān)問(wèn)題回答(1)將上述程序中的和分別做什么樣修改,能使程序按如下要求運(yùn)行:.不循環(huán);.外循環(huán)1次,不進(jìn)入內(nèi)循環(huán);.外循環(huán),內(nèi)循環(huán)各1次;.外循
18、環(huán)1次,內(nèi)循環(huán)2次;外循環(huán)2次,內(nèi)循環(huán)1次;.外循環(huán)19次,內(nèi)循環(huán)3次;.外循環(huán)20 次,內(nèi)循環(huán)2次;.外循環(huán)21次,內(nèi)循環(huán)3次。答:外循環(huán)1次,不進(jìn)入內(nèi)循環(huán):改為 for(i=1,i=1,i+)for(j=1;j>3;j+).外循環(huán),內(nèi)循環(huán)各 1 次:改為 for(i=1;,i=1;i+)for(j=1;j=1;j+).外循環(huán) 1次,內(nèi)循環(huán) 2次:改為 for(i=1;i=1;i+)intj=1;for(;j<=2;j+).外循環(huán) 2次,內(nèi)循環(huán) 1 次:改為 for(i=1;i<=2;i+)for(;j<2;j+).外循環(huán) 19次,內(nèi)循環(huán) 3次:改為 for(i=1;
19、i<=19;i+)intj=1;for(;j<=3;j+).外循環(huán) 20次,內(nèi)循環(huán) 2次:改為 for(i=1;i<=20;i+)intj=1;for(;j<=2;j+).外循環(huán) 21 次,內(nèi)循環(huán) 3次:改為 for(i=1;i<=21;i+)intj=1;for(;j<=3;j+)(2)試修改程序,以便能知道控制表達(dá)式i=1;j<=20;i+ 和j=1;j<3;j+=各執(zhí)行了多少次?答:添加 printf("i=%d,j=%d",i,j);分別執(zhí)行 60和20次。(3)內(nèi)循環(huán)與外循環(huán)的控制表達(dá)式進(jìn)行對(duì)換,觀察程序的執(zhí)行結(jié)果有
20、無(wú)變化,并且觀察對(duì)換后的外循環(huán)與內(nèi)循環(huán) 控制表達(dá)式執(zhí)行的總次數(shù)有無(wú)變化?答:無(wú),次數(shù)外循環(huán)3次,內(nèi)循環(huán)60次,內(nèi)循環(huán)不變,外循環(huán)次數(shù)改變(4)將(3)中程序改寫(xiě)觀察程序的執(zhí)行結(jié)果有無(wú)變化?無(wú)。(5)將(3)中程序改寫(xiě)觀察程序的執(zhí)行結(jié)果有無(wú)變化?無(wú)。(6)在(5)的程序中,若將外循環(huán)控制表達(dá)式分別做如下修改:j=1;j<3;j+.j=1;j=3;j+.j=1;j>=3;j+.j=1;j>3;j+.j=1;j<=3;j-.j=1;j>3;j-.j=1;j<3;j+.j=0;j<=3;j+=.j=0;j<3;j+j=1;j<=3;j+j=1;j&
21、lt;3;+j觀察程序的執(zhí)行結(jié)果有無(wú)變化答:(1) .j=1;j<3;j+ 結(jié)果 23170 (2) j=1;j=3;j+ 結(jié)果死循環(huán)(3) j=1;j>=3;j+ 結(jié)果 0.(4) j=1;j>3;j+ 結(jié)果 0 (5) j=1;j<=3;j 結(jié)果死循環(huán)(6) j=1;j>3;j一結(jié)果不運(yùn)行(7) j=1;j<3;j+ 結(jié)果 23170(8) j=0;j<=3;j+=結(jié)果有錯(cuò)(9) j=0;j<3;j+ 結(jié)果 29790 (10) j=1;j<=3;j+ 結(jié)果 39720.(11) j=1;j<3;+j 結(jié)果 23170。(三) 題
22、目31、題目?jī)?nèi)容描述繪制等腰空心梯形,下底和高都為輸入變量n, n=5時(shí),打印圖形如jjijSjSjEjSjijijSjSjSjljgH 右:2#include<stdio.h>intmain()inti,x,n,j;/定義變量printf("pleaseenterthen:");scanf("%d",&n);/輸入格式for(i=n;i>=1;i-)for(j=0;j<n-i;j+)printf("");/當(dāng)j小于n-i時(shí)循環(huán)輸出空格for(x=1;x<=2*i+n-2;x+) if(x>
23、1&&x<2*i+n-2&&(i!=n)&&(i!=1)printf("");/ 若滿足條件則打印空格if(x=1|x=2*i+n-2|i=1|i=n)printf("*");/ 若滿足則打印*printf("n");/ 換行return0;3、測(cè)試與結(jié)果分析( 1)、 測(cè)試數(shù)據(jù)與結(jié)果測(cè)試測(cè)試用例序號(hào)選取原因123( 四 ) 題目 41、題目?jī)?nèi)容描述測(cè)試輸入數(shù)據(jù)6813測(cè)試輸出結(jié)果是否 正確 正確 正確 正確結(jié)果分析10次猜不對(duì)就猜下想一個(gè)1100之間的數(shù),猜對(duì):right ,猜錯(cuò)
24、 :wrong 并提示大小。(1 )最多猜10次猜多個(gè)數(shù),(一個(gè)數(shù)6、程序源代碼(填寫(xiě)程序調(diào)試正確后的代碼)猜十次:#include<stdio.h>#include<stdlib.h>/ 預(yù)處理 magic#include<time.h>/ 時(shí)間函數(shù)intmain()intmagic,number,i;/ 定義變量i=1;srand(time(NULL);magic=rand()%100+1;/ 產(chǎn)生隨機(jī)數(shù)for(i=1;i<=10;i+)printf(" 請(qǐng)輸入你猜的數(shù)字:n");scanf("%d",&number);/ 輸入 number if(number<magic)printf("數(shù)字略小n");/若小于則輸出該語(yǔ)句elseif(number>magic)printf("數(shù)字略大n");/
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 門(mén)口出租合同范本
- 修建民房合同范本
- 社區(qū)綠化與物業(yè)管理的協(xié)同發(fā)展
- 2025年度食品行業(yè)員工職業(yè)傷害賠償合同
- 二零二五年度師范生公費(fèi)教育協(xié)議書(shū)簽訂與備案手續(xù)指南
- 2025至2030年中國(guó)羥芐唑滴眼液數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 二零二五年度專業(yè)技術(shù)崗前培訓(xùn)及考核協(xié)議
- 2025年度特色小鎮(zhèn)建設(shè)房屋及土地所有權(quán)購(gòu)買(mǎi)合同
- 二零二五年度食品級(jí)辦公倉(cāng)庫(kù)租賃及冷鏈倉(cāng)儲(chǔ)服務(wù)合同
- 二零二五年度文化創(chuàng)意產(chǎn)業(yè)合伙股權(quán)合作協(xié)議
- 氫氣儲(chǔ)存和運(yùn)輸 課件 第1、2章 氫氣存儲(chǔ)與運(yùn)輸概述、高壓氣態(tài)儲(chǔ)運(yùn)氫
- 三年級(jí)地方課教案
- 涉外法律文書(shū)寫(xiě)作
- 2022-2023學(xué)年湖南省長(zhǎng)沙市統(tǒng)招專升本語(yǔ)文模擬練習(xí)題三及答案
- 社會(huì)救助法課件
- 1.裝配式建筑概述(裝配式混凝土結(jié)構(gòu)施工技術(shù))
- 第七講+漢字字音
- 新零件的成熟保障MLA
- 【基于杜邦分析法的企業(yè)盈利能力研究國(guó)內(nèi)外文獻(xiàn)綜述4000字】
- 初中語(yǔ)文七下-上下句默寫(xiě)
- 《董存瑞舍身炸碉堡》PPT課件新
評(píng)論
0/150
提交評(píng)論