(一)改錯題
輸出華氏攝氏溫度轉換表:輸入兩個整數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
源程序(有錯誤的程序)
運行:
1,錯誤信息:
錯誤原因:for括號內要用分號隔開,並且for最后不加分號。
改正方法:把for括號內的逗號改為引號,去掉for后面的分號。
2,錯誤信息:
錯誤原因:整個代碼中大括號只有半個。
改正方法:在return 0;后加"}"。
運行:
運行結果不符合。
3,錯誤信息:
錯誤原因:for后面沒有加大括號。
改正方法:for后加上大括號。
運行:
4,錯誤信息:
錯誤原因:fathr輸出的應該是int,但是輸出定義的是浮點型。
改正方法:將"%3.0f %6.1f\n"改為"%3f %6.1f\n"。
運行:
5,錯誤信息:
錯誤原因:題中說每次增加2℉,但fathr++不符合題意。
改正方法:fahr++ 改為 fahr=fahr+2。
運行:
6,錯誤信息:
錯誤原因:\n的位置改了,輸出類型也改了,fahr是int類型的然后后面那個小數要保留一位小數,是%.1lf,double是%lf
改正方法:
運行:
(二)學習總結
1.有如下程序:
(1):先聲明代碼中的變量num ,odd ,even,
(2):給代碼賦初值0
(3):給i賦值=1,
(4):輸入第一個數,判斷是奇數還是偶數。
(5):如果是偶數就 even++;如果是奇數就odd++;第一次循環結束。
(6):進入第二次的循環同上。
(7):當I=11時結束循環
(8)前兩次的循環,先輸入一個數,判斷奇數還是偶數。然后再次輸入一個數,進行第二次循環,繼續判斷奇數和偶數。
當輸入第十個數就是最后一次循環,仍然判斷是奇數還是偶數,
最后程序實現的是輸入的10個數中,奇數個數和偶數個數各有多少個。
2.增量運算符
(1)運行下面程序,結果是什么?增量運算符在單獨使用時,前綴和后綴形式有區別嗎?
增量運算符在單獨使用時,前綴和后綴形式沒有區別。
(2)運行下面的程序,結果是什么?兩條輸出語句的執行過程是怎樣的?說明什么問題?這兩條輸出語句執行完后,i和j的值分別是多少?
運行:
第一條語句 i++ 是先執行再加一,第二條語句 ++j 是先加一再運行。
第一個結果是沒有加一直接輸出的。
運行問題:在某些程序中前綴和后綴在語句運行中是有區別。前綴形式的增、減量運算符,運算時,先執行操作再后續運算,而后綴則相反,先執行其他運算,再將變量的值執行增/減量操作。因此在確定運算時一定要分清其區別,合理運用前后綴。
i和j的值應該均是3。
3.有些循環語句后面有{},有些沒有,有些語句有縮進,運行下面的四個小程序,運行結果有什么不同?循環體的認定與縮格形式是否有關?與{}是否有關?那么,應該如何正確判斷一個循環語句中的循環體?下面的程序中,哪幾種格式是正確的縮進格式。
(1)
(2)
(3)
(4)
依次運行:
(1)
(2)
(3)
(4)
(1)與(2)說明循環體的認定與縮格形式無關,與{}有關。第四個正確。
(三)實驗總結
(1)題目
7-1 求奇數分之一序列前N項和(10 分)
本題要求編寫程序,計算序列 1 + 1/3 + 1/5 + ... 的前N項之和。
輸入格式:
輸入在一行中給出一個正整數N。
輸出格式:
在一行中按照“sum = S”的格式輸出部分和的值S,精確到小數點后6位。題目保證計算結果不超過雙精度范圍。
(2)流程圖
(3)源代碼
(4)實驗分析
認真細心就好。
(5)本題PTA提交列表
(1)題目
7-3 奇偶分家(10 分)
給定N個正整數,請統計奇數和偶數各有多少個?
輸入格式:
輸入第一行給出一個正整N(≤1000);第2行給出N個正整數,以空格分隔。
輸出格式:
在一行中先后輸出奇數的個數、偶數的個數。中間以1個空格分隔。
(2)流程圖
(3)源代碼
(4)實驗分析
問題1:循環出現問題。
原因:格式錯誤。
解決方法:for格式括號內用分號,括號外不加分號。
(5)本題PTA提交列表
(1)題目
7-5 統計字符(15 分)
本題要求編寫程序,輸入10個字符,統計其中英文字母、空格或回車、數字字符和其他字符的個數。
輸入格式:
輸入為10個字符。最后一個回車表示輸入結束,不算在內。
輸出格式:
在一行內按照
letter = 英文字母個數, blank = 空格或回車個數, digit = 數字字符個數, other =
(2)流程圖
(3)源代碼
(4)實驗分析
問題1:編譯正確,但是運行中錯誤很多。
原因:字符運用不好,最初沒有定義為0.
解決方法:多加練習字符,if語句認真,不要弄混情況。
(5)本題PTA提交列表
(1)題目
7-7 求交錯序列前N項和(15 分)
本題要求編寫程序,計算交錯序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N項之和。
輸入格式:
輸入在一行中給出一個正整數N。
輸出格式:
在一行中輸出部分和的值,結果保留三位小數。
(2)流程圖
(3)源代碼
(4)實驗分析
問題1:運行結果不對。
原因:開頭沒有#include <math.h>
解決方案:開頭加上#include <math.h>,認真。
(5)本題PTA提交列表
(四)博客互評
http://www.cnblogs.com/lsx123/p/7816527.html
http://www.cnblogs.com/fkh1/p/7812032.html
http://www.cnblogs.com/wlm312/p/7812154.html