1998-2022 ChinaKaoyan.com Network Studio. All Rights Reserved. 滬ICP備12018245號
分類:2025考研大綱 來源:西北師范大學研究生院 2022-08-09 相關院校:西北師范大學
從西北師范大學研究生院獲悉,2023年西北師范大學821程序設計與數據結構考研考試大綱及參考書目內容如下
《程序設計與數據結構》科目考試大綱
(科目代碼:821)
一、考核要求
《程序設計》、《數據結構》兩門課程均是計算機類專業的核心課程。《程序設計》課程主要培養學生編寫程序的基本能力以及計算思維,掌握程序設計語言(C或C++)的基本成分、語法規則等基本知識,建立起結構化程序設計思想和方法。用計算機解決一個復雜工程問題,需要將反映問題的數據信息存入計算機,并設計能解決問題的算法。《數據結構》主要闡述計算機如何存儲各種數據和數據之間的關系,以及對數據做基本處理的算法實現。要求考生比較系統地理解數據結構的基本概念和基本理論,掌握常用數據結構及其基本算法,具有綜合運用數據結構知識解決問題的能力。
《程序設計與數據結構》的考核分為程序設計和數據結構兩部分,分值各占50%。程序設計部分考核學生對結構化程序設計方法和編程語言的掌握情況以及獨立編程的能力;數據結構部分考核學生對常用數據結構以及相關基本算法的掌握和運用能力。
二、考核評價目標
考核評價目標應使錄取的研究生較好地掌握C或C++程序設計語言和數據結構,具有程序設計能力,以及分析與解決復雜工程問題的能力,為以后從事的研究、開發工作提供必要的軟件基礎和基本技能。而對程序設計的具體編程語言、數據結構的定義和算法描述語言,學生既可以選擇C,也可以選擇C++。
三、考核內容
程序設計部分(分值比例:50%)
第一章 程序設計概述及基本知識
【考試內容】
C或C++程序的基本數據類型、基本算術運算、簡單程序的設計。
【考試要求】
理解C或C++程序的基本構成,變量的定義與變量名的基本規則;
(2)掌握C或C++的基本數據類型;宏常量與宏替換、const常量的定義、常用的標準數學函數等;
(3)掌握C或C++運算符和表達式,算術表達式、賦值表達式與逗號表達式等;
(4)數據的輸入與輸出。
第二章 選擇控制結構
【考試內容】
條件選擇語句if和switch的語法及其應用。
【考試要求】
理解if語句與條件表達式的區別、switch語句的執行流程;
(2)掌握if語句與switch語句在程序中的使用。
第三章 循環控制結構
【考試內容】
for、while、do-while三種循環控制語句的語法特點和應用。
【考試要求】
(1)理解for、while、do-while語句的執行流程及其循環條件表達式的作用和它們在循環控制上的區別;
掌握goto、break與continue語句的區別與應用;
(3)能熟練地用三種循環語句進行循環程序設計。
第四章 函數與模塊化程序設計
【考試內容】
C或C++中函數的定義和使用。
【考試要求】
掌握函數的定義、向函數傳遞值和從函數返回值的過程;
(2)熟練掌握在程序設計中正確使用函數;對于已知的遞歸算法,能寫出相應的遞歸程序;
(3)理解全局變量與局部變量、變量的作用域與生存期、變量的動態與靜態存儲方式等的區別;
(4)理解模塊化程序設計的原則與思想,了解在多個程序文件中函數與函數的關系。
第五章 數組
【考試內容】
一維和二維數組的定義及其應用。
【考試要求】
掌握一維數組與二維數組的定義和初始化;
(2)掌握數組做函數參數的程序設計。
(3)掌握字符串的定義與存儲、字符串處理函數等;
(4)掌握在程序設計中應用一維數組、二維數組、字符串,以及對數組進行簡單排序和查找的方法。
第六章 指針
【考試內容】
C或C++中指針的概念、定義、運算和應用。
【考試要求】
(1)掌握變量的內存地址,指針變量的定義與初始化,以及間接尋址運算符;
(2)理解按值調用與按引用調用的區別;
(3)理解返回指針的函數與函數指針的區別,以及函數指針的應用。
第七章 指針和數組
【考試內容】
C或C++中指針和數組間的關系、指針數組及應用。
【考試要求】
(1)理解一維數組與二維數組的地址結構,掌握指針和數組間的關系;
(2)理解指針數組、數組指針、指向指針的指針之間的關系與區別,以及指針運算的用途和意義;
(3)掌握在程序中利用指針操作數組元素、字符串,以及用指針作函數參數;掌握在程序中應用指針數組;
(4)理解動態數組。
第八章 結構體、共用體和枚舉類型數據
【考試內容】
結構體、共用體、枚舉等自定義數據類型的定義和應用。
【考試要求】
(1)掌握結構體、共用體的定義,理解結構體與共用體的區別,會用typedef定義結構體、共用體等數據類型別名;
(2)掌握結構體和共用體數組、指針的定義和初始化,以及參數傳遞及應用;
(3)掌握枚舉數據類型的定義。
第九章 位運算
【考試內容】
位運算的概念及其應用。
【考試要求】
(1)理解位運算的概念、位段的概念;
(2)理解如何在程序中應用位運算。
第十章 文件操作
【考試內容】
文件的打開和讀取。
【考試要求】
理解文件指針的概念和定義;
掌握文件的打開方法、文件打開函數返回值的處理;
(3)掌握在程序中讀寫外部的文本文件或者二進制文件的方法。
數據結構部分(分值比例:50%)
第一章 基本概念
【考試內容】
數據結構的基本概念;算法及算法分析方法。
【考試要求】
(1)掌握數據結構的概念,包括數據的邏輯結構、存儲結構、算法的概念,以及它們之間的關系;
(2)掌握算法復雜度分析方法,能夠估算算法的時間復雜度和空間復雜度。
第二章 線性表
【考試內容】
線性表的特點,線性表的順序實現和鏈式實現,線性表的應用。
【考試要求】
理解線性表的結構和特點,掌握線性表上基本操作的實現算法;
掌握順序存儲線性表的方法以及基本操作的實現算法;
(3)掌握鏈接存儲線性表的方法,并掌握單鏈表和循環鏈表的結構,以及基本操作的實現算法。
第三章 棧和隊列
【考試內容】
棧和隊列的基本運算及其應用。
【考試要求】
(1)理解棧的定義和結構特點,掌握其存儲方式(順序存儲和鏈接存儲)和基本操作的實現算法;
(2)理解隊列的結構和特點,掌握其存儲方式(順序存儲和鏈接存儲)和基本操作的實現算法;
(3)理解遞歸的基本概念和實現原理,掌握用遞歸思想描述問題和構造算法的方法,以及棧與遞歸的實現。
第四章 串
【考試內容】
串的表示、實現及其應用。
【考試要求】
(1)理解串類型的定義,掌握字符串的存儲結構,字符串的基本運算;
(2)掌握字符串模式匹配算法及簡單應用。
第五章 數組和廣義表
【考試內容】
數組和廣義表的基本概念、存儲及簡單應用。
【考試要求】
理解數組的定義,數組的順序表示和實現,以及矩陣的壓縮存儲;
(2)理解廣義表的定義,廣義表的存儲結構。
第六章 樹和二叉樹
【考試內容】
樹和二叉樹。
【考試要求】
(1)理解樹的結構和定義,掌握樹的主要概念;
(2)理解各種二叉樹的定義、性質與存儲結構,掌握其特點;
(3)掌握二叉樹遍歷方法的實現原理和性質,能將二叉樹的遍歷方法應用于求解二叉樹的葉子結點個數。二叉樹計數等問題,掌握遍歷的非遞歸實現方法。
(4)理解樹的存儲結構,掌握森林與二叉樹的轉換,樹和森林的遍歷方法;
(5)理解赫夫曼樹的基本原理、實現及應用。
第七章 圖
【考試內容】
圖的存儲,圖的遍歷,最小生成樹,活動網絡和最短路徑。
【考試要求】
掌握圖的基本概念、圖的存儲結構;
掌握圖的深度優先遍歷和廣度優先遍歷方法;
理解圖的連通性問題,掌握最小生成樹的方法等;
(4)有向無環圖及其應用,掌握AOV活動網絡的拓撲排序方法,AOE活動網絡的關鍵路徑的方法;
(5)掌握最短路徑的方法。
第八章 集合和查找
【考試內容】
集合、靜態查找表、動態查找表和哈希表。
【考試要求】
(1)理解集合的基本概念,掌握常用實現集合的各種存儲方法;
(2)掌握順序表的查找、有序表的查找、靜態樹表的查找及索引順序表的查找;
(3)理解二叉排序樹和平衡二叉樹,了解B樹和B+樹。
(4)理解哈希表的實現原理,能按指定的哈希函數和解決沖突的方法構造哈希表。
第九章 排序
【考試內容】
插入排序、交換排序、選擇排序、歸并排序和基數排序等。
【考試要求】
理解各種排序方法的實現,掌握各種排序算法的特點和時間復雜度,能按指定的排序方法實現對數據做排序。
參考書目
1、《C語言程序設計》(第4版),蘇小紅、趙玲玲、孫志崗、王宇穎等編著,高等教育出版社,2019年。
2、《數據結構(C語言版)》,嚴蔚敏、吳偉民編著,清華大學出版社,2007年。
原文鏈接 https://yjsy.nwnu.edu.cn/2022/0629/c2701a192505/page.htm
掃碼關注
考研信息一網打盡