999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

C語言教學探討

2012-12-31 00:00:00沙愛軍
計算機時代 2012年12期

摘 要: 為提高C語言教學質量,針對C語言課程內容和特點,在教學中結合實際應用激發學生的學習興趣,運用知識點間聯系幫助學生建立知識體系,通過實踐訓練提高學生編程操作能力,注重編程規范使學生養成良好的編程風格,取得了較好的教學效果。

關鍵詞: C語言; 程序設計; 教學方法; 編程規范

中圖分類號:TP312 文獻標志碼:A 文章編號:1006-8228(2012)12-41-03

On C language teaching

Sha Aijun

(School of Communication Engineering, Nanjing Institute of Technology, Nanjing, Jiangsu 211167, China)

Abstract: In order to improve the quality of C language teaching,more attention has been paid in teaching to stimulate the students' interest by practical project, helping them to establish knowledge network by using contact between knowledge. Practice training is used to enhance their programming ability. The programming rules are emphasized to develop their good programming style. Teaching effects have been proven to be good.

Key words: C language; programming; teaching method; programming norms

0 引言

C語言作為一種計算機程序設計語言,兼具高級語言和匯編語言的優點,在編寫系統軟件和應用軟件方面得到了廣泛的使用。因此,通信、計算機、信息等專業往往將其作為第一門專業基礎課。C語言教學目標要求學生既掌握C語言的語法、結構、數據類型等內容,又要掌握軟件工程思想,掌握常見算法,學會使用C語言編程解決實際問題并形成良好的編程風格,為后續課程及未來工作打下良好基礎。

本課程知識點較多、使用靈活、實踐性強、難度較大,且大部分學生是第一次接觸編程,缺乏相關編程基礎和思維,學時又有限(一般為48學時或64學時),如何提高C語言教學質量,是一個值得探討的問題。本文從幾個方面介紹筆者在教學中的一些體會。

1 提高學生學習興趣

學習興趣是推動學生積極主動學習的直接動力,是最好的老師。C語言中語法規則較多,而且相對枯燥,要讓學生學好C語言,最重要的就是激發其興趣,讓他們在學習中找到樂趣,在快樂中掌握相關知識點。

例如在第一次課程中,當介紹了C語言產生背景、發展歷程等知識點之后,可向學生展示一些實用性的小程序,如“推箱子”、“五子棋”、“貪吃蛇”等游戲。通過生動、形象、直觀的展示,讓學生對C語言產生想學的強大動力。一旦學生產生興趣,可以先讓他們嘗試編寫輸出簡單的“Hello world!”程序,在此過程中,順勢讓學生了解簡單的C語言程序的框架,使得語法、數據類型等知識點不再枯燥,成為程序中有血有肉的必要組成體。

在后續的課程中,也要不斷地結合具體知識點的學習,選擇具有趣味性、實用性和挑戰性的小型案例,采取項目案例教學法,如超市購物系統[1],將其各部分的功能分散到各章去,從簡單到復雜,讓學生在快樂和興趣中一步步地去學習和探索新的知識。

同時,還應鼓勵學生利用所學知識,設計一些實用的小程序來解決身邊的一些小問題。當學生有了目標,投入進去,遇到困難必然會想辦法去克服,而當他們嘗試到了成功帶來的喜悅時,又會促使他們進一步愛上編程。

2 運用聯系法,幫助學生建立知識體系框架

C語言知識點很多,包括基本數據類型(整型、字符型、浮點型)、算法、基本的程序結構,數組、函數、指針、結構體和共用體、文件、位運算、預編譯等等【2】。根據知識點之間的聯系,上述內容可整合成數據類型、算法和程序結構、函數、文件及其他等幾大部分,在課堂教學中,可運用聯系法,幫助學生實現知識點的遷移,建立知識體系框架。

⑴ 數據類型

數據類型包括基本數據類型、構造類型中的數組、結構體、共用體,此外還有指針類型等。不同的數據類型將決定內存中占據的空間大小以及表示數的范圍,可以此為線索,講解基本數據類型和構造類型的含義和聯系,比如同類型的基本類型數據構造在一起就成了數組類型,不同的類型的數據構造在一起,就成了結構體類型等。

再聯系到現實中的例子,講解變量和指針變量的含義和定義,進而講解指針變量不僅可以存放普通變量的地址和數組元素的地址,還可以存放結構體數組變量的地址和結構體數組元素的地址。

