姓名學號姓名
本次實驗一共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...