一、總體要求
要求考生具備綜合運(yùn)用所學(xué)知識(shí)進(jìn)行基本的問題分析的能力;利用計(jì)算機(jī)求解問題、設(shè)計(jì)算法并用C語言編程解決問題的能力:1.掌握C語言編程基本知識(shí);2.掌握現(xiàn)實(shí)世界數(shù)據(jù)在計(jì)算機(jī)中如何表示和處理;3.具備良好的程序設(shè)計(jì)技能;4. 掌握各種數(shù)據(jù)結(jié)構(gòu)的基本特征、操作方式和實(shí)現(xiàn)的方法;5. 具備抽象思維能力、邏輯推理能力。
二、內(nèi)容范圍
(一)程序設(shè)計(jì)基礎(chǔ)知識(shí)
掌握C語言的基本數(shù)據(jù)類型、變量和常量的定義和使用;整型數(shù)據(jù)和字符型數(shù)據(jù)在計(jì)算機(jī)內(nèi)的編碼形式;格式化輸入和輸出的基本用法;運(yùn)算符及表達(dá)式的定義及用法、運(yùn)算符的優(yōu)先級(jí)。
(二)程序設(shè)計(jì)基本方法
掌握順序、分支、循環(huán)三種結(jié)構(gòu)的基本語法及綜合運(yùn)用;函數(shù)的定義、聲明和調(diào)用;能夠規(guī)范地進(jìn)行代碼設(shè)計(jì)與編寫;
(三)復(fù)合數(shù)據(jù)類型
掌握一維數(shù)組、二維數(shù)組的定義及使用方法;了解一維數(shù)組數(shù)據(jù)在內(nèi)存中的存放方式;
掌握地址和指針的概念,及C語言中指針變量的定義及使用方法;掌握指向一維數(shù)組的指針的概念及使用指針處理一維數(shù)組數(shù)據(jù)的方法;了解指針變量的加減法運(yùn)算的含義和應(yīng)用、指針變量做函數(shù)參數(shù)進(jìn)行數(shù)據(jù)處理等知識(shí)。
掌握結(jié)構(gòu)體數(shù)據(jù)類型的含義、定義及使用方法;掌握結(jié)構(gòu)體數(shù)組、結(jié)構(gòu)體指針的定義和訪問方法;了解結(jié)構(gòu)體變量的成員在內(nèi)存中的存儲(chǔ)方式;了解枚舉類型、共用體類型。
(四)線性結(jié)構(gòu)
掌握線性表的順序存儲(chǔ)、鏈?zhǔn)酱鎯?chǔ)概念及編程實(shí)現(xiàn)方法;掌握棧的概念、基本操作及編程實(shí)現(xiàn)方法;掌握隊(duì)列的概念、基本操作,能夠編程實(shí)現(xiàn)循環(huán)隊(duì)列的基本操作。
了解各類矩陣的壓縮存儲(chǔ)和基本運(yùn)算的實(shí)現(xiàn)方法;了解串的概念及模式匹配算法。
(五)樹型結(jié)構(gòu)
掌握樹型結(jié)構(gòu)的基本概念及雙親表示法、孩子表示法、孩子兄弟表示法等樹形結(jié)構(gòu)的存儲(chǔ)方式;掌握二叉樹的定義、性質(zhì)、樹和二叉樹的轉(zhuǎn)換方法;能夠編程實(shí)現(xiàn)順序、鏈表方式實(shí)現(xiàn)二叉樹的存儲(chǔ);掌握二叉樹的前序、中序及后序遍歷算法并能夠編程實(shí)現(xiàn)。
了解森林和二叉樹的轉(zhuǎn)換、線索樹、哈夫曼樹的概念、及構(gòu)造哈弗曼樹的方法及其應(yīng)用。
(六) 圖型結(jié)構(gòu)
掌握?qǐng)D、鄰接矩陣、鄰接表的概念,并能夠編程實(shí)現(xiàn)圖的存儲(chǔ);掌握?qǐng)D的深度優(yōu)先遍歷和廣度優(yōu)先遍歷算法;掌握最小生成樹的概念,能夠用普利姆算法和克魯斯卡爾算法構(gòu)造圖的最小生成樹。
了解圖的逆鄰接表、十字鏈表存儲(chǔ)方式;了解迪卡斯特算法求圖的單源最短路徑。
(七)查詢與排序
掌握順序查找、折半查找算法并能編程實(shí)現(xiàn);掌握散列表的查找算法、散列函數(shù)的構(gòu)造及沖突處理辦法;掌握冒泡排序、插入排序、簡(jiǎn)單選擇排序、快速排序、堆排序、歸并排序等排序算法;能夠編程實(shí)現(xiàn)冒泡排序、插入排序和快速排序算法。
了解二叉搜索樹、AVL樹;了解常用排序方法的優(yōu)缺點(diǎn)及時(shí)間和空間復(fù)雜度分析。
三、參考教材
《C語言程序設(shè)計(jì)(第三版)》,譚浩強(qiáng)編著,清華大學(xué)出版社。
《數(shù)據(jù)結(jié)構(gòu)(C語言版)》,嚴(yán)蔚敏、吳偉民著,清華大學(xué)出版社。