任國英
(集寧師范學(xué)院 計算機(jī)系,內(nèi)蒙古 烏蘭察布 012000)
計算機(jī)C語言編輯程序技巧探討
任國英
(集寧師范學(xué)院 計算機(jī)系,內(nèi)蒙古 烏蘭察布 012000)
C語言作為國際上廣泛流行的計算機(jī)語言,是很多程序編寫的基礎(chǔ)語言.對于學(xué)生來說,C語言是一種比較難于學(xué)習(xí)的計算機(jī)語言,尤其是需要學(xué)生獨(dú)立編程時,一般都具有一定的難度.在本文中,筆者根據(jù)多年學(xué)習(xí)C語言的經(jīng)驗,總結(jié)了一些學(xué)習(xí)C語言以及C語言編輯程序的技巧,與大家一同探討.
C語言;計算機(jī);編輯程序;技巧
對于很多大學(xué)生來說,進(jìn)入大學(xué)之后就會接觸到C語言的學(xué)習(xí),這是一種全新的語言,與我們所學(xué)的漢語、英語同屬語言,卻是用在完全不同的領(lǐng)域的,是計算機(jī)使用的語言.使用計算機(jī)編寫程序,然后將這些程序應(yīng)用在實際工作中,可以起到很大的作用.雖然說C語言的作用很大,但是提到學(xué)習(xí)C語言,很多學(xué)生不知是該哭還是該笑?這是因為對于很多人來說,在學(xué)習(xí)C語言的初期,是非常艱難的,很多人都認(rèn)為C語言太難懂,也太難學(xué),但是一旦學(xué)進(jìn)去了,能用C語言編寫各種想要的程序了,就會覺得C語言樂趣無窮,意義非凡.
今天的C語言是經(jīng)過多年的發(fā)展而成的,隨著微型計算機(jī)的日益普及,C語言的版本也不盡相同,有各種C語言的版本.但是由于國際上沒有統(tǒng)一的標(biāo)準(zhǔn),各種C語言都會有各自的特點(diǎn),相互之間出現(xiàn)了一些不一致的地方,就使得C語言的通用性受到阻力.為了改變這種情況,就需要制定一套統(tǒng)一的國際標(biāo)準(zhǔn),來對C語言進(jìn)行規(guī)范,現(xiàn)行的C語言標(biāo)準(zhǔn)是由美國國家標(biāo)準(zhǔn)研究所(ANSI)制定的.C語言由于其實用性,在國際上廣為流行.這種計算機(jī)語言的功能也很強(qiáng),不僅可以用來寫系統(tǒng)軟件,也可以用來寫應(yīng)用軟件.現(xiàn)在是計算機(jī)技術(shù)廣泛運(yùn)用是時代,而沒有軟件支撐的計算機(jī)只是空有一副驅(qū)殼,不起任何作用,只有軟件做支撐的計算機(jī)才能為人類的學(xué)習(xí)、工作和生活創(chuàng)造價值.而很多為我們創(chuàng)造價值的軟件都是由C語言編寫的,比如有DBASEIII,PLUS,DBASEIV等.對于當(dāng)代大學(xué)生來說,學(xué)習(xí)C語言可以對計算機(jī)技術(shù)有著更為深刻的了解,也可以通過C語言編寫的程序,將一些繁重的工作變得簡單.學(xué)習(xí)C語言,為以后學(xué)習(xí)其他語言打下了良好的基礎(chǔ).比如說,有些同學(xué)在學(xué)習(xí)計算機(jī)時,對網(wǎng)絡(luò)編程語言PHP有興趣,該語言的絕大部分與C語言是相同的,也就是說,學(xué)好了C語言,想再學(xué)些該種語言可以說是輕而易舉的了,學(xué)習(xí)起來會非常輕松.
學(xué)習(xí)C語言其實并不是那么的難,編輯程序只是一個水到渠成的過程.學(xué)習(xí)過C語言的人都知道,C語言大致可以分為幾塊,分別是:(1)語言的運(yùn)算符與運(yùn)算順序;(2)C語言的三種基本程序結(jié)構(gòu),順序、選擇、循環(huán);(3)數(shù)組;(4)函數(shù);(5)指針:(6)結(jié)構(gòu)體與共用體;(7)文件.在本文中,將對這些內(nèi)容做簡要介紹,對于學(xué)習(xí)C語言首先搞清楚這些基礎(chǔ)知識是非常必要的.
2.1 C語言的運(yùn)算符與運(yùn)算順序.C語言運(yùn)算符和運(yùn)算順序是學(xué)習(xí)C語言的基礎(chǔ).C語言的運(yùn)算與其他運(yùn)算有相似之處,也有自身獨(dú)特的地方,C語言運(yùn)算非常靈活,組合起來運(yùn)用功能也十分豐富.與其他程序語言相比,運(yùn)算種類要多得多.當(dāng)一個運(yùn)算表達(dá)式中出現(xiàn)多種運(yùn)算時,在組合起來的運(yùn)算表達(dá)式中,就會涉及運(yùn)算的優(yōu)先順序和結(jié)合規(guī)則
2.2 C語言的三種基本程序結(jié)構(gòu).C語言的三種基本程序結(jié)構(gòu)是C語言程序?qū)W習(xí)所必須掌握的程序結(jié)構(gòu),分別是從第一程序語句到最后一條的完成都是按照順序執(zhí)行的順序結(jié)構(gòu)、和在執(zhí)行程序過程中,能夠根據(jù)程序編寫員的輸入去完成不同任務(wù)的選擇結(jié)構(gòu)和需要重復(fù)不斷執(zhí)行相關(guān)的任務(wù)直到滿足條件或者不滿足的選擇結(jié)構(gòu).
2.3 數(shù)組.數(shù)組是一組數(shù)據(jù)的有序結(jié)合,在C語言的編寫工程中都需要處理一些具有共同性質(zhì)的數(shù)據(jù).根據(jù)數(shù)組的維數(shù)的不同,可以把數(shù)組分為一維數(shù)組和多維數(shù)組,其中多為數(shù)組包括二維數(shù)組、三維數(shù)組甚至更多維數(shù)的數(shù)組.在C語言的編程過程中,對于數(shù)組的引用,能夠為一些命令提供更加方便的編程環(huán)境.
2.4 函數(shù).函數(shù)是C語言的主要組成部分,是C源程序的基本模塊,每個函數(shù)都具有相對獨(dú)立的單一功能,通過函數(shù)模塊的調(diào)用實現(xiàn)特定的功能.在C語言編程的過程中,引入函數(shù)主要是為了解決代碼重復(fù)和滿足結(jié)構(gòu)化、模塊化編程的需要.根據(jù)不同的方法,函數(shù)可以分為不同的種類.從使用角度來看,可以分為用戶函數(shù)和系統(tǒng)函數(shù);從定義上可以分為有返回值的函數(shù)和無返回值的函數(shù);從函數(shù)的作用范圍來分,可以分為內(nèi)部函數(shù)和外部函數(shù).
2.5 指針.在C語言的編寫過程中,指針是被廣泛應(yīng)用的一種數(shù)據(jù)類型,是C語言的精華.運(yùn)用指針進(jìn)行編程是C語言的主要特征之一,利用指針變量可以表示各種數(shù)據(jù)結(jié)構(gòu),從而方便了字符串和數(shù)組的使用.此外指針變量還能像匯編語言一樣處理內(nèi)存地址,從而變出精煉而高效的程序.指針本質(zhì)上就是變量的地址,它的存在能夠極大的豐富C語言的功能.
2.6 結(jié)構(gòu)體與共用體.結(jié)構(gòu)體與共用體是程序中經(jīng)常使用的數(shù)據(jù)類型,用以描述實際問題中具有多個不同數(shù)據(jù)成員的一類實體.每一個數(shù)據(jù)項就是一個實體,把所有的數(shù)據(jù)項結(jié)合在一起就形成了一個特定的單元,即結(jié)構(gòu)體.結(jié)構(gòu)體主要為每個數(shù)據(jù)成員都分配相應(yīng)內(nèi)存空間,而共同體則是所有成員同時共用一定的內(nèi)存空間.對于結(jié)構(gòu)體和共同體在C語言編程中的引入,能夠?qū)⒁恍┗镜臄?shù)據(jù)類型和數(shù)組類型輕松的形成一個整體.
2.7 文件.文件是一組相關(guān)數(shù)據(jù)的有序結(jié)合.它通常是依附在外部介質(zhì)上的,只有使用過程中才調(diào)入內(nèi)存中來.從用戶的角度來看,文件可分為設(shè)備文件和普通文件;按存儲形式來分,文件又可以分為二進(jìn)制碼文件和ASCII碼文件兩種;按照操作系統(tǒng)對磁盤文件的讀/寫方式,文件可以分為非緩沖文件系統(tǒng)和緩沖文件系統(tǒng).
對于很多人來說,學(xué)習(xí)C語言更像是一個體力活.因為如果要將C語言寫好,要能寫出很好的程序,那么,就必須多實踐,也就是說多上機(jī),只有在計算機(jī)能運(yùn)行出來的程序才是正確的程序.即使在練習(xí)本上寫了成千上萬的程序,也很難發(fā)現(xiàn)其中的漏洞.只有經(jīng)過計算機(jī)檢驗無誤的程序,才是可以運(yùn)行的、有效的程序.所以說,學(xué)習(xí)C語言的過程就是上機(jī)的過程,在計算機(jī)上不算的寫程序,將學(xué)到的知識運(yùn)用到其中.久而久之,熟能生巧,編輯程序的技巧在長期的練習(xí)中就給總結(jié)出來了.經(jīng)過筆者多年學(xué)習(xí)C語言,用C語言編輯程序的經(jīng)驗,筆者總結(jié)了一下幾點(diǎn)編輯程序的技巧.
3.1 注重示例程序.我們無論學(xué)習(xí)什么,都是從接觸示例開始的,我們學(xué)習(xí)新的知識,需要通過示例展示出來,然后通過對示例的模仿,漸漸形成屬于自己的思考模式.數(shù)據(jù)結(jié)構(gòu)是在編輯程序時,會經(jīng)常用到的.當(dāng)需要編輯相關(guān)程序時,那么就需要對每種數(shù)據(jù)結(jié)構(gòu)的第一個算法的源程序有所了解,這是運(yùn)用數(shù)據(jù)結(jié)構(gòu)編輯程序的基礎(chǔ).當(dāng)然,熟練的運(yùn)用是基于對數(shù)據(jù)結(jié)構(gòu)有著透徹的理解.在學(xué)著編輯自己想要的程序之前,首先需要的是不斷模仿的過程.通過對示例的模仿,了解程序編輯的基本步驟,針對示例程序中一些命令的相關(guān)掌握,從而形成一種編寫程序的思路,這樣就能夠在面對相關(guān)的程序編寫時,可以通過對示例程序的參考,進(jìn)而編寫出相關(guān)的執(zhí)行命令,這樣有助程序編寫的完成.
3.2 勤上機(jī)去進(jìn)行程序編寫.程序編寫不能僅僅停留在對于相關(guān)理論知識的掌握上面,紙上得來終覺淺,想要提高自己C語言的編程能力,必須做到勤上機(jī).眾所周知,C語言的等級考試,機(jī)考占有很大的比重,甚至超過了筆試的重要性.程序的編寫主要是在計算機(jī)上進(jìn)行的,因此,勤上機(jī)去進(jìn)行程序編寫才能幫助學(xué)生提高他們動手實際操作的能力.上機(jī)練習(xí)是對我們課堂上掌握的C語言基礎(chǔ)知識進(jìn)行實際的運(yùn)用,同時上機(jī)過程中,我們也能夠發(fā)現(xiàn)自己在編寫程序過程中對于哪些相關(guān)的理論基礎(chǔ)知識的掌握程度不夠牢固,然后加以改進(jìn)和鞏固,這樣對于C語言的編程能力的提高才有一個積極的效果.熟能生巧,勤上機(jī)能夠讓我們逐漸找到編寫C語言程序的感覺,在這種情況下,我們的上機(jī)操作會日漸嫻熟,這樣才是編程能力提高的一個主要標(biāo)志.
3.3 編寫程序過程中,注重綜合知識的運(yùn)用.C語言程序的編寫是需要大量的綜合知識的運(yùn)用,比如說,函數(shù)、指針、結(jié)構(gòu)體與共同體等,同時C語言程序的編寫還可能同時執(zhí)行不同的C語言的程序結(jié)構(gòu),如,順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu).在編寫程序過程中,我們應(yīng)該注重綜合知識的運(yùn)用,對這些相關(guān)的綜合知識進(jìn)行整合,然后編寫出相應(yīng)的執(zhí)行命令,這樣有助于編寫出最優(yōu)的C語言程序.此外,綜合知識的運(yùn)用也是我們將基礎(chǔ)理論知識進(jìn)行系統(tǒng)的整合能力的培養(yǎng),在編寫C語言程序過程中,就能夠提供我們基礎(chǔ)理論知識得到實踐的機(jī)會,同時這種實踐也能培養(yǎng)我們在編程中舉一反三的能力,對于我們將綜合知識合理的、科學(xué)的運(yùn)用到編程過程中有著很好的效果.因此,我們在學(xué)習(xí)C語言編程時,應(yīng)該全面掌握基礎(chǔ)理論知識,同時在上機(jī)編程中,加以綜合運(yùn)用,這樣才能幫助我們C語言編寫能力的提升.
3.4 扎實掌握相關(guān)的基礎(chǔ)知識.程序的編寫雖然是在計算機(jī)上運(yùn)行的,但是扎實的相關(guān)基礎(chǔ)理論知識是我們能否編寫出C語言程序的前提.我們再學(xué)習(xí)C語言的過程中,應(yīng)該清楚地認(rèn)識到扎實的基礎(chǔ)知識對于上機(jī)編程的重要性,比如說,三種基本程序結(jié)構(gòu)沒有掌握,那么你程序的編寫基本是無法展開的,所有的程序都是在這三種基本程序架構(gòu)上進(jìn)行展開的.在C語言的等級考試中,筆試的主要內(nèi)容就是基礎(chǔ)理論知識,因此扎實掌握相關(guān)的基礎(chǔ)知識對于我們再學(xué)習(xí)C語言進(jìn)程中有很重要的意義.上機(jī)編寫相關(guān)的C語言程序,必須要有一個清晰的思路進(jìn)行指導(dǎo),而清晰地思路就源于我們在日常學(xué)習(xí)中的基礎(chǔ)理論知識,顯而易見,扎實的基礎(chǔ)理論知識在上機(jī)編程過程中是相當(dāng)必要的.
總而言之,在當(dāng)前的信息化時代,掌握C語言對于我們?nèi)粘I畹墓ぷ鲗嵺`都有著重要的意義.我們在學(xué)習(xí)的過程中,應(yīng)該注重相應(yīng)的學(xué)習(xí)技巧,注重示例程序,勤上機(jī)去進(jìn)行程序編寫,編寫程序過程中,注重綜合知識的運(yùn)用,扎實掌握相關(guān)的基礎(chǔ)知識.只有通過我們的用心學(xué)習(xí)和對于相關(guān)的知識的掌握,才能提升我們C語言編程的能力.與此同時,在了解C語言意義的前提下,從C語言的語法結(jié)構(gòu)以及語言的運(yùn)算符與運(yùn)算順序、C語言的三種基本程序結(jié)構(gòu)(順序、選擇、循環(huán))、數(shù)組、函數(shù)、指針、結(jié)構(gòu)體與共用體、文件等方面的內(nèi)容進(jìn)行熟知,對于提升計算機(jī)C語言編輯程序技巧也具有不可替代的作用.
〔1〕嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(C 語言版)[M].北京:清華大學(xué)出版社,1997.
〔2〕陳宇文.注重源程序在《數(shù)據(jù)結(jié)構(gòu)》課程中的重要性[J].高教論壇,2004,16(1):73-75.
〔3〕歐建圣.《數(shù)據(jù)結(jié)構(gòu)》教學(xué)研究[J].武漢工程職業(yè)技術(shù)學(xué)院學(xué)報,2004,16(1):58-60.
〔4〕江靜.《數(shù)據(jù)結(jié)構(gòu)》課程綜合性實驗的實踐[J].實驗科學(xué)與技術(shù),2006,(6):64-66.
TP312
A
1673-260X(2012)01-0045-02