學習c語言函式這一章的心得和方法技巧

時間 2021-08-30 09:11:12

1樓:暢景彰

我個人認為函式這部分的重點給你說下哦:

1.函式的返回值型別,也就是你函式return的內容的型別,注意如果有多種結束函式途徑的話一定要有多個return,譬如說

int fun(int x)

2.函式形參的傳遞關係,有的可以改變值,有的不可以改變值,也是給你個例子:

如果主函式有變數int a=b=c=2;fun(a,&b,c);的話,那麼b和c的值會改變,而a的值不會改變,那是因為:

a並不對變數a所佔用記憶體空間的內容進行操作。

&b是把b變數的記憶體空間地址傳遞進去了,fun函式直接對b變數所在記憶體空間進行操作,所以b會改變。

至於c,你暫時不用知道,因為形參int &c表示的是一個引用,是c++裡面會涉及的,你現在用c所以暫時只要知道有這麼種方法就可以了。

3.就是注意函式中變數的存活期,這個說起來有點麻煩,你看下書上關於區域性變數和全域性變數那部分的內容吧,那個說的比較詳細。

2樓:廈門

先把基本的函式、語法弄懂,接著就是一定要多上機

編寫程式的時間佔不到很多時間,改程式最頭痛,所以要多上機

3樓:匿名使用者

先記關鍵字,搞清楚每一個語句,都代表什麼含義,注意區別當中的語句之間的差別。然後學會編一些小的程式,再多寫,多做,

c語言考試技巧

4樓:夜禮服假面

一.特點和注意事項 1、填空題

(1)上機填空題一般包含2個(或3個)空。 (2)要填空的位置用___、___、___表示。

(3)考生在考試時應刪除標識___、___、___後填入相應的符號。

特別要注意的是:只能在要填空的位置上進行修改,不要添行、刪除、合併或分解,不要改動程式行的順序,更不要自己另程式設計序。 2.改錯題

(1)上機改錯題中有2個(或3個)錯誤需要修改。

(2)試題中用「/******found******/」來提示在下一行(或下面第二行)有錯。 (3)錯誤的性質基本分為語法錯誤和邏輯錯誤,也有些試題要求把語句新增在下劃線處。

(4)特別要注意的是:只能在出錯的行上進行修 二.做題技巧

以下是對上機考試改錯題的做題方法和總結,改錯題的錯誤主要分為以下幾類:

一般情況,錯誤主要分為語法錯誤和邏輯錯誤。

先檢查語法錯誤,編譯程式後發現沒有錯誤及警告,說明沒有語法錯誤,只有邏輯錯誤;邏輯錯誤必須根據程式的功能及預期結果來考查。

因此,對於程式改錯題,應先編譯查詢其中的語法錯誤,通過編譯器的提示容易找到錯誤的地方及原因,然後再尋找邏輯錯誤。修改了語法錯誤後再次編譯,直到修改完所有的語法錯誤。而查詢邏輯錯誤時,需要執行程式根據結果來檢查。

1、if或while語句

若錯誤行是if或者while語句,則要注意以下點: 1)首先判斷是否正確書寫if或while關鍵字;

2)然後看有沒有用小括號把整個表示式括起來,若沒有則加上小括號; 3)若條件表示式中有指標變數而且沒有指標運算子時,則加上指標運算子; 4)若if條件表示式中只有一個等於號即數學等號(=),則要改寫成兩個等於號即邏輯等號(==);

若if條件表示式為其他的比較運算子,則一般是進行逆轉或加一個等於號; 2、for語句

若錯誤行是for語句,則要注意以下幾點: 1)首先判斷for有沒有書寫正確;

2)然後看for中的表示式是不是用分號(;)隔開,若不是則改為分號。 3、記住是分號(;),不是逗號(,)!

再者,分析for中的三個表示式,是否符合題意; 第一個表示式表示起始條件, 第二個表示式表示終止條件,

第三個表示式表示迴圈變數的變化。 4、return語句

若錯誤行為return語句,則要注意以下幾點: 1)首先看是不是正確書寫return關鍵字;

2)然後看是不是缺少分號,若是則加上分號即可;

3)再者判斷return後的變數或表示式是否正確;

這種錯誤需要根據題意來分析,分析返回變數或表示式的值和型別。 5、賦值語句

若錯誤行是賦值語句,則要看賦值是否正確,然後看賦值運算子是否寫正確。 6、定義語句

若錯誤行是定義語句,則要注意: 1)首先分析變數型別是否符合;

2)然後分析賦初值是否正確,求和初值賦0,求積初值賦1;

3)若以上均不是,則看是不是少定義了某個變數或少了花括號; 7、關鍵字拼寫錯誤。如:main-mian(錯誤) printf - pirntf (錯誤)

return- return(錯誤) while- while (錯誤)

8、表示式錯誤問題

表示式錯誤佔的份量最多,並且沒有統一的改法,我們只能通過題目要求來分析並修改),

1)若錯誤行中有整數1除以某個表示式或變數時,必須把整數1改為1.0;若變數或表示式是整型時,則只能進行強制型別轉換。

2)變數必須先賦值,後才參與運算,沒有賦值就不能參與運算;例如,long k;k*=num%10;

3)運算子書寫錯誤,例如,把/寫成\(num\=10);,==寫成=。 4)丟失括號() 9、字串類問題

1)若錯誤行中有字串結束符,則特別要要注意結束符有沒有寫錯(『\0』不要寫成"\0」)。

2)新組建的字串一定要加結束識別符號(『\0』); 3)要區分清楚字元『o』和數字『0』。

4)字串複製、比較必須使用用字串處理函式(strcpy或strcmp)實現,不能用賦值語句或關係運算子。 10、指標類問題

若錯誤行中有指標變數,並且該變數名之前沒有指標運算子,則般都是加上指標運算子;即注意p和*p的區別; 11、函式首部類問題:

若錯誤行是函式首部,則要注意:

1)首先看該行最後有沒有分號,若有則刪掉分號;若中間有分號則要改為逗號;

2)形參和實參型別不一致問題

① 若實參是個地址或陣列名或指標變數名,則對應的形參肯定是指標或陣列;

②若實參是二維陣列名,則對應的形參應該是指標陣列或是二維陣列; ③若後面用到形參時有指標運算子,則該形參應為指標型別;

④若形參是二維陣列或指向m 個元素的指標變數,則該二維的長度必須與main中對於陣列的第二維的長度相同。 3)函式型別不一致問題

①若函式中沒有return語句,則函式型別為void;

②若函式中有ret urn語句,則函式的型別必須與rerun後的變數型別一致;

記住,呼叫函式的型別與main中的該函式的型別一致! 12、語法錯誤問題:

1)語句缺少分號。若錯誤號中語句沒有以分號結束則加上分號;

2)變數名不一致。c語言是區分大小寫的,若錯誤行中有大寫字母一般都改為小寫字母;

3)若錯誤行中有一條橫線,則必須將橫線刪除再填空。填空題中亦是如此。 13、邏輯錯誤問題:

這種題型主要是表示式錯誤,佔的題量比較多而且沒有統一的做題方法,需要我們具體問題具體分析。對於邏輯錯誤,可按下列步驟查詢:

①先讀試題,看清題目的功能要求。

②通讀程式,看懂程式中演算法的實現方法。 ③細看程式,發現常見錯誤點。 14、書寫錯誤問題:

特別注意我們的註釋部分,註釋是以/*開始,以*/結尾,不能有多餘的,有也只能在/*和*/裡面。注意,比如「/***註釋部分*****/*/」是錯誤的!

二、程式設計時容易犯的錯誤

1.書寫識別符號時,忽略了大小寫的區別

c語言認為大些字母和小寫字母時兩個不同的字元,如在編譯程式過程中,系統會把a和認為時兩個不同的變數名。習慣上,符號常量名用大寫表示,變數名用小寫表示,以增加程式的可能性。

2.忽略了變數的型別,進行了不合法的運算

