摘 要:C語言作為一門基礎編程語言,學生學好了就可以自如地去應付其它任何一種編程語言。
因此,如何夯實學生的C語言基礎、提高考試成績,成為迫在眉睫的一個問題。本文基于筆者的教學實踐,分五步來解C語言大題目。
關鍵詞: C語言;解題步驟
中圖分類號:G420 文獻標識碼:文章編號:1992-7711(2011)12-042-01
古代教育理論中就提出“授人以漁”而不能“授人以魚”。本文基于筆者的教學實踐,在此拋磚引玉僅就C語言解題的一般方法提出一些建議,以饗讀者。
第一步:仔細審題找出已知未知
筆者評講試卷時,常常有學生恍然大悟。原來題目里本來就有這個條件,原來要求的輸入在題目里就已經提供了,原來題目里提供的是字符還要轉化成相應的ASCII碼才能計算等等。
審題,這個我們從小學就做過了,審題一方面要對整個題目有個總體認識,并得出題目相應的已知和未知,另一方面也是我們獲得思路最直接的線索。筆者認為如果題目讀了一遍之后還沒有頭緒,那么多讀幾遍直到把題目的來龍去脈理清楚再去答題。這一點對程序填空題尤其要注意,往往某些填空的答案就隱含在題目中。
第二步:讀程序找出變量的作用
找出變量作用的目的在于初步得出程序的算法。當然找的過程要結合具體程序,筆者認為最主要就是要看該變量的初值是多少、該變量是在哪里被用到的。一般而言,變量定義好了以后一定要賦初值,往往一些填空題就是要求給變量賦值的。
另外,對變量的初值筆者也作了一些總結。如某一變量的初值為0(假如s=0),那么變量s一般情況下可以用來求和、進行統計、狀態變量、數組下標等等。有時初值為1的變量也可以用來進行統計,讀者要善于歸納總結,特別提醒如果作為狀態變量的話,那么該變量的數值一定是在0和1之間變化的。
第三步:找復合語句給程序配對
配對的方法很容易,就是把一條語句或者復合語句用一個方框畫出來。這樣程序的執行過程和變量的作用范圍便一目了然。比如,下面這道程序閱讀題。
main( )
{ int a=2,b=3,temp=5;
if(a>b) temp=a; a=b;b=temp;
printf(“a=%d,b=%d”,a,b);}
許多學生想當然,得出答案a=2,b=3.這個答案顯然是錯誤的。出現這個答案的根本原因是把后面的三條語句當成一起執行的交換語句,認為條件不成立就不交換,所以兩變量的值不變。
配對之后,變量的作用域也就很明顯地可以看出來。局部變量的作用范圍也就被約束在我們的方框中。對于全局變量的處理,筆者通常畫一條豎線標注。在定義處到程序結束畫一條豎線代表全局變量的作用范圍。
另外,讀者要注意隱含的復合語句。
第四步:得出算法關注變量變化
通過以上幾步,程序的算法也就順理成章地出來了。當然,為了提高讀者的解題速度,常見的算法一定要爛熟于心,平常的學習過程中要注意積累。
在此基礎上,通讀程序并且把各個變量的變化結果隨時寫出來。這里的過程一定要認認真真寫,只有這樣步步為營才能得到正確的答案。當然,也便于我們回頭來檢查。
過程決定結果!這里還要注意各種運算符的優先級,到底應該先算哪個。邏輯運算問題要注意右面的表達式到底要不要計算,當然邏輯運算的最后結果肯定為0或者1。自增自減問題到底先用還是先加減,當然不管怎么樣結果都會讓變量加1或者減1的。計算順序也要注意,到底從左往右計算還是從右往左計算。特別強調一下,printf( )輸出函數的計算順序從右往左,而輸出順序則從左往右。
第五步:結合輸出格式得出答案
眼看就要得到正確答案了,讀者不能因為格式問題而得不到分數或者只能得部分分數。細節決定成敗!printf( )輸出函數中格式控制字符以及轉義字符的功能一定要能脫口而出,如果讀者還要想半天才能得出,那么想必最后輸出的格式一定不會去注意。除了加強記憶理解這些外讀者還要克服“會而不對,對而不全”的現象。筆者要求學生要么不做要么就做全對。常此這樣訓練,考試的時候如果學生能發現做錯了,相信他們也能很快糾正。態度決定一切,以平常心對待考試也是必須的!
在實際學習中上機環節是C語言學習的重要組成部分,程序設計技能的培養只有通過大量的編程訓練和上機實習才能獲得。為此,要想學好C語言還必須多進行程序的編輯、編譯、調試和運行實踐。
筆者所教學生運用此種方法解題后,發現他們C語言成績得到提高的同時語文、數學、外語成績也不同程度地得到了提高!其實,學生掌握了一定的方法技巧后,逐步對C語言產生了興趣,提高C語言成績也就指日可待了!通過以上方法養成了良好的閱讀習慣,對語文的學習應該會有所幫助。通過注重過程分析提高了邏輯思維能力,本身C語言的算法和數學中的算法基本一樣,這樣提高他們的數學成績也就理所當然了。C語言中一些詞語是由幾個英語單詞組合而成,對比聯系后不僅理解了C語言中的語句同時也增加了英語的詞匯量。最關鍵的是養成了良好的習慣,注重過程和細節,考什么都能應付自如、胸有成竹!
當然,這也并非一套通用的方法,適合自己的方法才是最好的方法。時下正在推進的活動單導學模式,學生可以參與討論、協作學習、擴充思路。