王艷
摘要:隨著社會(huì)信息技術(shù)不斷發(fā)展,計(jì)算機(jī)應(yīng)用人才越來(lái)越多被社會(huì)采納,它幾乎影響著每個(gè)在校大學(xué)生的發(fā)展。C語(yǔ)言是計(jì)算機(jī)專(zhuān)業(yè)比較重要的基礎(chǔ)課程,也是大一新生必修的公共基礎(chǔ)課,由此可以看出該課程的重要性。C語(yǔ)言是一門(mén)計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,但大多數(shù)人在學(xué)習(xí)過(guò)程中會(huì)遇到很多問(wèn)題,達(dá)不到所學(xué)的效果,導(dǎo)致編寫(xiě)程序過(guò)程中檢測(cè)不出校驗(yàn)結(jié)果,影響了學(xué)習(xí)情緒。為了緊跟時(shí)代的腳步,積極探索不斷改進(jìn)學(xué)習(xí)C語(yǔ)言的方法。本文針對(duì)C語(yǔ)言編程過(guò)程中存在現(xiàn)象進(jìn)行了分析,旨在找出學(xué)習(xí)C語(yǔ)言編程的策略。
關(guān)鍵詞:C語(yǔ)言;編程;學(xué)習(xí)策略
中圖分類(lèi)號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)22-0080-02
1 C語(yǔ)言產(chǎn)生的背景
計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言經(jīng)歷了從機(jī)器語(yǔ)言、匯編語(yǔ)言到高級(jí)語(yǔ)言的發(fā)展過(guò)程,機(jī)器語(yǔ)言是最原始的代碼語(yǔ)言,可以直接識(shí)別,也是第一代的計(jì)算機(jī)語(yǔ)言,隨著社會(huì)化發(fā)展變化,后來(lái)用匯編語(yǔ)言中的助記符代替操作碼來(lái)編寫(xiě)程序,但由于匯編語(yǔ)言自身特點(diǎn)也存在局限性,根據(jù)社會(huì)發(fā)展需求于是產(chǎn)生了C語(yǔ)言,C程序是經(jīng)過(guò)編譯后可以直接執(zhí)行的面向過(guò)程的高級(jí)語(yǔ)言。
C語(yǔ)言是在BCPL語(yǔ)言的基礎(chǔ)上發(fā)展起來(lái)的。70年代初,美國(guó)貝爾實(shí)驗(yàn)室根據(jù)工作需要研發(fā)出BCPL語(yǔ)言,后來(lái)在1973年,貝爾實(shí)驗(yàn)室在BCPL語(yǔ)言的基礎(chǔ)上研發(fā)出了C語(yǔ)言程序,后來(lái)經(jīng)過(guò)多次改版本,到了80年代初,美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)根據(jù)C語(yǔ)言的發(fā)展變化,制定了新的C語(yǔ)言標(biāo)準(zhǔn),一直沿用到現(xiàn)今,為大多數(shù)編程者所遵循。
2 C語(yǔ)言的特點(diǎn)及優(yōu)勢(shì)
C語(yǔ)言是國(guó)際上廣泛流行的計(jì)算機(jī)高級(jí)語(yǔ)言,現(xiàn)如今被越來(lái)越多的計(jì)算機(jī)編程人士所使用,它不僅可以用來(lái)編寫(xiě)軟件代碼,還可以用接近自然語(yǔ)言方式描述問(wèn)題,同時(shí)兼顧高低級(jí)語(yǔ)言的優(yōu)點(diǎn),主要體現(xiàn)如下方面:
1)C語(yǔ)言簡(jiǎn)便,結(jié)構(gòu)嚴(yán)謹(jǐn)、操作靈活。
2)C語(yǔ)言的運(yùn)算符較多且表達(dá)式類(lèi)型豐富,編寫(xiě)程序節(jié)約時(shí)間,工作效率高。
3)模塊化程序設(shè)計(jì)方法,可以把一個(gè)大問(wèn)題按層次分解成多個(gè)小問(wèn)題的設(shè)計(jì)思想,使編程更加靈活,算法設(shè)計(jì)自由度大。
4)C語(yǔ)言生成目標(biāo)代碼可操作性強(qiáng),程序執(zhí)行效率高。
5)C程序圖形功能較強(qiáng),程序可移植性好。
由于C語(yǔ)言這些特點(diǎn)及優(yōu)勢(shì),使它成為計(jì)算機(jī)編程者必學(xué)的程序設(shè)計(jì)語(yǔ)言。
3 C語(yǔ)言編程中常見(jiàn)的現(xiàn)象
第一,大一新生剛?cè)胄iT(mén),心理比較放松,大學(xué)的學(xué)習(xí)生活還未適應(yīng),就要開(kāi)設(shè)程序設(shè)計(jì)語(yǔ)言課程,對(duì)于他們來(lái)說(shuō)不知從何學(xué)起,心里沒(méi)底。上機(jī)實(shí)踐課時(shí),C語(yǔ)言編程語(yǔ)法較嚴(yán)格,出現(xiàn)錯(cuò)誤就不能運(yùn)行出結(jié)果,導(dǎo)致學(xué)生在學(xué)習(xí)過(guò)程中慢慢失去信心和成就感,學(xué)習(xí)興趣和熱情不高。
第二,C語(yǔ)言的算法和結(jié)構(gòu)有點(diǎn)復(fù)雜,理論的東西很難記住,聽(tīng)起來(lái)感覺(jué)很枯燥無(wú)味,不容易理解。
第三,課時(shí)安排不夠合理,致使教師在每節(jié)課講授內(nèi)容必須保證進(jìn)度,這樣就給學(xué)生無(wú)形中增加了壓力。特別是在剛開(kāi)始學(xué)習(xí)時(shí),學(xué)生興趣都非常高,對(duì)程序設(shè)計(jì)課比較好奇感興趣,但在后來(lái)的學(xué)習(xí)過(guò)程中,面對(duì)每節(jié)課大量的枯燥代碼和編程理論及語(yǔ)法規(guī)則的限制,慢慢跟得有些吃力,往往是前面的內(nèi)容還沒(méi)有消化完,后面又開(kāi)始新的內(nèi)容,時(shí)間長(zhǎng)了就會(huì)讓學(xué)生產(chǎn)生消極心理,產(chǎn)生厭煩情緒,另外學(xué)習(xí)方法不對(duì),也會(huì)導(dǎo)致學(xué)生缺少學(xué)習(xí)興趣。
4 C語(yǔ)言編程的學(xué)習(xí)策略
4.1 熟悉程序開(kāi)發(fā)環(huán)境
C語(yǔ)言程序編寫(xiě)一般經(jīng)過(guò)程序編輯、程序編譯、程序連接到程序運(yùn)行結(jié)果檢測(cè)這幾個(gè)步驟來(lái)實(shí)現(xiàn),建議在Visual C++編程平臺(tái)(也可選擇其他平臺(tái))進(jìn)行實(shí)驗(yàn),好快速掌握C語(yǔ)言編程環(huán)境,熟悉程序代碼的調(diào)試過(guò)程, 為接下來(lái)的學(xué)習(xí)編程操作打下良好的基礎(chǔ)。
4.2 掌握C語(yǔ)言語(yǔ)法規(guī)則,養(yǎng)成良好的編程習(xí)慣
學(xué)習(xí)C語(yǔ)言基礎(chǔ)就是要學(xué)習(xí)它的語(yǔ)法規(guī)則,學(xué)習(xí)某種語(yǔ)句或命令。首先要了解它的規(guī)則是什么,作用是什么,怎么實(shí)現(xiàn)等,這樣可以為后面的學(xué)習(xí)打下堅(jiān)固的堡壘作用。比如什么是常量、函數(shù)定義的格式及其意義是什么,使用什么樣的語(yǔ)句去運(yùn)用它,這樣想明白了編起程序來(lái)才能得心用應(yīng)手。那么在編程中除了要掌握好語(yǔ)法規(guī)則外,還應(yīng)培養(yǎng)較好的編程習(xí)慣,這樣可以提高工作效率,減少代碼出錯(cuò)的機(jī)會(huì)。
4.3 精通算法技巧
學(xué)習(xí)編程就是要學(xué)習(xí)它的思維方法,畫(huà)流程圖就是在構(gòu)建寫(xiě)程序思路的過(guò)程。當(dāng)畫(huà)好一個(gè)流程圖時(shí)編程思想也就出來(lái)了,再結(jié)合掌握的語(yǔ)法規(guī)則,在計(jì)算機(jī)環(huán)境下調(diào)試就可以出來(lái)了。程序=數(shù)據(jù)結(jié)構(gòu)+算法,算法就是解題思路與步驟,掌握分析問(wèn)題、解決問(wèn)題的方法,就是鍛煉分析、分解,最終歸納整理出算法的能力。計(jì)算機(jī)語(yǔ)言是表達(dá)方式,算法和數(shù)據(jù)結(jié)構(gòu)才是靈魂。算法可以用自然語(yǔ)言或流程圖來(lái)表示,在使用流程圖時(shí),應(yīng)掌握一些流程符號(hào),即用一些圖框來(lái)表示各種操作,直觀形象,易于理解,從而達(dá)到根據(jù)算法流程圖來(lái)完成程序的輸寫(xiě)。
4.4 掌握四種結(jié)構(gòu)
C語(yǔ)言學(xué)習(xí)中掌握四種結(jié)構(gòu)即順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和模塊化程序結(jié)構(gòu)非常關(guān)鍵,因?yàn)檫@種這四種結(jié)構(gòu)決定了C語(yǔ)言代碼的執(zhí)行過(guò)程,相當(dāng)于是算法的流程體現(xiàn),它們彼此可以互相嵌套。C語(yǔ)言對(duì)數(shù)據(jù)的處理是通過(guò)“語(yǔ)句”的執(zhí)行來(lái)實(shí)現(xiàn)的,一條語(yǔ)句完成一項(xiàng)操作(或功能),一個(gè)為實(shí)現(xiàn)特定目的的程序應(yīng)包含若干條語(yǔ)句。
在實(shí)際編寫(xiě)代碼過(guò)程中,常常將前三種結(jié)構(gòu)相互嵌套調(diào)用,以此設(shè)計(jì)出相應(yīng)的算法來(lái)解決工作中遇到的問(wèn)題。如果是設(shè)計(jì)大型項(xiàng)目的話,編寫(xiě)出的程序往往需要完成的功能較多,數(shù)據(jù)結(jié)構(gòu)較復(fù)雜,長(zhǎng)篇符的代碼并不利用管理和維護(hù),為了解決這種狀況,如果采用C模塊化程序設(shè)計(jì)思路就方便較多。
C模塊化程序設(shè)計(jì)采用自頂向下逐步求精的設(shè)計(jì)結(jié)構(gòu),將一個(gè)大問(wèn)題按層次分解成多個(gè)小問(wèn)題的設(shè)計(jì)思路。一般由主控函數(shù)和子函數(shù)組成,即指將一個(gè)很大的代碼段劃分為一系列功能獨(dú)立的小代碼段部分,每個(gè)代碼段完成一個(gè)指定的功能,那么將這些代碼段合在一起就是一個(gè)完整的功能模塊。其中每個(gè)代碼段實(shí)質(zhì)就是一個(gè)具體的獨(dú)立子函數(shù),函數(shù)與函數(shù)間可以相互調(diào)用,但不能相互嵌套,通過(guò)主控函數(shù)可以調(diào)用子函數(shù)(子函數(shù)不能調(diào)用主控函數(shù))可以將各個(gè)函數(shù)模塊聚合為一個(gè)整體完成相應(yīng)的功能。因而,定義函數(shù)、定義函數(shù)名(函數(shù)名表示功能)、函數(shù)調(diào)用和返回值等就很關(guān)鍵和重要,初學(xué)的人要通過(guò)不斷地上機(jī)實(shí)踐才能掌握編程的流程和精髓。
4.5 熟知函數(shù)定義
函數(shù)就是完成相對(duì)獨(dú)立功能的程序段,它具有獨(dú)立性,代碼適中,分析問(wèn)題層次清楚等特性。函數(shù)由函數(shù)說(shuō)明和函數(shù)體兩部分構(gòu)成,函數(shù)說(shuō)明包括函數(shù)值類(lèi)型、函數(shù)名、參數(shù)類(lèi)型及參數(shù)說(shuō)明;函數(shù)說(shuō)明之后的花括號(hào)“{}”部分為函數(shù)體,里面由C語(yǔ)句構(gòu)成。函數(shù)調(diào)用時(shí),實(shí)參與形參應(yīng)保持個(gè)數(shù)、次序及類(lèi)型的一致性,以確保實(shí)參與形參之間數(shù)據(jù)的正確傳遞,為提高編程效率打下良好的奠定基礎(chǔ)。
4.6 具備數(shù)學(xué)知識(shí)
編程是人把要表達(dá)的思想,通過(guò)計(jì)算機(jī)語(yǔ)言表達(dá)出來(lái) 所以最重要的就是數(shù)學(xué)邏輯思維。在C語(yǔ)言學(xué)習(xí)過(guò)程中,較好的邏輯思維可以比較容易學(xué)習(xí)C語(yǔ)言編程分析,選擇更簡(jiǎn)捷的運(yùn)算流程,C的核心語(yǔ)法并不要求很高的數(shù)學(xué)知識(shí),高中階段接觸到的概念性的知識(shí)就足以應(yīng)付。因而,數(shù)學(xué)知識(shí)對(duì)學(xué)習(xí)C語(yǔ)言重要性還是比較大。
4.7 會(huì)調(diào)用C語(yǔ)言庫(kù)函數(shù)
庫(kù)函數(shù)就是把函數(shù)放到庫(kù)里,是別人把一些常用到的函數(shù)編完放到一個(gè)文件里,供程序員使用,程序員用的時(shí)候把它所在的文件名用#include<>指令加到里面就可以了(尖括號(hào)內(nèi)填寫(xiě)文件名),例如#include
4.8 指針在C語(yǔ)言中的靈活運(yùn)用
指針是C語(yǔ)言的一種數(shù)據(jù)類(lèi)型,是指向變量和對(duì)象的地址,是C語(yǔ)言學(xué)習(xí)的重點(diǎn)內(nèi)容。 指針的用途非常廣泛,假設(shè)想通過(guò)函數(shù)改變一個(gè)變量的值,就得用指針而不能用值傳遞,特別是對(duì)象的數(shù)據(jù)量非常大,往往編程人員就會(huì)用指針來(lái)做形參,只需要傳遞一個(gè)地址就可以,大大提高了工作效率。另外,指針變量可以訪問(wèn)內(nèi)存地址,也可以訪問(wèn)數(shù)組和字符串,使編寫(xiě)的C程序代碼更簡(jiǎn)潔,效率高。指針的學(xué)習(xí)在C語(yǔ)言中是關(guān)鍵的內(nèi)容,也是學(xué)好C的精髓所在,為了高質(zhì)量地完成程序的編寫(xiě),就需要掌握指針在C語(yǔ)言中的靈活運(yùn)用,那就要能通過(guò)上機(jī)反復(fù)地調(diào)試代碼,從實(shí)踐中總結(jié)問(wèn)題,完成指針的學(xué)習(xí)。
4.9 讀代碼和程序
C語(yǔ)言編程不只是理論性的知識(shí),它還要求上機(jī)動(dòng)手操作能力更強(qiáng)一些。每次C語(yǔ)言課的學(xué)習(xí),只有通過(guò)上機(jī)輸入大量代碼的練習(xí),才能發(fā)現(xiàn)錯(cuò)誤代碼段,分析解決存在的問(wèn)題,不斷總結(jié)經(jīng)驗(yàn),鞏固課堂上老師所講的內(nèi)容。C語(yǔ)言編程不是單純靠理論記憶就能學(xué)好的,它需要大量的上機(jī)實(shí)驗(yàn)來(lái)鞏固,才能加深知識(shí)的消化理解,開(kāi)拓編程思維,提高解決問(wèn)題的能力,培養(yǎng)良好的編程態(tài)度。
讀程序和分析他人寫(xiě)的代碼也是學(xué)習(xí)C語(yǔ)言較好的途徑,仔細(xì)研讀程序時(shí),注意分析別人是如何運(yùn)用編程技巧的,研究它的實(shí)現(xiàn)方法和程序設(shè)計(jì)技巧,提高自己的程序設(shè)計(jì)能力,直到每一行都理解了,然后找?guī)讉€(gè)題目編寫(xiě),自己試圖寫(xiě)出程序,反復(fù)實(shí)踐,這樣就能從錯(cuò)誤中分析代碼出錯(cuò)的原因,進(jìn)行調(diào)試正確的代碼段,不斷積累經(jīng)驗(yàn),反反復(fù)復(fù)直到搞懂為止。時(shí)間久了,慢慢就對(duì)程序的掌握有一個(gè)比較清晰的過(guò)程。
4.10 借助網(wǎng)絡(luò)資源
C語(yǔ)言的學(xué)習(xí)在課堂上的知識(shí)還是有限的,如果想獲取更多的知識(shí),可以借助網(wǎng)絡(luò)平臺(tái)來(lái)完成資料的補(bǔ)充。一方面可以在教學(xué)網(wǎng)站上得到相關(guān)的學(xué)習(xí)內(nèi)容;另一方面可以登錄相關(guān)論壇或C語(yǔ)言專(zhuān)題微信群參與討論,獲取學(xué)習(xí)經(jīng)驗(yàn),探討編程技巧,這樣對(duì)于學(xué)習(xí)者來(lái)說(shuō)都非常便利。
5 結(jié)束語(yǔ)
C語(yǔ)言是計(jì)算機(jī)編程語(yǔ)言中應(yīng)用最流行的一種高級(jí)語(yǔ)言,在C語(yǔ)言學(xué)習(xí)過(guò)程中,本文針對(duì)C語(yǔ)言特點(diǎn)、出現(xiàn)的現(xiàn)象和學(xué)習(xí)策略進(jìn)行了分析,只要學(xué)習(xí)者認(rèn)真領(lǐng)會(huì)C語(yǔ)言功能的強(qiáng)大,具備持之以恒的學(xué)習(xí)韌勁,一定會(huì)在實(shí)際學(xué)習(xí)中取得優(yōu)異的結(jié)果。同時(shí),C語(yǔ)言作為高校公共基礎(chǔ)課,學(xué)習(xí)好它不但能提高自己的編程能力,還對(duì)整個(gè)計(jì)算機(jī)語(yǔ)言的學(xué)習(xí)起到奠基作用,為社會(huì)培養(yǎng)綜合型人才更好的服務(wù)。
參考文獻(xiàn):
[1] 儲(chǔ)欣. C語(yǔ)言編程技巧在C語(yǔ)言學(xué)習(xí)中的應(yīng)用[J],信息與電腦,2015(9):28.
[2] 沈繼濤. 計(jì)算機(jī)C語(yǔ)言編輯程序技巧探討[J].電子技術(shù)與軟件工程,2015(24):256.