C語言程序設計第五次作業——循環結構(1)


C語言程序設計第五次作業——循環結構(1)

(一)改錯題

輸出華氏攝氏溫度轉換表:輸入兩個整數lower和upper,輸出一張華氏攝氏溫度轉換表,華氏溫度的取值范圍是{lower,upper},每次增加2℉。計算公式如下:c = 5×(f-32)/9,其中,c表示攝氏溫度,f表示華氏溫度。

輸入輸出樣例1:

  Enter lower:32
  Enter upper:35
  fahr celsius
  32 0.0
  34 1.1

輸入輸出樣例2:

  Enter lower:40
  Enter upper:30
  fahr celsius

源程序圖:

對源程序進行編譯:

發現源程序第13行出現錯誤,for()語句后面不可以加“;”,且中間的條件句應該用“;”隔開,格式錯誤。
經改正,

繼續進行編譯,無錯誤。輸入樣例:

發現答案不符合,檢查后發現,fahr定義的是int類型的,而輸出時卻為“%f”,應該為“%d”,如圖:

當輸入樣例二時:

因為華氏溫度的取值范圍是{lower,upper},所以當輸入40與30時會出現無輸出值的現象。

(二)學習總結

1.有如下程序:

詳細描述程序的執行過程,即說明程序的每一步是執行的哪條代碼,執行順序如何。循環需描述前兩次循環和最后一次循環的詳細執行過程。最后說明程序實現的功能是什么。

①定義變量
②將0賦值給odd和even
③進入循環,輸入一個num值,當num%20時,執行even++,當num%2!=0時,執行odd++
④給i加1,判斷i是否<=10,如不是則退出循環;是則繼續執行循環體
⑤再次輸入一個num值,當num%2
0時,執行even++,當num%2!=0時,執行odd++ 。··
最后當i=10時,輸出even和odd的值。
給程序是用來統計輸入的值的奇數和偶數個數的。

2.增量運算符:

(1)運行下面程序,結果是什么?增量運算符在單獨使用時,前綴和后綴形式有區別嗎?

結果如圖:

當增量運算符在單獨使用時無論是前綴還是后綴是沒有區別的。

(2)運行下面的程序,結果是什么?兩條輸出語句的執行過程是怎樣的?說明什么問題?這兩條輸出語句執行完后,i和j的值分別是多少?

結果如圖:

對於“i++”,是先使用“i”的值,再給“i”加上1,;對於“++j”,是先執行“j+1”,得到“j”加1后的值在使用“j”。說明當增量運算符作為表達式的一部分時,前綴形式和后綴形式的執行過程是不一樣的。執行完兩條語句后得到的 i=3, j=2。

3.有些循環語句后面有{},有些沒有,有些語句有縮進,運行下面的四個小程序,運行結果有什么不同?循環體的認定與縮格形式是否有關?與{}是否有關?那么,應該如何正確判斷一個循環語句中的循環體?下面的程序中,哪幾種格式是正確的縮進格式。

(1)

(2)

(3)

(4)

運行上面的四個程序,發現,第1.2.4程序的運行結果是一致的,均為“*****”。第3個程序的輸出為:

觀察程序可知(1)(2)的區別在於縮進的格式,然而二個程序的執行結果一致,所以由程序(1)(2)可知循環體的認定和縮進格式沒有關系;觀察程序(3)(4)可知二者的區別在於是否有“{}”,分別執行兩個程序,發現執行結果不一致,所以由程序(3)(4)可知循環體的認定與“{}”有關;“{}”里的時該循環的循環體;上面的程序中,按照循環的判定而言縮進格式正確的是(3),(4)。

4.對其他你認為需要進行總結的內容進行總結。

循環體語句既可以是單條語句也可以是復合語句;“++”,“--”不能用於常量和表達式,結合方向為自右向左,優先級大於“* /”,運用增量運算符可以提高代碼的效率。

(三)實驗總結

1.統計學生平均成績與及格人數

(1)題目:本題要求編寫程序,計算學生們的平均成績,並統計及格(成績不低於60分)的人數。題目保證輸入與輸出均在整型范圍內。

(2)流程圖:

(3)源代碼:

(4)實驗分析:

問題一:

原因:本題中輸出的average應該保留一位小數,而編譯代碼時忽略了當沒有學生時average應該表達為“0.0”。

(5)本題PTA提交列表

2.到底是不是太胖了

(1)題目:據說一個人的標准體重應該是其身高(單位:厘米)減去100、再乘以0.9所得到的公斤數。真實體重與標准體重誤差在10%以內都是完美身材(即 | 真實體重 − 標准體重 | < 標准體重×10%)。

                        已知市斤是公斤的兩倍。現給定一群人的身高和實際體重,       請你告訴他們是否太胖或太瘦了。

(2)流程圖:

(3)源代碼:

(4)實驗分析:

該題編寫時需先整理好計算的公式,尤其注意公斤與市斤的相互轉化關系,其他按照正常的循環體系編譯即可。

(5)本題PTA提交列表

3.統計學生成績

(1)題目:本題要求編寫程序讀入N個學生的百分制成績,統計五分制成績的分布。百分制成績到五分制成績的轉換規則:

                       大於等於90分為A;
                       小於90且大於等於80為B;
                       小於80且大於等於70為C;
                       小於70且大於等於60為D;
                       小於60為E。

(2)流程圖:

(3)程序圖:

(4)實驗分析:

本題要求輸出相應分數段的人數,並不算難,需注意每個等級應該在哪個分數段,然后進行分類即可。

(5)本題PTA提交列表

4.找出最小值

(1)題目:本題要求編寫程序,找出給定一系列整數中的最小值。

(2)流程圖:

(3)源程序:

(4)實驗分析:

問題:

原因:沒有理解好題意,錯誤的認為應該將前后輸入的值進行交換,然后進行比較。

(5)本題PTA提交列表

(四)博客互評

1.對luckyyou同學博客園的評價(http://www.cnblogs.com/LYFRRS/p/7807056.html):
該同學的博客作業條理清晰,但個別地方有些瑕疵,格式沒有對齊,在第二部分中,,描述的很清楚,但在總結的地方比較簡單。
2.對永恆破碎同學博客園的評價(http://www.cnblogs.com/zhaochenyu/p/7810395.html):
該同學的博客內容較完整,但添加的截圖卻比較散亂,給人的整體感覺不是很清晰,下次建議仔細調整一下圖片的整齊排列。
3.對曲兒說同學的博客園的評價(http://www.cnblogs.com/abc15369938639/p/7810952.html):
該同學在描述第二部分學習總結時,整理的非常清晰,將執行步驟寫的也很詳細,並且在流程圖之后還添加了執行的結果圖,比較認真完整。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM