1樓:暢景彰
我個人認為函式這部分的重點給你說下哦:
1.函式的返回值型別,也就是你函式return的內容的型別,注意如果有多種結束函式途徑的話一定要有多個return,譬如說
int fun(int x)
2.函式形參的傳遞關係,有的可以改變值,有的不可以改變值,也是給你個例子:
void fun1(int x,int *y,int &z)
如果主函式有變數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)多加“&”的情況。如int str[ ]; scanf(“%s”,&str);
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多年完成的作品。昆蟲...
C語言函式選單的問題,求乙個C語言選單函式的程式?
求長度。int length char szsrc 有乙個字串,包含n個字元。寫一函式,將此字串從第m個字元開始的全部字元複製成另乙個字串。char mid char szsrc,int n1,int n2 逆序 數字逆序要把長度也送進去。void changestr char szsrc 求乙個c...