2019年西北师范大学821程序设计与数据结构考研大纲
1 硕士研究生入学统一考试 《程序设计与数据结构》科目大纲 (科目代码:821) 学院名称(盖章):计算机科学与工程学院 学院负责人(签字): 王彩芬 编 制 时 间: 2018 年 7 月 17 日 2 《程序设计与数据结构》科目考试大纲 (科目代码:821 ) 一、考核要求 《程序设计》、《数据结构》两门课程均是软件工程专业的核心课程。学习 程序设计课程的主要目的是培养学生编写程序的基本能力以及计算思维,掌 握程序设计语言(C 或 C++)的基本成分、语法规则等基本知识,建立起结构 化程序设计思想和方法,为以后系统学习其他专业课程奠定基础。 而编写程序、用计算机解决一个问题,就要将反映问题的数据信息存入计 算机,并设计能解决问题的算法。数据结构就是回答计算机如何存储各种数 据及数据之间的关系,以及对数据做基本处理的算法实现。要求考生比较系 统地理解数据结构的基本概念和基本理论,掌握常用数据结构及其基本算法, 具有综合运用数据结构知识解决问题的能力。 《程序设计与数据结构》的考核分为程序设计和数据结构两部分,分值各 占 50%。程序设计部分考核学生对结构化程序设计方法和设计思想的掌握情 况以及独立编程的能力;数据结构部分考核学生对常用数据结构以及相关基 本算法的掌握和运用能力。 二、考核评价目标 通过考核,选拔出具有较好的 C 或 C++语言编程能力和初步的数据结构软 件设计开发能力的学生来攻读软件工程学科的硕士研究生。考核评价目标应 使录取的研究生具有较扎实与系统的从事软件工程学科的进一步学习及科研 工作所需的程序设计能力及系统软件开发技能,为以后从事的研究、开发工 作提供必要的软件基础和基本技能。而对程序设计的具体编程语言、数据结 3 构的定义和算法描述语言,学生既可以选择 C,也可以选择 C++。 三、考核内容 程序设计部分(分值比例:50%) 第一章 程序基本知识与简单程序设计 【考试内容】 C 或 C++程序的基本知识、简单程序的设计 【考试要求】 (1)理解 C 或 C++程序的基本构成,变量的定义与变量名的基本规则; (2)领会类型修饰的使用和功能,整型与字符型数据的混合运算;宏常 量(或称符合常量)的定义。 (3)掌握算术表达式、赋值表达式与逗号表达式;数据的输入与输出。 第二章 选择结构程序设计 【考试内容】 条件选择语句 if 和 switch 的语法及其应用 【考试要求】 (1)领会 if 语句与条件表达式的区别、switch 语句的执行流程。 (2)掌握 if 语句与 switch 语句在程序中的使用。 第三章 循环控制 【考试内容】 for、while、do-while 三种循环控制语句的语法特点和应用 【考试要求】 (1)理解 for、while、do-while 语句的执行流程及其循环条件表达式 4 的作用和它们在循环控制上的区别; (2)掌握 break 与 continue 语句的区别与应用 (3)能熟练地用三种循环语句进行循环程序设计。 第四章 函数与模块化程序设计 【考试内容】 C 或 C++中函数的定义和使用 【考试要求】 (1)理解全局变量与局部变量、变量的生存期与作用域、变量的动态 与静态存储方式等的区别; (2)了解在多个程序文件中函数与函数的关系; (3)熟练掌握在程序设计中正确使用函数;对于已知的递归算法,能 写出相应的递归程序。 第五章 数组 【考试内容】 一维和二维数组的定义及其应用 【考试要求】 (1)理解一维数组与二维数组的地址结构、字符串的结束标志; (2)掌握常用的几个字符串函数; (3)掌握在程序设计中应用一维数组、二维数组、字符串; (4)掌握对数组进行简单排序和查找的方法; (5)理解数组做函数参数的程序设计。 第六章 指针 5 【考试内容】 C 或 C++中指针的概念、定义、运算和应用 【考试要求】 (1)理解一维数组与二维数组的地址结构; (2)理解返回指针的函数与函数指针的区别; (3)理解指针数组、数组指针、指向指针的指针之间的关系与区别; (4)理解指针运算的用途和意义; (5)掌握在程序中利用指针操作数组元素、字符串,以及用指针作函 数参数;掌握在程序中应用指针数组。 第七章 结构体、共用体和枚举类型数据 【考试内容】 结构体、共用体、枚举等自定义数据类型的定义和运用 【考试要求】 (1)理解结构体与共用体的区别; (2)掌握结构体、共用体、枚举类型数据的应用,会用 typedef 定义 结构体、共用体等数据类型别名。 第八章 预处理命令 【考试内容】 C 或者 C++中预处理命令的使用 【考试要求】 (1)理解执行预处理命令的时机、宏定义替换规则; (2)了解带参宏定义与函数的区别; 6 第九章 位运算 【考试内容】 位运算的概念及其应用 【考试要求】 (1)理解位运算的概念、位段的概念; (2)理解如何在程序中应用位运算。 第十章 文件 【考试内容】 文件的打开和读取 【考试要求】 (1)理解文件指针的概念和定义; (2)掌握文件的打开方法、文件打开函数返回值的处理; (3)掌握在程序中读写外部的文本文件或者二进制文件的方法。 数据结构部分(分值比例:50%) 第一章 基本概念 【考试内容 】 数据结构的基本概念;渐进算法分析方法。 【考试要求】 (1)掌握数据结构的概念,包括数据的逻辑结构、存储结构、算法的 概念,以及它们之间的关系。 7 (2)掌握渐进算法分析方法,能够估算算法的时空复杂度 第二章 线性表和字符串 【考试内容】 线性表的特点,线性表的顺序实现和链式实现,线性表的应用;字符 串的基本运算,字符串匹配算法。 【考试要求】 (1)理解线性表的结构和特点,掌握线性表上基本操作的实现算法。 (2)掌握顺序存储线性表的方法以及基本操作的实现算法。 (3)掌握链接存储线性表的方法,并掌握单链表和循环链表的结构, 以及基本操作的实现算法。 (4)理解字符串的存储结构,字符串的基本运算。 (5)掌握字符串简单的匹配算法。 第三章 栈和队列 【考试内容】 栈和队列的基本运算及其应用。 【考试要求】 (1)理解栈的定义和结构特点,掌握其存储方式(顺序存储和链接存 储)和基本操作的实现算法。 (2)理解队列的结构和特点,掌握其存储方式(顺序存储和链接存储) 和基本操作的实现算法。 第四章 递归 【考试内容】 8 递归的基本概念,递归的简单应用。 【考试要求】 (1)理解递归的基本概念和实现原理,掌握用递归思想描述问题和构 造算法的方法。 (2)掌握求阶乘、汉诺塔等问题的递归解法。 (3)了解用栈将递归改为非递归的方法。 第五章 树和二叉树 【考试内容】 树和二叉树 【考试要求】 (1)理解树的结构和定义,掌握树的主要概念。 (2)理解各种二叉树的结构,掌握其特点。 (3)掌握二叉树的三种遍历方法的实现原理和性质,能将二叉树的遍 历方法应用于求解二叉树的叶子结点个数。二叉树计数等问题, 掌握遍历的非递归实现方法。 (4)理解树的存储结构,掌握树的遍历等方法的实现。 (5)理解霍夫曼编码的基本原理。 第六章 集合和搜索 【考试内容】 集合、二叉搜索树和 AVL 树 【考试要求】 (1)理解集合的基本概念,掌握常用实现集合的各种存储方法。 9 (2)掌握无序线性表的顺序搜索、有序线性表的二分搜索。。 (3)理解二叉搜索树的定义和特点,掌握二叉搜索树插入和删除的算 法。 (4)理解 AVL 树的定义和特点,掌握 AVL 树上插入新结点的方法。 第七章 图 【考试内容】 图的存储,图的遍历,最小生成树,最短路径和活动网络。 【考试要求】 (1)掌握图的基本概念、图的邻接矩阵存储方式和邻接表存储方式。 (2)掌握图的深度优先遍历和广度优先遍历方法。 (3)掌握 Kluskal 和 Prim 生成最小生成树的方法。 (4)掌握 Dijkstra 求单源最短路径的方法。 (5)掌握 AOV 活动网络的拓扑排序方法,AOE 活动网络的关键路径的方 法。 第八章 排序 【考试内容】 插入排序、交换排序、选择排序、归并排序和基数排序。 【考试要求】 理解各种排序方法的实现,掌握各种排序算法的特点和时间复杂度,能 按指定的排序方法实现对数表做排序。 第九章 索引结构与散列 【考试内容】 10 线性索引结构、B+树和 B-树索引结构、散列。 【考试要求】 (1)理解线性索引结构的特点。 (2)理解 B+树和 B-树索引的结构,掌握 B+树和 B-树插入和删除方法。 (3)理解散列的实现原理,能按指定的散列函数和解决冲突的方法构 造散列表。 四、参考书目 1. 《C 语言大学使用教程》(第二版) 苏小红等编著 电子工业出版社 2. 《数据结构(C 语言版)》 严蔚敏、吴伟民编著 清华大学出版社
上一篇文章: 2019年西北师范大学822化工原理考研大纲 下一篇文章: 2019年西北师范大学820电子技术考研大纲 |