⑵ 算法和結構化程序設計

編制程序的過程就是形成算法、實現算法到結構化代碼轉化的過程。

首先,針對學生感覺編程難的問題,教學中首先讓學生形成正確的思維。當遇到一個問題的時候,讓學生去思考一下不用程序是如何解決的[3,4]。例如:先做什么,再做什么;可分幾種情況討論;有沒有需要重復做的事情。引導學生進行一題多解,分析算法的步驟和運算量小,探討算法邏輯嚴密性等方面的問題。一旦學生有了自己的思路,編程就會變得更容易:只要將上述偏文字化的思路(算法)轉化成用流程圖描述,并進行結構化編碼即可。實際上,在上面的思考和討論中,程序框架已經體現出來了。

其次,講解常見典型算法,拓展知識點并建立聯系,引導學生悟出其中的規律。講解迭代法、遞歸法、窮舉法、回溯法以及一些常用的程序段[5]:如求累加、累乘;判斷一個數是否為素數;對一個數的各個數位進行分離;求最大公約數和最小公倍數;對數組元素的檢索、排序、插值、刪除、逆序;求矩陣的轉置;對字符數組進行復制、連接、比較;對鏈表中結點的檢索、排序、插值、刪除等等,這些都是學生必須要掌握的。講解上述算法和程序的時候,可以采取階梯法,循序漸進。例如,先講解累加、再講解累乘,分析有何不同;再比如,講解數組元素的檢索、排序、插值、刪除操作,當講到鏈表時,分析鏈表中結點的檢索、排序、插值、刪除等操作和數組中的操作有哪些異同點等。

⑶ 函數部分

函數是模塊化程序設計中的基本組成單位。可以用一個小程序來引入,如:求學生平均成績。在學習函數之前,學生喜歡將所有代碼全放在main()中;而現在可以將輸入、求平均成績、輸出等功能獨立成函數,在main()函數中調用這些函數。讓學生從總體格局上把握這兩種形式有何不同,體會模塊化的作用,了解耦合性和內聚性等概念,形成對模塊化的初步印象。

為講解函數的一些重要概念,可從現實生活中學生比較熟悉的數學中的函數概念入手,幫助學生理解函數名、函數定義和函數調用,理解函數的形參和實參,函數的返回值等概念,并結合已有的程序將這些知識點遷移到C語言中。

在C語言中,函數的實參可以是值或地址,這個知識點至關重要,兩者區別如下:①當函數的實參為地址時,被調用時傳遞給形參(指針變量),若被調用函數中對形參所指向的內容進行了修改,其實質就是修改調用函數中的實參所指向的內容,即修改的結果能帶回來;②其他情況,如函數的實參雖為地址,但被調用函數中是對形參(指針變量)進行修改,或者函數的實參為數值,其修改的結果都是不能帶回的。上述參數中的地址,可從變量的地址推廣至數組元素的地址、數組名、指針變量、結構體變量地址和結構體數組名。

⑷ 文件

文件中應首先讓學生明白什么是文件,為什么需要文件,文件存儲的位置和先前的變量有什么不同,文件的分類等基本概念。在緩沖文件系統中,對文件訪問還要借助 “文件類型指針”, 讓學生體會這和先前所學的變量訪問等有哪些不同。此外,該文件類型又是一個結構體類型,描述的是打開文件的相關信息,則可以和結構體類型的定義等概念建立聯系。

文件的操作主要包括文件的打開、文件的關閉、文件的讀寫、文件讀寫位置的定位、文件出錯檢測等。此處以講解文件的讀寫為重點,可讓學生明白讀寫前要打開文件,需提供文件名和讀寫方式,文件讀寫完后還要關閉等等;讀寫的過程中,可根據一個字符、一個數據塊等選取不同的函數,還可以讓學生將此處的fgetc()和getchar()建立起聯系,明白設備文件的概念以及getchar()實質上來自于fgetc(),將前后知識融會貫通。當然,若要實現隨機讀寫又引出fseek()等知識點,學生在聯系和區別中建立框架,明白所以然。

⑸ 其他方面

如位操作、預處理等也要講解,此部分內容相對簡單,由于篇幅關系,不再進行探討。

3 理論聯系實踐,注重提高學生上機實踐操作能力

C語言是一門實踐性極強的課程,要讓學生真正學會C語言,必須讓他們經過大量的實踐和編程訓練,在實踐中提高技能。我們把實踐部分分為三大塊。

⑴ 課內實驗

在本學院教學中,作為64學時課程的一部分(46學時理論+18學時實驗),一共有9次實驗,對重要知識點,每學完一章內容,就安排一次上機實驗課,盡量安排在緊跟理論課之后。

在實驗中,我們側重訓練學生對所學知識的理解和掌握。每次實驗,在內容上采用典型的案例;在層次和題型上采用循序漸進的方式;既包括驗證性等基礎性的實驗,又包括分析填空、改錯、獨立設計等提高性的實驗。在教學中,充分發揮教師的主導和學生的主體作用,上機前教師講解算法及注意點;然后讓學生動手編寫程序、上機調試;教師在學生上機過程中,逐個座位巡視,幫助解決學生遇到的問題;上機結束后,要求學生提交實驗報告,進行總結提高。

在實驗課程中,一定要讓學生掌握程序糾錯的方法,“授人以漁”。第一,要引導學生學會糾正語法錯誤[2]:看懂編譯錯誤的英文提示信息的含義,學會排除錯誤并進行總結。第二,要引導學生糾正邏輯錯誤:除學會靜態檢查外,還要學會調試程序的方法。一旦學生掌握了如何單步跟蹤,如何觀察數據的存儲空間,何時需要在何處打上斷點,何時需要進入函數內部跟蹤等調試的方法和技巧,程序的運行狀態就變得直觀、清晰、可控,程序調試將不是難事。當學生能排除錯誤并調試成功,必定會獲得成就感,也必定會加深對語法、數據類型、算法等知識點的理解,促進他們有信心學好這門課程。

⑵ 課外上機訓練

課外上機訓練,我們布置10道代表性強、綜合性高、實用性好的題目,讓學生利用課外時間,進行編程和調試,并提交程序和報告使學生的能力得到進一步提高。

⑶ 課程設計(1周時間)

在為期一周的過程課程設計中,我們要求學生將C語言課程中學到的知識綜合運用到一個小的項目中,從選題到整體規劃、模塊劃分、詳細設計、編碼、調試,再到撰寫一個類似畢業論文的課程報告,對學生進行一個完整的訓練。課程設計的題目可為職工信息管理系統或者通訊錄這種類型的題目,鼓勵學生用數組或鏈表兩種不同的數據類型來實現,并比較其中的優缺點;學生也可以根據自己的興趣和能力,經指導老師同意后,選擇編程實現一些游戲項目。

4 注重編程規范化訓練,養成良好的編程風格

在C語言的教學中,還應從軟件工程的角度,按照企業對程序員的要求,注重編程規范的訓練,養成良好的編程風格[6]。

⑴ 注意程序書寫格式

要注意程序的書寫格式,比如,程序中添加必要的空行,一行代碼只做一件事,有正常的縮進,{}的匹配,正確的對齊,加必要的注釋,使用括號確定表達式的操作順序,這樣可使程序美觀、可讀性好。此外,一些書寫習慣有助于提示一些語法錯誤,比如,初學者將==經常誤寫成=,若if(a==1)誤寫成if(a=1),編譯器并不提示出錯信息;但若交換運算符兩邊的運算對象,即改寫成if(1==a),此時,若再誤寫成if(1=a),則編譯器就會提示出錯信息。

⑵ 提高對內存使用管理方面的意識

C語言是一個可以對內存直接操作的語言,內存的概念在C語言中相當重要。從全局變量、局部變量的內存空間的分配,到利用malloc()等函數申請內存以及指針的運用,處處離不開內存,因此要強化學生對內存使用管理的意識。例如:全局變量、局部變量、malloc()申請的內存所在的區域有何不同,再如內存分配后要檢查是否分配成功,在引用內存前要對其初始化、避免出現野指針、避免數組越界、避免內存泄露等。

⑶ 注重程序的出錯處理

當程序出錯時,應有正常的出錯提示信息,有良好的交互性。比如對文件的打開要考慮文件打開失敗的處理,比如申請一段內存時,要檢查是否分配成功,再比如輸入學生的成績(0~100)時,要考慮誤輸入的情況等。

⑷ 形成重視軟件文檔的意識

文檔是計算機軟件產品的重要組成部分,應該適時的讓學生初步形成重視軟件文檔的意識。比如課程設計中要求學生:學習包含軟件需求分析、可行性分析、總體開發計劃、概要設計、詳細設計、系統測試等文檔的標準和編制規范方面的內容。

5 結束語

C語言是一門得到廣泛使用的語言,該課程又是一門基礎課,掌握該課程對學生學習后續其他課程,以及未來就業都有著十分重要的現實意義。如何讓枯燥、難懂的課程學習變成集知識、趣味于一體的學習,如何讓學生快速建立起知識體系、掌握重要的知識點,如何讓學生動手操作能力得到切實的提高、編寫出符合規范化要求的程序,為未來成為一名合格的軟件編程工程師打下扎實的基礎。本文對這些問題進行了探討,并在近年的教學實踐中加以運用,取得了良好的效果,學生的編程能力和綜合素養得到了明顯的提高。

參考文獻:

[1] 姚海軍.C語言教學中的項目設計[J].吉林教育,2011.16:3

[2] 譚浩強.C語言程序設計(第3版)[M].清華大學出版社,2005.

[3] 楊春.初學C語言程序設計的基本方法和技巧[J].人力資源管理,

2010.1:90-91

[4] 張會影.高校C語言教學方法探索研究[J].電腦知識與技術,2010.6

(24):6815-6816

[5] 馬麗娟.常用計算機算法簡介及C語言舉例[J].電腦知識與技術,

2011.6(11):2655-2659,2662

[6] 林銳.高質量程序設計指南——C++/C語言(第3版)[M].電子工業出

版社,2007.

主站蜘蛛池模板: 无码精油按摩潮喷在线播放| 新SSS无码手机在线观看| 国产精品亚洲一区二区三区z| 国产噜噜噜视频在线观看| 国产男女免费完整版视频| 国产呦视频免费视频在线观看| 97se亚洲综合不卡| 国产一国产一有一级毛片视频| 亚洲av无码人妻| 波多野结衣爽到高潮漏水大喷| 91毛片网| 在线观看热码亚洲av每日更新| 久久精品只有这里有| 欧美成人午夜视频免看| 国产乱子伦视频在线播放| 久久亚洲日本不卡一区二区| 久久青青草原亚洲av无码| 精品国产中文一级毛片在线看| 国产网站在线看| 在线精品视频成人网| 婷婷午夜天| 久久这里只有精品国产99| 麻豆国产原创视频在线播放| av在线人妻熟妇| 中文字幕在线一区二区在线| 亚洲成a人在线播放www| 波多野结衣无码中文字幕在线观看一区二区 | 乱系列中文字幕在线视频| 亚洲一级毛片免费看| 无码一区18禁| 欧美亚洲激情| 九九热视频精品在线| 无码日韩精品91超碰| 日韩高清一区 | 国产成人亚洲欧美激情| 天天摸夜夜操| 欧美在线视频不卡第一页| 少妇极品熟妇人妻专区视频| 国产精鲁鲁网在线视频| 亚洲午夜天堂| 国产精品女熟高潮视频| 国产精品污视频| 亚洲伊人久久精品影院| 黄色三级网站免费| 精品国产成人三级在线观看| 亚洲欧洲免费视频| 亚洲高清国产拍精品26u| 91精品国产丝袜| 久久狠狠色噜噜狠狠狠狠97视色 | 欧美三级不卡在线观看视频| 91区国产福利在线观看午夜 | 亚洲不卡网| 91在线一9|永久视频在线| 亚洲无限乱码| 国产成人综合在线视频| 国产午夜不卡| 国产免费福利网站| 农村乱人伦一区二区| 久久免费视频6| 99久久精品视香蕉蕉| 日本亚洲成高清一区二区三区| 伊人久久久大香线蕉综合直播| AV片亚洲国产男人的天堂| 国产特一级毛片| 欧美精品在线观看视频| 色婷婷亚洲十月十月色天| 99久久精品国产精品亚洲| 国产午夜福利在线小视频| 99久久精品国产精品亚洲| 午夜激情婷婷| 欧美日韩亚洲综合在线观看| 尤物午夜福利视频| 国产三级毛片| 首页亚洲国产丝袜长腿综合| 波多野结衣国产精品| 麻豆精品视频在线原创| 久久综合色播五月男人的天堂| 在线观看视频99| 在线欧美a| 久久综合丝袜长腿丝袜| 欧美一级特黄aaaaaa在线看片| 亚洲伊人天堂|