亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        C語言教學(xué)探討

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

        摘 要: 為提高C語言教學(xué)質(zhì)量,針對C語言課程內(nèi)容和特點(diǎn),在教學(xué)中結(jié)合實(shí)際應(yīng)用激發(fā)學(xué)生的學(xué)習(xí)興趣,運(yùn)用知識點(diǎn)間聯(lián)系幫助學(xué)生建立知識體系,通過實(shí)踐訓(xùn)練提高學(xué)生編程操作能力,注重編程規(guī)范使學(xué)生養(yǎng)成良好的編程風(fēng)格,取得了較好的教學(xué)效果。

        關(guān)鍵詞: C語言; 程序設(shè)計; 教學(xué)方法; 編程規(guī)范

        中圖分類號:TP312 文獻(xiàn)標(biāo)志碼: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語言作為一種計算機(jī)程序設(shè)計語言,兼具高級語言和匯編語言的優(yōu)點(diǎn),在編寫系統(tǒng)軟件和應(yīng)用軟件方面得到了廣泛的使用。因此,通信、計算機(jī)、信息等專業(yè)往往將其作為第一門專業(yè)基礎(chǔ)課。C語言教學(xué)目標(biāo)要求學(xué)生既掌握C語言的語法、結(jié)構(gòu)、數(shù)據(jù)類型等內(nèi)容,又要掌握軟件工程思想,掌握常見算法,學(xué)會使用C語言編程解決實(shí)際問題并形成良好的編程風(fēng)格,為后續(xù)課程及未來工作打下良好基礎(chǔ)。

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

        1 提高學(xué)生學(xué)習(xí)興趣

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

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

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

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

        2 運(yùn)用聯(lián)系法,幫助學(xué)生建立知識體系框架

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

        ⑴ 數(shù)據(jù)類型

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

        再聯(lián)系到現(xiàn)實(shí)中的例子,講解變量和指針變量的含義和定義,進(jìn)而講解指針變量不僅可以存放普通變量的地址和數(shù)組元素的地址,還可以存放結(jié)構(gòu)體數(shù)組變量的地址和結(jié)構(gòu)體數(shù)組元素的地址。

        ⑵ 算法和結(jié)構(gòu)化程序設(shè)計

        編制程序的過程就是形成算法、實(shí)現(xiàn)算法到結(jié)構(gòu)化代碼轉(zhuǎn)化的過程。

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

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

        ⑶ 函數(shù)部分

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

        為講解函數(shù)的一些重要概念,可從現(xiàn)實(shí)生活中學(xué)生比較熟悉的數(shù)學(xué)中的函數(shù)概念入手,幫助學(xué)生理解函數(shù)名、函數(shù)定義和函數(shù)調(diào)用,理解函數(shù)的形參和實(shí)參,函數(shù)的返回值等概念,并結(jié)合已有的程序?qū)⑦@些知識點(diǎn)遷移到C語言中。

        在C語言中,函數(shù)的實(shí)參可以是值或地址,這個知識點(diǎn)至關(guān)重要,兩者區(qū)別如下:①當(dāng)函數(shù)的實(shí)參為地址時,被調(diào)用時傳遞給形參(指針變量),若被調(diào)用函數(shù)中對形參所指向的內(nèi)容進(jìn)行了修改,其實(shí)質(zhì)就是修改調(diào)用函數(shù)中的實(shí)參所指向的內(nèi)容,即修改的結(jié)果能帶回來;②其他情況,如函數(shù)的實(shí)參雖為地址,但被調(diào)用函數(shù)中是對形參(指針變量)進(jìn)行修改,或者函數(shù)的實(shí)參為數(shù)值,其修改的結(jié)果都是不能帶回的。上述參數(shù)中的地址,可從變量的地址推廣至數(shù)組元素的地址、數(shù)組名、指針變量、結(jié)構(gòu)體變量地址和結(jié)構(gòu)體數(shù)組名。

        ⑷ 文件

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

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

        ⑸ 其他方面

        如位操作、預(yù)處理等也要講解,此部分內(nèi)容相對簡單,由于篇幅關(guān)系,不再進(jìn)行探討。

        3 理論聯(lián)系實(shí)踐,注重提高學(xué)生上機(jī)實(shí)踐操作能力

        C語言是一門實(shí)踐性極強(qiáng)的課程,要讓學(xué)生真正學(xué)會C語言,必須讓他們經(jīng)過大量的實(shí)踐和編程訓(xùn)練,在實(shí)踐中提高技能。我們把實(shí)踐部分分為三大塊。

        ⑴ 課內(nèi)實(shí)驗

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

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

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

        ⑵ 課外上機(jī)訓(xùn)練

        課外上機(jī)訓(xùn)練,我們布置10道代表性強(qiáng)、綜合性高、實(shí)用性好的題目,讓學(xué)生利用課外時間,進(jìn)行編程和調(diào)試,并提交程序和報告使學(xué)生的能力得到進(jìn)一步提高。

        ⑶ 課程設(shè)計(1周時間)

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

        4 注重編程規(guī)范化訓(xùn)練,養(yǎng)成良好的編程風(fēng)格

        在C語言的教學(xué)中,還應(yīng)從軟件工程的角度,按照企業(yè)對程序員的要求,注重編程規(guī)范的訓(xùn)練,養(yǎng)成良好的編程風(fēng)格[6]。

        ⑴ 注意程序書寫格式

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

        ⑵ 提高對內(nèi)存使用管理方面的意識

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

        ⑶ 注重程序的出錯處理

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

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

        文檔是計算機(jī)軟件產(chǎn)品的重要組成部分,應(yīng)該適時的讓學(xué)生初步形成重視軟件文檔的意識。比如課程設(shè)計中要求學(xué)生:學(xué)習(xí)包含軟件需求分析、可行性分析、總體開發(fā)計劃、概要設(shè)計、詳細(xì)設(shè)計、系統(tǒng)測試等文檔的標(biāo)準(zhǔn)和編制規(guī)范方面的內(nèi)容。

        5 結(jié)束語

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

        參考文獻(xiàn):

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

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

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

        2010.1:90-91

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

        (24):6815-6816

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

        2011.6(11):2655-2659,2662

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

        版社,2007.

        激情视频在线观看国产中文| 国产av精选一区二区| 日韩精品成人一区二区在线观看| 白色月光免费观看完整版| 国产一区二区精品亚洲| 人妻一区二区三区在线看| 日韩内射美女片在线观看网站| 97午夜理论片影院在线播放| 人妻少妇av无码一区二区| 成人精品国产亚洲欧洲| 日本一区二区高清视频在线| 国产在线91精品观看| 成人麻豆日韩在无码视频| 国产亚洲精品aaaa片小说| 日韩AV无码一区二区三| 久久精品国产亚洲精品色婷婷| 日韩一本之道一区中文字幕| www国产亚洲精品| 国产成本人片无码免费2020| 91网站在线看| 日韩精品一区二区三区在线观看的 | 中文字幕乱码一区av久久不卡| 四房播播在线电影| 久久dvd| 日韩在线精品免费观看| 女优av一区二区在线观看| 久久伊人亚洲精品视频| 人妻丰满熟av无码区hd| 精品国产aⅴ无码一区二区| www.91久久| 国内精品少妇久久精品| 国产丝袜美腿精品91在线看| 亚洲熟女一区二区三区| 国产哟交泬泬视频在线播放| 精品少妇白浆一二三区| 中文字日产幕码三区的做法步| 久久久久免费看成人影片| 天美麻花果冻视频大全英文版| 一区二区三区中文字幕有码| 少妇又色又爽又高潮在线看| 成人午夜特黄aaaaa片男男 |