一、本周教學內容&目標
第2章 用C語言編寫程序-函數 2.5 生成乘方表與階乘表。使學生對函數的定義和調用有初步的認識,能模仿編程。
二、本周作業頭
這個作業屬於那個課程 | C語言程序設計II |
這個作業要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/9826 |
我在這個課程的目標是 | 熟悉運用自定義函數 |
這個作業在那個具體方面幫助我實現目標 | PTA作業,以及學長的鏈接,網絡資源 |
參考文獻 | 百度,知乎 |
三、本周作業
- 1.PTA實驗作業
- 2.代碼互評
- 3.學習總結
四、作業格式
1.PTA實驗作業(20分/題)
從PTA題目集中選出2個你最滿意的題目完成以下內容,選擇題目難度越大,分值越高,每題20分(每項5分),內容要求如下:
1.1 判斷一個整數的各位數字平方之和能否被5整除
題目內容描述:編寫函數fun,其功能是:判斷一個整數的各位數字平方之和能否被5整除,可以被5整除則返回1,否則返回0。
函數接口定義:
int fun(int n );
其中 n 是用戶傳入的參數。 函數判斷n的各位數字平方之和能否被5整除,能被5整除則返回1,否則返回0。
1.1.1數據處理
數據表達:
函數參數:
1.1.2實驗代碼截圖
1.1.3 造測試數據**
輸入數據 | 輸出數據 | 說明 |
---|---|---|
-45 | The result is 1 | 負數 |
45 | The result is 0 | 隨機數 |
345 | The result is 0 | 隨機數 |
1254 | The result is 0 | 比較大的數 |
1.1.4 PTA提交列表及說明
提交列表說明:
- 部分正確:sum%50打成了sum/50
1.2 水仙花數判斷
題目內容描述:本題要求實現一個函數,判斷任一整數是否為水仙花數(必須是三位數,且數的每一位上數字的立方和與數本身相等)。例如153=13+53+3^3=1+125+27=153,而1或155則不是水仙花數。如果是水仙花數,則函數返回1,否則返回0.
函數接口定義:
int func(const int N);
其中N是用戶傳入的參數。N的值不超過int類型的范圍。如果參數N是水仙花數,則返回1,否則返回0。
1.2.1數據處理
數據處理:
函數參數:
1.2.2實驗代碼截圖
1.2.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
25 | 0 | 兩位數 |
153 | 1 | 三位數 |
2500 | 0 | 四位數 |
1.2.4 PTA提交列表及說明
提交列表說明:
- 編譯錯誤:const定義N,N不能被賦值,我把N賦值導致編譯錯誤。
- 解決方案:添加一個變量,把N的值賦給變量。
2.代碼互評
找2份同學代碼,和自己代碼比較,建議互評代碼盡量找代碼風格差異較大。
1.對比1
2.1.1同學代碼截圖:
2.1.2自己代碼截圖:
區別:
- 他分別算出來該數的個、十、百位上的數,再求立方和,在與原數比較是否相等。而我直接用循環結構算出每個位的數,在把他們的和存在sum里。他這種方法只限用於三位數,當出現多位數要判斷時,這種方法就不太好用,for循環就可以很好的解決這個問題,不需要太多的代碼。
2.對比2
2.2同學代碼截圖:
2.2自己代碼截圖:
區別:
- 他直接返回sum%5==0,而我用if-else返回數據。
而我們的判斷條件不一樣,但我們的效果是一樣的,因為當n除以10時,因為是整型數據相除所以是整數,n除以10,只能是非負數,當n除以10為0時,就已經把所有位上的數字取完了。
3.學習總結(15分)
3.1 學習進度條(5分)
周 /日期 | 這周所花的時間 | 代碼行 | 學到的知識點簡介 | 目前比較迷惑的問題 |
---|---|---|---|---|
第一周 | 3小時 | 60 | 學會輸出字符 | 無 |
第二周 | 10小時 | 186 | 學到變量名稱、運算、把變量的結果輸出 | 無 |
第三周 | 7.5小時 | 245 | 學會if條件判斷 | 無 |
第四周 | 5小時 | 120 | 學會使用for循環 | 無 |
第五周 | 6小時 | 80 | 學會定義函數,do while 等循環 | 一些復雜的函數看到不知道怎么定義,不了解一些新定義,比如const |
3.2 累積代碼行和博客字數(5分)
時間 | 博客字數 | 代碼行數 |
---|---|---|
第一周 | 183 | 60 |
第二周 | 1774 | 186 |
第三周 | 2149 | 245 |
第四周 | 1585 | 120 |
第五周 | 1645 | 80 |
3.3 學習內容總結和感悟(5分)
3.3.1 學習內容總結
請用思維導圖的形式將到目前為止所學的內容進行整理。
3.3.2 學習體會
我覺得自定義函數有點看不懂,“return product”不知道返回結果是什么意思,對於一些新的語句(比如break)不熟悉,所以做題目也會有一些困難。但是現在網絡的資源也很豐富,可以通過一些網站上查找學習資源。
上節課學習的內容我感覺比較復雜,而且題目也比較有挑戰性,還包含了一些沒有教的內容,但是每次做出題目后都會有滿滿的成就感。
五、評價標准
C語言作業評價標准
本次作業特別注意:
- 1.提交列表沒內容,或者太簡單,每題得分0分。注意選擇提交列表長的題目介紹。
- 2.代碼格式不規范,0分。
- 3.代碼互評,內容簡單,0分。
- 4.學習內容總結無思維導圖,0分。