一、計算機(jī)二級C語言考試的時間安排
*計算機(jī)二級考試通常分為春季和秋季,具體日期每年有所變化。報名一般在考試前兩個月左右開始。對于C語言程序設(shè)計的考試,其大綱要求考生熟悉Visual C++6.0集成開發(fā)環(huán)境,掌握結(jié)構(gòu)化程序設(shè)計方法,并具備閱讀簡單程序的能力??荚噧?nèi)容包括C語言程序的結(jié)構(gòu)、數(shù)據(jù)類型及其運(yùn)算、基本語句、選擇結(jié)構(gòu)程序設(shè)計、循環(huán)結(jié)構(gòu)程序設(shè)計等。還包括數(shù)組的定義和引用、函數(shù)、編譯預(yù)處理、指針、結(jié)構(gòu)體與共同體、位運(yùn)算以及文件操作等內(nèi)容??荚囆问綖樯蠙C(jī)考試,時長120分鐘,滿分100分。題型包括單項選擇題和操作題(包括填空題、改錯題及編程題)。
二、安徽省計算機(jī)二級考試的時間安排與科目
計算機(jī)二級考試是*統(tǒng)一的,安徽省的考試時間與*同步。據(jù)了解,自2018年起,NCRE將實(shí)施無紙化考試,二級科目包括二級C、二級WB、二級VFP、二級JAVA、二級ACCESS以及二級C++等??荚嚟h(huán)境包括Windows 7、Visual C++2010學(xué)習(xí)版等多種軟件??忌赏ㄟ^網(wǎng)上報名或現(xiàn)場報名的方式參加考試,并可選擇網(wǎng)上繳費(fèi)或現(xiàn)場繳費(fèi)完成報名流程。
三、計算機(jī)二級C語言考試的總分及合格標(biāo)準(zhǔn)
計算機(jī)二級C語言考試分為筆試和機(jī)試兩部分,每部分滿分均為100分。考生需要筆試和機(jī)試都達(dá)到60分或以上才能通過考試。如果其中一門考試通過,成績可以保留到下一次考試。要想通過計算機(jī)二級C語言考試,考生需要全面掌握知識,多做練習(xí)題,熟悉考試流程,并注重實(shí)際操作能力。這是一些關(guān)于資料結(jié)構(gòu)與演算法的資料。
*章:資料結(jié)構(gòu)與演算法
演算法是對特定問題求解步驟的一種描述。它不等于程式,也不等于計算方法。一個好的演算法應(yīng)該具備以下特性:
1. 可行性:針對實(shí)際問題設(shè)計的演算法,執(zhí)行后應(yīng)能得到滿意的結(jié)果。
2. 確定性:每條指令的含義明確,無二義性。在任何條件下,演算法只有*的一條執(zhí)行路徑,即相同的輸入只能得出相同的輸出。
3. 有窮性:演算法必須在有限的時間內(nèi)完成。這包括兩個含義,一是演算法中的操作步驟為有限個,二是每個步驟都能在有限時間內(nèi)完成。
4. 擁有足夠的情報:演算法的運(yùn)算總是要施加到各個運(yùn)算物件上,而這些運(yùn)算物件又可能具有某種初始狀態(tài),這就是演算法執(zhí)行的起點(diǎn)或依據(jù)。一個演算法的結(jié)果與輸入的初始資料有關(guān),不同的輸入會有不同的結(jié)果。當(dāng)提供的情報足夠時,此演算法有效;當(dāng)情報不足時,可能無效。
演算法復(fù)雜度主要包括時間復(fù)雜度和空間復(fù)雜度。
資料結(jié)構(gòu)是相關(guān)資料的集合。主要研究和討論以下三個方面的問題:
1. 資料集合中元素之間的邏輯關(guān)系,即資料的邏輯結(jié)構(gòu)。包括表示資料元素的資訊和表示各資料元素之間的前后件關(guān)系。
2. 在對資料進(jìn)行處理時,各資料元素在計算機(jī)中的儲存關(guān)系,即資料的儲存結(jié)構(gòu)。儲存結(jié)構(gòu)有順序、連結(jié)、索引等。
3. 對各種資料結(jié)構(gòu)進(jìn)行的運(yùn)算。
資料結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)和非線性結(jié)構(gòu)。
線性表由一組資料元素構(gòu)成,元素之間的相對位置是線性的。線性表是一種儲存結(jié)構(gòu),其儲存方式包括順序和鏈?zhǔn)健>€性表的順序儲存結(jié)構(gòu)具有兩個基本特點(diǎn):所有元素所占的儲存空間是連續(xù)的,各資料元素在儲存空間中是按邏輯順序依次存放的。
棧是限定在一端進(jìn)行插入與刪除運(yùn)算的線性表,按照“先進(jìn)后出”或“后進(jìn)先出”的原則組織資料。棧的基本運(yùn)算包括入棧運(yùn)算、退棧運(yùn)算和讀棧頂元素。棧的儲存方式和線性表類似,也有兩種,即順序棧和鏈?zhǔn)綏!?/p>
佇列(隊列)是一種允許在一端(隊尾)進(jìn)入插入,而在另一端(隊頭)進(jìn)行刪除的線性表。佇列是“先進(jìn)先出”或“后進(jìn)后出”的線性表。佇列運(yùn)算包括入隊運(yùn)算和退隊運(yùn)算。
對于順序表的插入和刪除運(yùn)算,需要進(jìn)行元素移動。插入運(yùn)算時,需要從*一個元素開始,向前移動一定數(shù)量的元素以騰出空間;刪除運(yùn)算時,需要從下一個元素開始,向后移動一定數(shù)量的元素以填補(bǔ)空缺。這些操作都需要花費(fèi)一定的時間和計算資源。循環(huán)隊列及其運(yùn)算詳解
在數(shù)據(jù)結(jié)構(gòu)中,循環(huán)隊列是一種特殊的隊列,其特點(diǎn)在于將隊列儲存空間的*一個位置繞到*個位置,形成邏輯上的環(huán)狀空間供隊列循環(huán)使用。循環(huán)隊列有著別樣的運(yùn)作方式及運(yùn)算特性。
一、循環(huán)隊列的基本概念
循環(huán)隊列,顧名思義,是指當(dāng)隊列的尾部指針到達(dá)隊列的末尾時,會回繞到隊列的頭部并繼續(xù)添加元素。循環(huán)隊列中的元素數(shù)量始終是動態(tài)變化的,它利用了連續(xù)的內(nèi)存空間來儲存數(shù)據(jù)元素。
在循環(huán)隊列中,我們使用隊尾指標(biāo)rear指向隊列中的隊尾元素,同時使用排頭指標(biāo)front指向排頭元素的前一個位置。從front指向的下一個位置到rear指向的位置之間,所有的元素均為隊列中的有效元素。
二、循環(huán)隊列中元素的計算
循環(huán)隊列中元素的個數(shù)計算方法為:rear減去front(當(dāng)差值小于0時需加上隊列的總長度)。這樣的設(shè)計方式既簡潔又高效,既能夠確保元素順序的正確性,又能提高對數(shù)據(jù)的訪問效率。
三、線性連結(jié)串列簡述
線性表的鏈?zhǔn)絻Υ娼Y(jié)構(gòu),我們稱之為線性連結(jié)串列。它是一種物理儲存單元上非連續(xù)、非順序的儲存結(jié)構(gòu),資料元素的邏輯順序是通過連結(jié)串列中的指標(biāo)連結(jié)來實(shí)現(xiàn)的。線性連結(jié)串列分為單鏈表、雙向連結(jié)串列和回圈連結(jié)串列三種類型。
在線性連結(jié)串列中,每個結(jié)點(diǎn)都由兩部分組成:一部分用于存放資料元素的值,稱為資料域;另一部分用于存放指標(biāo),稱為指標(biāo)域,用于指向該結(jié)點(diǎn)的前一個或后一個結(jié)點(diǎn)。
四、線性連結(jié)串列的運(yùn)算
在線性連結(jié)串列中,插入與刪除的運(yùn)算相對方便。插入元素時,只需要修改相關(guān)結(jié)點(diǎn)的指標(biāo)即可,不需要移動其他元素;刪除元素時亦是如此??毡砗蛯?個結(jié)點(diǎn)的處理必須單獨(dú)考慮,這使得空表與非空表的運(yùn)算不統(tǒng)一。
五、回圈連結(jié)串列的特性與運(yùn)算
回圈連結(jié)串列在連結(jié)串列中增加了一個表頭結(jié)點(diǎn),其資料域?yàn)槿我庠O(shè)定,而指標(biāo)域則指向線性表的*個元素的結(jié)點(diǎn)。這種設(shè)計使得回圈連結(jié)串列具有獨(dú)特的優(yōu)勢:只要指出表中任何一個結(jié)點(diǎn)的位置,就可以從它出發(fā)訪問到表中其他所有的結(jié)點(diǎn)。由于設(shè)定了表頭結(jié)點(diǎn),在任何情況下,回圈連結(jié)串列中至少有一個結(jié)點(diǎn)存在,從而使空表與非空表的運(yùn)算統(tǒng)一。
六、樹與二叉樹的基本概念及性質(zhì)
樹是一種簡單的非線性結(jié)構(gòu),其所有資料元素之間的關(guān)系具有明顯的層次特性。而在二叉樹中,每一個結(jié)點(diǎn)最多有兩棵子樹,分別為該結(jié)點(diǎn)的左子樹與右子樹。二叉樹具有度數(shù)為0、1或2的結(jié)點(diǎn),并且具有一系列基本性質(zhì),如滿二叉樹、完全二叉樹的定義及特性。
七、二叉樹的遍歷方式
二叉樹的遍歷主要有前序遍歷、中序遍歷和后序遍歷三種方式。其中前序遍歷(DLR)先訪問根結(jié)點(diǎn),然后遍歷左子樹,*遍歷右子樹。這種遍歷方式能夠確保不重復(fù)地訪問二叉樹中的所有結(jié)點(diǎn)。
循環(huán)隊列及線性連結(jié)串列、樹與二叉樹等數(shù)據(jù)結(jié)構(gòu)都是計算機(jī)科學(xué)中重要的概念。了解它們的特性和運(yùn)算方式對于掌握數(shù)據(jù)結(jié)構(gòu)及其應(yīng)用具有重要意義。二叉樹遍歷方法
(2)中序遍歷(LDR):當(dāng)二叉樹為空時,遍歷結(jié)束并返回。否則,先遍歷左子樹,接著訪問根節(jié)點(diǎn),然后遍歷右子樹。在整個過程中,無論是遍歷左子樹還是右子樹,都需遵循先左后根再右的順序。
(3)后序遍歷(LRD):同樣地,若二叉樹為空則結(jié)束返回。這次先遍歷左子樹,然后遍歷右子樹,*訪問根節(jié)點(diǎn)。同樣地,遵循左、右子樹的遍歷順序,始終保持先左后右,*到根的順序。
1.7 查詢技術(shù)詳解
查詢是在給定某個值的前提下,在查詢表內(nèi)找到與該值匹配的資料元素的過程。查詢結(jié)果或成功找到記錄或未找到記錄。
平均查詢長度指的是在查詢過程中,關(guān)鍵字與給定值比較的平均次數(shù)。其基本思想是從線性表的*個元素開始,將給定的值與表中元素逐一比較,直到找到相匹配的元素為止。如果沒有找到相匹配的元素,則表示該元素不存在于表中。
通常而言,使用順序查詢法在線性表內(nèi)查詢一個元素時,在平均情況下需要與表中一半的元素進(jìn)行比較。但在最壞的情況下,則需要比較全部n個元素。順序查詢一個具有n個元素的線性表的平均復(fù)雜度為O(n)。
兩種情況下必須采用順序查詢:
情況一:如果線性表是無序的,無論其采用順序儲存結(jié)構(gòu)還是鏈?zhǔn)絻Υ娼Y(jié)構(gòu),都只能采用順序查詢。
情況二:對于有序的線性表,若采用鏈?zhǔn)絻Υ娼Y(jié)構(gòu),也需采用順序查詢的方式。
二分法查詢思想:首先確定待查詢記錄所在的范圍,然后逐步縮小范圍直至找到或確認(rèn)未找到該記錄為止。前提是必須在具有順序儲存結(jié)構(gòu)的有序表中進(jìn)行。
二分法查詢的特點(diǎn)是效率較高。在最壞的情況下,僅需比較log2n次即可完成查詢。但需注意,二分法查詢只適用于順序儲存的線性表且表中元素必須按關(guān)鍵字有序排列(升序)。對于無序的線性表和鏈?zhǔn)絻Υ娼Y(jié)構(gòu)的線性表則需采用順序查詢的方法。在長度為n的有序線性表中采用二分法查詢的時間復(fù)雜度為O(log2n)。
1.8 排序技術(shù)分析
排序是處理無序序列的重要操作,目的是將無序序列整理成按值非遞減順序排列的有序序列。常見排序方法包括交換類排序法(如氣泡排序和快速排序)、插入類排序法(如簡單插入排序和希爾排序)以及選擇類排序法(如簡單選擇排序和堆排序)。
本章考試要點(diǎn):本章內(nèi)容在考試中約會出現(xiàn)5-6道題目,是公共基礎(chǔ)知識部分出題量較多的一章,分值也相對較高,約為10分左右??忌柚攸c(diǎn)掌握各種排序方法和二叉樹的遍歷方法等核心知識點(diǎn)。