1. 程式人生 > >初學函式的心得體會

初學函式的心得體會

一:關於函式學到的知識:

1:函式的定義:函式由函式首部和函式操作描述組成。函式首部是函式介面,函式操作描述有函式體的語句序列實現。(個人認為,在主函式外定義一個新的函式來解決主函式中的複雜問題)

2;函式的呼叫:指定函式地址,提供實際引數。(個人認為,主函式裡引用自己定義的函式來解決問題)

3:函式引數的傳遞:函式定義首部的引數稱為形參,呼叫函式時使用的引數為實參。函式呼叫前形參沒有儲存空間。函式被呼叫時,系統收回形參的臨時儲存空間。函式通過形參與實參進行通訊,完成操作。這個過程稱為引數傳遞參。(包括值傳遞,指標傳遞,引用傳遞)

值傳遞:在呼叫函式時將實際引數複製一份傳遞到函式中。(形參是實參的拷貝,直接呼叫定義函式)

傳址引數:這種呼叫方式是將實參變數的地址值傳遞給形參,這是形參是指標,即讓形參的指標指向實參地址,這裡不再是將實參拷貝一個副本給形參,而是讓形參直接指向形參,這就提供了一種可以改變實參變數的值的方法。

4:全域性變數:定義在函式外部沒有被花括號括起來的變數稱為全域性變數,全域性變數的作用域是從變數定義的位置開始到檔案結束。

全域性變數可以使函式間多一種傳遞資訊的方式。若在一個程式中多個函式要對一個變數進行處理,就可以把這個變數定義為全域性變數。

過多的呼叫全域性變數,會降低程式的通用性。

全域性變數在定義時若沒有賦初值,其預設值為0

5:區域性變數:定義在函式內部的變數,只在定義他的函式裡有效。

①:區域性變數的作用域僅侷限於本函式內部,在不同的函式中變數名可以相同,但其分別代表不同的物件。互不干擾。

②:一個區域性變數和一個全域性變數是可以重名的,在相同作用域內區域性變數有效時全域性變數無效。

③:全域性變數陣列初始全部為0,區域性變數值是隨機的,要初始化初值,區域性變數受棧空間大小限制,大陣列需要注意。(區域性變數的陣列不能開很大,全域性變數隨意)

  

二: 疑難問題:

1;不理解指標引數和引用傳引數的區別,該如何運用。

2:對於這個題總是超時,能執行就是過不了。

二項式係數C(n, k)因它在組合數學中的重要性而被廣泛地研究。二項式係數可以如下遞迴的定義:

C(1, 0) = C(1, 1) = 1;
C(n, 0) = 1對於所有n > 0;
C(n, k) = C(n − 1, k − 1) + C(n − 1, k)對於所有0 < k ≤ n

給出nk,你要確定C(n, k)的奇偶性。

輸入

輸入包含多組測試資料。每組測試資料一對整數nk(0 ≤ k ≤ n < 231),佔據獨立一行。

檔案結束符(EOF)表示輸入結束。

輸出

對每組測試資料,輸出一行,包含一個0” 或一個“1”,即C(n, k)除以2的餘數。

樣例輸入

1 1

1 0

2 0

樣例輸出

1

1

0

 

三:學習感悟:

通過學習函式,可以讓我在以後的程式設計中能好好運用函式,將複雜問題分解成幾個簡單問題,而且通過運用函式還可以在程式中容易找出程式設計中的錯誤,便於找錯。

函式中作為初學者現在用的做多的也是不好想的應該就是巢狀函式和遞迴函數了,其實說簡單點巢狀函式就是把幾個自己定義的函式多次運用起來,遞迴函式就是直接呼叫本身的函式。然而在定義這些函式的時候不簡單,所以對這方面的題還不能掌握,希望在以後的學習中能更清楚的理解函式,並能熟練運用函式。