3.忽略了「=」與「= =」的區別;c語言中,「=」是賦值運算子,「= =」是關係運算子

4.忘記加分號

考生應特別注意這種情況,分號是c語言中不可缺少的一部分,語句末尾必須有分號,但有時候千萬不能加;

5.輸入變數時忘記加地址運算子「&」,而在不應加「&」的位置加了地址運算子

(1)忘記加「&」的情況。

如int a,b; scanf(「%d%d」,a,b);

此時,無法正確給a和b讀入資料。scanf函式的作用是:按照a、b在記憶體中所分配的地址將a、b的值存進去。

「&a」指a在記憶體中的地址,因此正確的書寫格式為scanf(「%d%d」,&a,&b);。

(2)多加「&」的情況。如

c語言編譯程式對陣列名的處理是:陣列名代表陣列的起始地址,scanf函式中的輸入項是字元陣列名,因此不必再加地址符&,應該去掉。

6.輸入資料的方式餘要求格式(萬用字元)不符。例如:scanf(「%d,%d」,&a,&b);

c規定:如果在「格式控制」字串中,除了格式說明以外還有其他字元,則在輸入資料時應輸入與這些字元相同的字元。下面輸入是合法的:3,4

此時不用逗號而用空格或其他字元是不對的,如:3 4(中間為空格)3:4(中間為冒號);

三、相關概念

(1)素數:定義是除了能被1和自身整除外,不存在其他任何能整除該數的自然數。因此,在判斷一個數是否為素數時,只要有除了1和本身能整除它,還有一個數能整除它,就判定此數不是素數。

(2)判斷一個年份是否為閏年:如果年份能被4 整除但是不能被100整除,或者能被400整除,這兩種情況滿足之一都是閏年。

(3)利用選擇法進行從小到大的排序。選擇法的思路為:把第一個元素與其後面的元素比較,如果比後面的大,則交換,比較完所有的元素後,第一個位置的元素是最小的元素;在把第二個元素與其後面的元素進行比較,結果是除了第一個元素外,第二個元素是最小的元素;以此類推。

(4)數的按位分離演算法是:對10取模求個位上的數字,整除10後再對10取模求十位上的數字,整除100後再對10取模求百位上的數字。

(5)最大公約數的演算法是:(1)若n>m,則用n除以m求餘數r;(2)若r=0,則m為最大公約數,若r≠0,則將r賦值於m,m賦值於n,繼續用n除以m求餘數r;(3)直到r=0,m為最大公約數。根據演算法判斷每一條語句是否正確。

(6)求最小公倍數的演算法:等於兩個數的乘積除以它們的最大公約數。 (7)矩陣時以行為外迴圈,列為內迴圈,可以同時計算周邊元素的和。

VB過程這一章關於Sub的問題

1,標準模組最的作用是資源共享,就像你經常都要用到的變數可以在模組那裡定義,而且要用public而不是用dim 2,就要看你需要什麼樣的資料型別了,int,string single,boolean.都行 3,每一個過程或者函式都要這樣的,sub 和end sub 組成一個完整的過程,當然包括你自定...

《昆蟲記》螳螂捕食這一章的讀後感悟

假面 昆蟲記 是一本非常神奇的書,生動形象地把一個個討人厭 至少我是那麼覺得 的六條腿的小傢伙們的故事記錄了下來。這本書似乎有了魔術師的魔法,把那些書本上枯燥的昆蟲知識變得無比有趣,而法布林就是那個神奇的魔術師。然而在這神奇的魔術背後,昆蟲記 是法布林一生的心血,是法布林花了40多年完成的作品。昆蟲...

有機物的這一章怎麼學啊?都理解不了

有機物其實就像積木一樣,每類 積木 都有自己的形狀顏色,即化學和物理性質,兩個不同的 積木 拼在一起就兩種 積木 的顏色和形狀都有了,而每塊積木要和別的積木拼在一起也是有要求的,就像圓球狀積木立在三角錐形的積木上就立不了一樣。所以學的時候要記住每種基團組成物質的化學性質和物理性質及可以變成的物質就好...