全國計算機考試二級《C語言》複習資料2017
- 計算機二級
- 關注:1.39W次
C語言是近年來非常流行的語言,是一個有結構化程式設計、具有變數作用域以及遞迴功能的過程式語言。以下是本站小編搜尋整理的關於全國計算機考試二級《C語言》複習資料,供參考複習,希望對大家有所幫助!想了解更多相關資訊請持續關注我們應屆畢業生考試網!
一、C語言的特點
C語言是近年來非常流行的語言,很多人寧願放棄已經熟悉的其他語言而改用C語言,}
概括起來,C語言程式具有如下的風格: ①C語言程式的函式具體模組結構風格,使得程式整體結構清晰、層次清楚,為模組化程式設計提供了強有力的支援。 ②C語言的源程式的副檔名都是.C。 其原因是C語言有優於其他語言的一系列特點。下面是C語言的`主要特點:
(1)語言簡潔、緊湊,並且使用方便、靈活;
(2)運算子豐富; (3)資料結構豐富;
(4)具有結構化的控制語句;
(5)語法限制不太嚴格,使程式設計比較自由; (6)C語言允許使用者直接訪問實體地址,能進行位(bit)操作,可以直接對硬體進行操作。
二、源程式的書寫規則
C語言的書寫規則。C語言書寫格式自由,一行內可以寫幾個語句,一個語句也可以分寫在多行上。C程式沒有行號,每個語句和資料定義的最後必須有一個分號。C語言中分號是語句中不可少的,即使是程式中的最後一個語句也應該包含分號。C語言中的註釋可以用〃/*〃用〃*/〃結束,註釋可以在任何允許插入空格符的地方插入。C語言中註釋不允許巢狀,註釋可以用西文,也可以用中文。
三、C語言的風格
由於C語言對語法限制不太嚴格,為了保證程式的準確性和可讀性,建議在書寫程式採用階梯縮排格式。也就是按如下格式書寫C語言程式: **********; *****() {
**********; ********; {
******; ...... }
*********;
③C語言中的註釋格式為:/*註釋內容*/ /與*之間不允許有空格,註釋部分允許出現在程式中的任何位置。
④C語言中的所有語句都必須以分號“;”結束
【計算機二級C語言公共基礎知識】
迴圈連結串列及其基本運算
線上性連結串列中,雖然對資料元素的插入和刪除操作比較簡單,但由於它對第一個結點和空表需要單獨處理,使得空表與非空表的處理不一致。
迴圈連結串列,即是採用另一種連結方式,它的特點如下:
(1)在迴圈連結串列中增加一個表頭結點,其資料域為任意或根據需要來設定,指標域指向線性表的第一個元素的結點。迴圈連結串列的頭指標指向表頭結點。
(2)迴圈連結串列中最後一個結點的指標域不是空的,而是指向表頭結點。在迴圈連結串列中,所有結點的指標構成一個環狀鏈。
在迴圈連結串列中,只要指出表中任何一個結點的位置,均可以從它開始掃描到所有的結點,而線性連結串列做不到,線性連結串列是一種單向的連結串列,只能按照指標的方向進行掃描。
迴圈連結串列中設定了一個表頭結點,因此,在任何時候都至少有一個結點,因此空表與非空表的運算相統一。
迴圈連結串列的特點是無須增加儲存量,僅對錶的連結方式稍作改變,即可使得表處理更加方便靈活。
【例】在連結串列上實現將兩個線性表(a1,a2,…,an)和(b1,b2,…,bm)連線成一個線性表(a1,…,an,b1,…bm)的運算。
分析:若在單鏈表或頭指標表示的單迴圈表上做這種連結操作,都需要遍歷第一個連結串列,找到結點an,然後將結點b1鏈到an的後面,其執行時間是O(n)。
若在尾指標表示的單迴圈連結串列上實現,則只需修改指標,無須遍歷,其執行時間是O(1)。
相應的演算法如下:
LinkListConnect(LinkListA,LinkListB){
//假設A,B為非空迴圈連結串列的尾指標
LinkListp=A->next;//①儲存A表的頭結點位置
A->next=B->next->next;//②B表的開始結點連結到A表尾
free(B->next);//③釋放B表的頭結點
B->next=p;//④
returnB;//返回新迴圈連結串列的尾指標
}
注意:
①迴圈連結串列中沒有NULL指標。涉及遍歷操作時,其終止條件就不再是像非迴圈連結串列那樣判別p或p->next是否為空,而是判別它們是否等於某一指定指標,如頭指標或尾指標等。
②在單鏈表中,從一已知結點出發,只能訪問到該結點及其後續結點,無法找到該結點之前的其它結點。而在單迴圈連結串列中,從任一結點出發都可訪問到表中所有結點,這一優點使某些運算在單迴圈連結串列上易於實現。
二叉樹的遍歷
二叉樹的遍歷即是不重複地訪問二叉樹的所有結點。
在遍歷二叉樹時,一般先遍歷左子樹,然後再遍歷右子樹。在先左後右的原則下,二叉樹的遍歷又可分為三種:前序遍歷、中序遍歷和後序遍歷。
1)前序遍歷
前序遍歷即先訪問根結點,然後遍歷左子樹,最後遍歷右子樹。在遍歷左子樹和遍歷右子樹時,依然是先遍歷根結點,然後是左子樹,再是右子樹。
操作的具體方式:
若二叉樹為空,則結束返回。
否則:訪問根結點前序遍歷左子樹前序遍歷右子樹
如上圖所示的完全二叉樹,它的前序遍歷結果是:A、B、D、H、P、Q、I、R、E、J、K、C、F、L、M、G、N、O
2)中序遍歷
中序遍歷,即先遍歷左子樹,然後訪問根結點,最後是遍歷右子樹。
具體的操作方式:
若二叉樹為空,則結束返回。
否則:中序遍歷左子樹訪問根結點 中序遍歷右子樹
這裡強調,在遍歷左子樹和右子樹時,仍然要採用中序遍歷的方法。
如上圖所示的完全二叉樹,它的中序遍歷結果是:P、H、Q、D、R、I、B、J、E、K、A、L、F、M、C、N、G、O
3)後序遍歷
後序遍歷,即選遍歷左子樹,然後是遍歷右子樹,最後訪問根結點。
具體的操作方式:
若二叉樹為空,則結束返回。
否則:前序遍歷左子樹前序遍歷右子樹訪問根結點
如上圖所示的完全二叉樹,它的後序遍歷結果是:P、Q、H、R、I、D、J、K、E、B、L、M、F、N、O、G、C、A
- 文章版權屬於文章作者所有,轉載請註明 https://xuezhezhai.com/zh-tw/jsj/erji/z0okz2.html