何曉勤

一、程序框圖中的錯解剖析
1.循環結構的循環體出現錯誤
剖析:當輸出(或輸入)在循環體內部時,每次循環時都要輸出(或輸入)變量的值,我們稱這種循環輸出(或輸入)為批量輸出(或輸入)。本題輸出在循環體內部,每執行一次循環體,都要輸出對應的s的值,并非是輸出最后的s的值。
正解:輸出的結果是2,5,10。
二、基本算法語句中的錯解剖析
1.賦值語句的變量傳遞出現錯誤
例4 執行如圖5所示的算法,若輸入的a,b的值分別為2和3,則輸出的a,b的值分別為 。
錯解:由該程序可知:a=2,b=3;a=2+3=5,6=2=3=-1。故輸出的a,b的值分別為5,-1。
剖析:當一個變量被另一個變量或表達式賦值時,此變量的原有值已被刪除,而具有了新值,所以在執行下一語句時,應將新值代人運算。本題的算法執行賦值a=a+b之后,a的值已變成了5,所以執行賦值b=a-b時,a的值是5,而不是2。
正解:輸出的a,b的值分別為5,2。
2.條件語句嵌套格式出現錯誤
剖析:在運用條件語句中的嵌套格式時了出現錯誤,一般的格式是IF-ELSE-(IF-FLSE-ENDIF)-END IF。要注意IF和END IF的一一對應關系。
3.循環語句變量取值和語句順序關系把握不好出現錯誤
例6 圖8和圖9的兩個程序均表示求滿足1×3×5×7×…×n<5000的最大的正整數n的算法程序,請將①②處補充完整。
錯解:圖8的程序輸出的結果為滿足1×3×5×7×…×n<5000的最大正整數n,①處填i。圖9的程序輸出的結果為滿足1×3×5×7×…×n<5000的最大正整數n,②處填i-2。
剖析:錯解錯在對程序各語句的順序把握不好,且對輸出變量的含義理解不透徹。正確解答本題的關鍵是要判斷循環結束的條件、變量i的值與最大正整數n的關系。圖8和圖9中循環體內的兩個語句的順序恰好相反,運行兩程序可知,循環結束時,圖8中i的值比所求的n的值大2,而圖9中的i的值比所求的n的值大4。
正解:①處應填i-2,②處應填i-4。