徐連杰+張建+王睿
摘 要:隨著電子計(jì)算機(jī)的迅速發(fā)展和廣泛應(yīng)用,C程序設(shè)計(jì)語言在計(jì)算機(jī)軟件開發(fā)中的作用日益顯著。C語言是目前世界上流行且使用得非常廣泛的結(jié)構(gòu)化的高級(jí)程序設(shè)計(jì)語言。C語言是1972年由貝爾實(shí)驗(yàn)室的Dennis Ritchie在B語言的基礎(chǔ)上開發(fā)出來的。最初的C語言是作為UNIX操作系統(tǒng)的開發(fā)語言而被人們認(rèn)識(shí),它以最簡(jiǎn)易的方式編譯、使用低級(jí)處理存儲(chǔ)器以及進(jìn)行少量的代碼編寫;而且其也是在任何環(huán)境下都能運(yùn)行的通用計(jì)算機(jī)編程語言。本文從C程序的設(shè)計(jì)入手,簡(jiǎn)單介紹C語言的函數(shù)用法。
關(guān)鍵詞:C語言;C++;函數(shù)
1 C程序的設(shè)計(jì)過程
1.1 程序設(shè)計(jì)
C語言是適合于面向過程的程序設(shè)計(jì),主要設(shè)計(jì)思路是自頂向下、逐步細(xì)化;規(guī)劃好程序的設(shè)計(jì)方法,由順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)三種基本結(jié)構(gòu)進(jìn)行描述。
1.2 程序編寫
用C語言代碼表示算法的過程就是C程序的編寫過程。編寫好源程序后輸入到計(jì)算機(jī)中,生成源代碼程序文件。當(dāng)C程序的算法簡(jiǎn)單時(shí),可以編寫一個(gè)由主函數(shù)構(gòu)成的簡(jiǎn)單程序;當(dāng)C程序的算法復(fù)雜時(shí),可以編寫一個(gè)由主函數(shù)及若干子函數(shù)構(gòu)成的程序。因此,函數(shù)是C程序的基本組成單位。
下面是一個(gè)簡(jiǎn)單C語言程序:
#include
Main()
{
Printf(“Hello,everyone!\n”);
}
該程序是由一個(gè)主函數(shù)組成的簡(jiǎn)單算法,其運(yùn)行的結(jié)果是Hello,everyone!基本所有的C程序都基于最簡(jiǎn)單的程序,然后不斷添加子函數(shù),使用各種函數(shù)功能而實(shí)現(xiàn)。
1.3 上機(jī)實(shí)現(xiàn)
C程序的上機(jī)實(shí)現(xiàn)過程就是編譯、調(diào)試和運(yùn)行過程,從而可以實(shí)現(xiàn)上機(jī)操作。
1.4 C程序結(jié)構(gòu)特點(diǎn)
C語言程序整體是由一個(gè)或多個(gè)稱為函數(shù)的模塊構(gòu)成的。每個(gè)函數(shù)都具有對(duì)應(yīng)的功能,函數(shù)之間存在著相對(duì)明顯的界面,從而使程序具有清晰的模塊結(jié)構(gòu)。正因?yàn)镃語言程序的結(jié)構(gòu)特點(diǎn),提高了軟件開發(fā)的效率,改善了軟件質(zhì)量。這也從整體上體現(xiàn)了C語言的普遍性及實(shí)用性。
2 C語言中函數(shù)的介紹及使用
2.1 函數(shù)的定義
函數(shù)的定義就是編寫完成函數(shù)功能的模塊。通常C函數(shù)由一個(gè)主函數(shù)和若干子函數(shù)組成,而主函數(shù)是程序執(zhí)行的起始點(diǎn),用于調(diào)用其他子函數(shù);子函數(shù)還可以調(diào)用別的子函數(shù),通過調(diào)用關(guān)系可以實(shí)現(xiàn)復(fù)雜的C程序。我們所使用的函數(shù)包括兩種,即標(biāo)準(zhǔn)庫函數(shù)和用戶自定義函數(shù)。標(biāo)準(zhǔn)庫函數(shù)是C系統(tǒng)定義好的放在標(biāo)準(zhǔn)庫中以直接供用戶使用的函數(shù);用戶自定義函數(shù)是專門用于解決自己的問題所編寫的。函數(shù)的定義格式一般如下:
類型名 {函數(shù)名(形參列表)
(定義變量
語句序列)}
從格式可以看出,函數(shù)的定義主要由函數(shù)名和用大括號(hào){}包圍的函數(shù)體兩部分構(gòu)成。函數(shù)名的小括號(hào)()中無論有無參數(shù),都不能省略。當(dāng)函數(shù)帶有多個(gè)形式參數(shù)時(shí),圓括號(hào)中的形式參數(shù)要用逗號(hào)相隔,并在大括號(hào)前說明它的數(shù)據(jù)類型。
2.2 函數(shù)的說明和調(diào)用
在一個(gè)函數(shù)中需要調(diào)用另一個(gè)函數(shù)時(shí),程序控制就從調(diào)用函數(shù)轉(zhuǎn)到被調(diào)函數(shù)中去,并且從被調(diào)用的函數(shù)體起始位置開始執(zhí)行該函數(shù)的語句。在執(zhí)行完后,或者遇到return語句時(shí),程序就控制返回調(diào)用函數(shù)原來的斷點(diǎn)繼續(xù)執(zhí)行。一般在調(diào)用一個(gè)函數(shù)時(shí),需要說明該函數(shù)的存儲(chǔ)類型和數(shù)據(jù)類型,這稱為函數(shù)的說明。函數(shù)的說明存在于程序的說明部分,它既可以在函數(shù)的內(nèi)部,也可以存在于函數(shù)的外部說明部分。C語言規(guī)定,如果一個(gè)調(diào)用函數(shù)發(fā)生在該函數(shù)的定義之前,則在調(diào)用前必須對(duì)該函數(shù)說明。目前函數(shù)說明格式兩種,一是存儲(chǔ)類型,數(shù)據(jù)類型,函數(shù)名(形式參數(shù)數(shù)據(jù)類型及參數(shù)名);二是存儲(chǔ)類型,數(shù)據(jù)類型,函數(shù)名(形式參數(shù)數(shù)據(jù)類型)。
下面來分析一下函數(shù)在調(diào)用時(shí)常見的問題,如參數(shù)的使用。在調(diào)用一個(gè)函數(shù)時(shí),必須使用有實(shí)際值的量作函數(shù)的參數(shù),稱之為函數(shù)的實(shí)參。實(shí)參數(shù)的個(gè)數(shù)和順序必須與函數(shù)定義中形式參數(shù)保持一致;此外,數(shù)據(jù)類型必須與相應(yīng)的形式參數(shù)保持一致??傮w來說,在程序調(diào)用執(zhí)行中,隨著程序控制作用的轉(zhuǎn)移,實(shí)參數(shù)的值被賦予了相應(yīng)的形式參數(shù),而參數(shù)的值可以看作是對(duì)參數(shù)初始化的初值。
2.3 函數(shù)的應(yīng)用舉例
函數(shù)的應(yīng)用大而廣之,在本文中無法對(duì)函數(shù)的各種功能進(jìn)行一一說明。只能簡(jiǎn)單地介紹一下函數(shù)的使用和引導(dǎo)。因此,下面簡(jiǎn)單列舉一個(gè)例子進(jìn)行分析,以更加真實(shí)地感受一下函數(shù)的強(qiáng)大功能。例如,數(shù)組在函數(shù)間的傳遞。
數(shù)組是由多個(gè)數(shù)據(jù)組成的集合體,在C語言程序中經(jīng)常需要把數(shù)組的數(shù)據(jù)傳遞到函數(shù)中進(jìn)行處理。我們常采用地址傳送方式進(jìn)行處理,把數(shù)組的存儲(chǔ)首地址作為實(shí)參調(diào)用函數(shù);在被調(diào)用的函數(shù)中,以指針變量作為形式參數(shù)接收數(shù)組的首地址;當(dāng)該指針被賦予數(shù)組的首地址后,就指向了數(shù)組的存儲(chǔ)空間。下面以求數(shù)組的平均值的函數(shù)具體說明。
Float mean(int *data,int num)
{
Int I;
float avg;
for(avg=0,i=0;i avg+=*data; avg/=num; return(avg); } 該函數(shù)是求數(shù)組中所有數(shù)據(jù)的平均值,體現(xiàn)了處理數(shù)組的函數(shù)的特性。其中最重要的就是處理數(shù)組的函數(shù)的形式參數(shù)必須有接收數(shù)組地址的指針。如上面data形式參數(shù)。此外,還經(jīng)常有一個(gè)形式參數(shù)用于接收數(shù)組的大小,如num。在上面的main函數(shù)中,指針data接收數(shù)組地址后,就指向了數(shù)組的存儲(chǔ)空間;在程序中使用for循環(huán),通過指針data的變化逐次訪問數(shù)組的各個(gè)元素,并把元素的值累加;變量num控制循環(huán)次數(shù);全部累加元素和除以數(shù)據(jù)個(gè)數(shù)num就得到了平均值。 在最近20年里,C語言已經(jīng)成為一種最重要的、最流行的程序設(shè)計(jì)語言。不管是在哪種編程軟件中,都是一種不可或缺的編程語言。C語言的簡(jiǎn)單性和易使用性讓編程者能夠更快、更好地使用;C語言是一種融入控制功能的新式語言,它的設(shè)計(jì)使得用戶自然而然地去采用自頂而下的、結(jié)構(gòu)化的設(shè)計(jì)原則;C語言程序中所包含的各種函數(shù)更是極大地方便了用戶,能夠快速地利用編程實(shí)現(xiàn)復(fù)雜的算法;C語言的效率很高,能夠充分地發(fā)揮當(dāng)代計(jì)算機(jī)各方面的效能。 參考文獻(xiàn): [1] 張?zhí)壹t,彭珍,楊炳儒,謝永紅.“C程序設(shè)計(jì)”課程的KM教學(xué)法研究[J].計(jì)算機(jī)教育,2010(02):113-115+101. [2] 楊俊生,張潤.基于計(jì)算思維的“C程序設(shè)計(jì)”案例設(shè)計(jì)初探[J].工業(yè)和信息化教育,2013(06):65-69+64. [3] 孫玲. C程序邏輯思維訓(xùn)練支持系統(tǒng)構(gòu)建與應(yīng)用[D].山西師范大學(xué),2014:105-107.