上機實驗五 迴圈結構程式設計答案

2022-03-07 15:35:45 字數 2454 閱讀 3254

姓名學號姓名

本次實驗一共5個題目,4個必做,乙個選做

我建的浙師大c程式設計群,群號為:185106065,大家加入下,驗證資訊請寫為班級+姓名。

我打算以後把每次實驗的答案(我寫的**)都放到群共享裡面,大家可以在群裡討論下不會的地方或者不同的實現方法。

!!!!!重要提醒:郵件主題和本word檔名統一用班級+學號+姓名+實驗幾命名(學號和姓名記得不能少),不然我在檢查作業提交情況時可能會漏掉!!!!!

一.目的要求

1. 掌握用for、while、do-while語句實現迴圈的基本技巧;

2. 掌握迴圈次數不確定的解題技巧;

3. 掌握break語句、continue語句在迴圈語句中的作用以及不同之處;

4. 掌握多重迴圈的程式設計技巧。

二.實驗內容

【實驗題1】. 程式填空:分別用for、while、do-while語句程式設計,輸出菲波那契數列的前20項,要求每行輸出10項。

源程式1: 用for語句實現

#include <>

void main() }

編譯、連線並執行該程式,則顯示

思考:line 5和line 8行中printf()函式的格式控制符均為」%6d」, 假如均改為」%d」, 輸出結果有何不同?

源程式2: 用while語句實現

#include <>

void main() }

源程式3: 用do-while語句實現

#include <>

void main( )

while( i <= 20 );

}【實驗題2】(課本p141第10題)有乙個分數序列

2/1,3/2,5/3,8/5,13/8,21/13,…

求出這個分數序列的前20項之和。

源**貼上處

#include <>

void main()

printf("%f", sum);

}【實驗題3】(課本p141第11題)乙個球從100公尺高度自由落下,每次落地後反跳回原來高度的一般,再落下,再**。求它在第10次落地時,共經過多少公尺,第10次**多高。

源**貼上處

#include <>

void main()

printf("sum = %f,h = %f", sum,h);

}【實驗題4】程式填空:輸入乙個整數,從高位開始逐位分割各位數字,如輸入7358,則輸出 7 3 5 8(2023年春筆試真題)

【分析】此題可能有些難度,請仔細按**行對應的注釋思考

我們已經學習了如何用整除運算和求餘運算求出乙個整數number的位數、以及從低位到高位的各位數字。本題則是從高位向低位逐步分解各個數字,關鍵是先求出這個整數是幾位數?

如果已知number是k位數,那麼該整數整除10k-1,就可得到最高位的數字;然後對剩餘部分除以10k-2,得到下乙個數字上的數字;再對剩餘部分除以10k-3,…例項如下:

被除數number k 最高位權重power=10k-1 高位數字number/power 餘數

7358 410007358

358 3100358

58 21058

8 1180

0結束!

源程式如下:

#include <>

void main( )

while(t!=0);

//求最高位的權重:power=10k-1

power=1;

for(i=1; i power=power*10;

//從最高開始,逐位分解並輸出各位數字

while( k--!=0 )

printf("\n");

}編譯、連線並執行程式,

輸入-79,輸出: 7 9 ; 如果輸入4,則輸出 4 ; 如果輸入27354,則輸出 2 7 3 5 4 。

問題1:為什麼在line 7要複製number,而不直接使用number來求位數k?

因為求位數需要t=t/10,如果不複製,直接使用numbe=number/10則會改變number的值。後續程式還會用到number,所以需要複製number給t。

(選做題)【實驗題5】程式設計:百文百雞問題:已知公雞每只5文錢,母雞每只3文錢,小雞1文錢3只,請輸出用100文買100隻雞的全部解,即公雞、母雞、小雞應各買幾隻?

源程式:

源程式:

#include <>

#define t 100//此處為了方便修改,比如200文買200隻雞,此處改為#define t 200即可

void main( )

}提示:

本題可能需要考慮:

1) 遍歷可能出現的所有情況,需要用到雙重迴圈,也可以用三重迴圈;

2) 需要判斷對於給定的一種情況,是否滿足其總價為100文,雞的個數為100個。

本題答案為4種情況。

上機實驗六迴圈結構程式設計二

for i 2 i sqrt n i if n i 0 break if i sqrt n return 1 n是素數,返回1 else return 0 若為假,n不是素數返回0 編譯 連線並執行該程式,結果顯示 問題1 輸出的第一行是否有5個式子?原因是什麼?只有3個,因為k是偶數,且取值從6開...

實驗五迴圈結構程式設計

實驗目的與要求 1 熟練掌握while do while及for的語句實現迴圈的方法。2 了解3種迴圈語句的區別和轉換 各自的適應性 迴圈巢狀的使用。3 掌握如何在迴圈語句中使用break和continue語句,改變程式流程。4 掌握在程式設計中用迴圈的方法實現各種演算法。實驗內容 1 將p21的實...

實驗4 迴圈結構程式設計答案

班級學號姓名 完成日期課 內 外總計本實驗用時間 一 實驗目的 1 熟練掌握while語句,do while語句和for語句的格式和功能,能夠用這些語句實現迴圈結構程式設計的方法。2 熟練掌握迴圈語句巢狀使用的基本形式,能夠用迴圈語句實現多重迴圈。3 掌握在迴圈結構程式設計中使用break語句和co...