贵州大学831程序设计与数据结构考研真题试题2013—2016年

合集下载

2013年贵州省数据结构试题及答案考试重点和考试技巧

2013年贵州省数据结构试题及答案考试重点和考试技巧
?A.动态结构和静态结构?B.紧凑结构和非紧凑结构?C.线性结构和非线性结构?D.内部结构和外部结构
15、下列关于哈夫曼树的叙述中,错误的是
A.用n个结点构造的哈夫曼树是唯一的
B.哈夫曼树中只有度为0或度为2的结点
C.树中两个权值最小的结点可能是兄弟结点
D.同一结点集构造的二叉树中,哈夫曼树的WPL最小
C.栈的操作方式是先进先出
D.队列的操作方式是先进后出
8、数据结构中,从逻辑上可以把数据结构分成(?)。
?A.动态结构和静态结构?B.紧凑结构和非紧凑结构?C.线性结构和非线性结构?D.内部结构和外部结构
9、向一个长度为n的顺序表中插人一个新元素的平均时间复杂度为( )。
A.O(n) B.O(1)
C.O(n2) D.O(10g2n)
10、若进栈序列为1,2,3,4,则不可能得到的出栈序列是( C )。
A)3,2,1,4 B)3,2,4,1
C)4,2,3,1 D)2,3,4,1
11、若一个栈以数组V[0..n-1]存储,初始栈顶指针top为n,则x入栈的正确操作是
33、在以下的叙述中,正确的是 B 。
A.线性表的顺序存储结构优于链表存储结构
B.二维数组是其数据元素为线性表的线性表
C.栈的操作方式是先进先出
D.队列的操作方式是先进后出
34、如果最常用的操作是取第i个结点及其前驱,则采用 D 存储方式最节省时间。
A.单链表 B.双链表 C.单循环链表 D. 顺序表
47、在平衡二叉树中插入一个结点后造成不平衡,设最低的不平衡结点为A,并已知A的左孩子平衡因子为0,右孩子平衡因子为1,则应该做( )型调整以使其平衡

贵州大学计算机考研831历年简答题名词解释简答题及答案

贵州大学计算机考研831历年简答题名词解释简答题及答案

贵州大学计算机考研831历年简答题名词解释题及答案目录1 名词解释 (1)1.1 算法 (1)1.2 数据结构 (2)1.3 队列 (2)1.4 栈 (3)1.5 二叉树 (3)1.6 串 (4)1.7 堆排序 (4)1.8 有向图 (4)1.9 拓扑排序 (5)1.10 邻接矩阵 (5)1.11 关键路径 (5)1.12 强连通图 (6)1.13 哈夫曼树 (6)1.14 最小生成树 (7)2 简答题 (7)2.1 数据元素之间的关系在计算机中有几种表示方法?各有什么特点。

(7)2.2 顺序表和链表的特点 (8)2.3 什么是递归程序,递归程序的优缺点。

(8)2.4 常见哈希函数的构造方法有哪些? (9)2.5 常见的哈希处理冲突的方法有哪些? (9)2.6 什么是归并排序,归并排序的时间复杂度和空间复杂度是多少? (10)2.7 什么是逆序数,逆序数的求法。

(10)2.8 线性结构的操作方法有哪些? (11)2.9 深度优先遍历/广度优先遍历以及辅助结构。

(12)2.10 求前序中序后序序列,基于前序中序求后序 (13)2.11 入栈顺序出栈顺序相关的题 (13)2.12 二叉树/树相关结点数考题 (13)2.13 哈夫曼树,求WPL (14)1名词解释(注意:重要性依次排序,先回答最基本的,再扩展回答)1.1算法(1)定义:算法是指解题方案的准确且完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。

算法要求能够对一定规范的输入,在有限时间内获得所要求的输出,因此一个算法也经常被封装为一个函数,用来实现特定的功能。

(2)算法优劣的衡量标准:不同的算法可能用不同的时间、空间或效率来完成同样的任务。

一个算法的优劣可以用空间复杂度与时间复杂度来衡量。

算法的时间复杂度是一个函数,它定性描述该算法的运行时间。

这是一个代表算法输入值的字符串的长度的函数。

时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。

数据结构 排序 历年考研练习题库 试卷及答案

数据结构 排序 历年考研练习题库 试卷及答案

数据结构排序历年考研练习题库试卷及答案数据结构排序历年考研练习题库试卷及答案一、冒泡排序冒泡排序是一种基本的排序算法,它通过重复地交换相邻两个元素的位置来实现排序。

算法的基本思想是从待排序的元素中比较相邻的两个元素大小,并根据需要交换它们的位置,直到整个序列有序为止。

冒泡排序的原理如下:首先从序列的第一个元素开始,比较相邻的两个元素的大小,若前面的元素大于后面的元素,则交换它们的位置;否则,继续比较下一对相邻元素,直到比较到序列的最后一个元素。

这样一趟比较下来,序列中最大的元素就会被交换到最后一个位置。

接着,对序列中剩下的 n-1 个元素重复上述过程,执行 n-1 趟比较,直到整个序列有序。

在实践中,冒泡排序的时间复杂度为 O(n^2),其中 n 为待排序序列的长度。

尽管冒泡排序存在其它更好的排序算法,但它具有编码简单、实现容易以及对小规模数据排序的优势。

二、选择排序选择排序也是一种简单直观的排序算法,它的思想是将待排序序列分为已排好序的部分和未排序的部分,每次选取未排序部分中最小(或最大)的元素,将其放置在已排好序的部分的末尾。

重复此过程,直到整个序列有序。

选择排序的具体步骤如下:首先从待排序序列中找到最小(或最大)的元素,然后将其与序列的第一个元素交换位置,将该元素视为已排序部分;接着,在剩下的未排序部分中找到最小(或最大)的元素,将其与第二个元素交换位置,将该元素视为已排序部分的最后一个元素;以此类推,每次选择序列中最小(或最大)的元素,并将该元素放置在已排序部分的末尾。

最终完成排序。

选择排序的时间复杂度同样为 O(n^2),其中 n 为待排序序列的长度。

相比于冒泡排序,选择排序的交换操作较少,因此在实际应用中,选择排序的性能要优于冒泡排序。

三、插入排序插入排序是一种简单直观的排序算法,它的基本思想是将待排序的元素逐个插入已排好序的部分中,直到整个序列有序。

与冒泡排序和选择排序不同,插入排序是一种原地排序算法。

2013贵州省数据结构与算法理论考试试题及答案

2013贵州省数据结构与算法理论考试试题及答案

23、倘若在对串的插入、删除运算中,期望运算速度最快,则应采用( C )。
A)顺序表示法 B)单字符为结点的单链表表示法
C)等量分块表示法 D)不等量分块表示法
24、倘若在对串的插入、删除运算中,期望运算速度最快,则应采用( C )。
A) 5,4,3,2,1,6 B) 2,3,5,6,1,4
C) 3,2,5,4,1,6 D) 1,4,6,5,2,3
28、与无向图相关的术语有( C )。
A)强连通图 B)入度
C)路径 D)弧
29、在一棵度为3的树中,度为3的结点个数为2,度为2的结点个数为1,则度为0的结点个数为( C )。
A)4 B)5
C)6 D)7
33、二叉树第i(i≥1)层上至多有( C )结点。
A)2i B)2i C)2i-1 D)2i-1
34、设一数列的顺序为1,2,3,4,5,6,通过栈结构不可能排成的顺序数列为( B )。
C) [g,a,e,c,b]f[d,h] D) [a,b,c,d,]f[e,g,h]
21、链式存储的存储结构所占存储空间( A )。
A)分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针
B)只有一部分,存放结点值
C)只有一部分,存储表示结点间关系的指针
C)p=p->nexe->next D)p->next=p
18、设有一个栈,元素的进栈次序为A, B, C, D, E,下列是不可能的出栈序列是( C )。
A) A, B, C, D, E
B) B, C, D, E, A
C) E, A, B, C, D
D) E, D, C, B, A

贵州大学2013年计信学院C++语言程序设计考试复习题汇总

贵州大学2013年计信学院C++语言程序设计考试复习题汇总

象的设计(OOD)、面向对象的测试(OOT)和面向对象
fn1(),没有重载基类的成员函数 fn2(),如何在派生
的软件维护(OOSM)等主要内容。
类的函数中调用基类的成员函数 fn1(),fn2()?
2. if(x=3)和 if(x==3)这两条语句的差别是什么?
答:调用方法为:A::fn1(); fn2();
型结果(实型结构表示范围更大,而且可以准确表示 m<0
函数、拷贝构造函数、重载运算符+、=、+=、[],
时的结果)该如何调用?
尽可能地完善它,使之能满足各种需要
答:源程序:三章(P49)
答:程序如下:
9. 简单说明交换排序的算法思想。
答:交换排序的基本思想是:两两比较待排序序列中的元
素,并交换不满足顺序要求的各对元素,直到全部满足顺
return *this; delete[] itsMyString; itsMyString=new char[itsLen+1]; for(unsigned short i=0;i<=itsLen;i++)
itsMyString[i]=rhs[i]; itsMyString[itsLen]='\0'; return *this; } char & MyString::operator[](unsigned short offset){ if(offset>itsLen)
C++中起着怎样的作用?
态的基础,主要是针对对象的,而构造函数是在对象产生 答:流是一种抽象,它负责在数据的生产者和数据的消费
之前运行的,因此虚构造函数是没有意义的;可以声明虚 者之间建立联系,并管理数据的流动,一般意义下的读操

贵州大学计算机学院研究生复试上机考试题目

贵州大学计算机学院研究生复试上机考试题目

注意事项:1、请勿使用书籍、U盘、光盘等任何资料。

2、考试时间:2小时。

3、文件一定要保存在E盘,其余盘重新启动后会还原。

程序设计,用C语言完成(75分)1、从键盘上输入一个字符串,将该串分为数字、字母、其他字符三个部分输出,例如:输入:Thdad29#@12aH;77输出:ThdadaH291277#@;2、对任意正整数N,求XN,,要求运算的时间复杂度为O(logN)。

例如X30,有X30=X15*X15,X15=X7*X7*X,X7=X3*X3*X,X3=X*X*X,共7次乘法运算完毕。

3、有N个小朋友围成一圈玩击鼓传花游戏,将小朋友编号为1~N,从1号开始传花,每次传3个,拿到花的小朋友表演节目后退出,任给N,问最后一个表演的小朋友编号是多少。

例如:5个小朋友,从1号开始传花,第一个表演的是3号,第二个表演的是1号,第三个表演的是5号,第四个表演的是2号,最后一个表演的是4号。

数据库(25分)4、设某物流系统有如下表:仓库表(仓库号,仓库名,地点)货物表(货物号,货物名,单价)出入库表(仓库号,货物号,出入库数量,时间)要求:(1)使用SQL语句建立以上三张表(需要主键、外键)(2)使用SQL语句查询:单价高于100元的货物名、出入库总次数、总数量注:不需要在电脑上建表,仅需要写出SQL语句,保存到文本文件中即可2016年的:程序设计,可使用C、C++、Java或C#完成(75分)1、从键盘输入一个字符串(可能含数字、字母、其他可见字符),输出出现频率最高的英文字母及次数,忽略字母的大小写(如大写A 和小写a均视为a)。

例如:输入:There are 10,000 soldiers in the town.输出:e 54、某学院管理系统有如下表:课程表(课程号,课程名,任课老师姓名,学时数)学生表(学号,学生姓名,性别,年级)选课表(课程号,学号,成绩)要求:(1)使用SQL语句建立以上三张表(需要主键、外键)(2)建立视图:对于每门课程,列出课程号,课程名以及不及格学生人数注:不需要在电脑上建表,仅需要写出SQL语句,保存到文本文件中即可1.视图的作用是什么?2.关系数据库的作用?3.数据库设计的基本步骤?4.数据库安全性的常用方法和常用技术?贵大数据库笔试:选择题都比较简单,知识面比较杂,一般的复习题的知识能复习到就行。

贵州大学计算机831真题答案(2016-2018年)(仅含答案解析)(补充版)

贵州大学计算机831真题答案(2016-2018年)(仅含答案解析)(补充版)

2016-2018年贵大831真题答案特别说明:1、本文档是贵州大学2014年度计算机考研831考题的参考答案整理,原试题在网络上可以搜索到,答案也是经过仔细斟酌,对一些难点进行了解释,备考中的考生可使用此文档作为参考答案,节约整理的时间。

2、本参考答案旺旺考研享有著作权,同时我们尊重原创,尊重知识,如果有使用者发现答案中有任何不解或纰漏,随时可以和我们练习,我们会第一时间处理。

12016年1.1选择题1.D2.D考察二叉树结点数。

满二叉树的情况下,结点数最多。

深度为6的二叉树,最多有2^k – 1个结点。

3.A在二叉排序树树形状为每层一个结点时,此时查找比较次数最对。

4.C5.C6.D这个题目考察的不够严谨,因为冒泡排序可能是优化的也可能是不优化的。

相对来说D项最佳。

下面是每个排序的解释:直接插入排序很明显,在完全有序的情况下每个元素只需要与他左边的元素比较一次就可以确定他最终的位置,因此直接插入与初始序列有关。

希尔排序是基于直接插入的,所以关键字比较的次数与记录的初始排列次序有关。

选择排序是指扫描整个线性表,从中选出最小的元素,将它交换到表的前面。

然后对剩下的字表采用同样的办法,所以关键字比较的次数与记录的初始排列次序无关。

折半插入排序,比较次数是固定的,与初始排序无关。

快速排序,初始序列不影响每次划分时的比较次数,都要比较n次,但是初始排序会影响划分的次数,所以会影响总的比较次数,有关;归并排序在归并的时候,如果右路最小值比左路最大值还大,那么只需要比较n次,如果右路每个元素分别比左路对应位置的元素大,那么需要比较2*n-1次,所以与初始排序有关。

冒泡排序如果加入了优化,比如加入了本趟排序是否有数据进行交换的判断,如果上次循环没有交换数组中的两个值则说明数组已经有序,直接退出冒泡排序过程。

因此冒泡排序与初始序列有关。

堆排序和选择排序的排序次数与初始状态无关,即最好情况和最坏情况都一样。

元素的移动次数与关键字的初始排序无关的是:归并排序、基数排序元素的比较次数与初始序列无关的是:选择排序、基数排序、堆排序、折半插入算法的时间复杂度与初始序列无关的是:堆排序、归并排序、简单选择排序、基数排序7.D考察B树的概念,冲刺课查找排序章节有讲。

数据结构考研真题及其答案_研究生入学考试_高等教育_教育专区 数据结

数据结构考研真题及其答案_研究生入学考试_高等教育_教育专区  数据结

数据结构考研真题及其答案_研究生入学考试_高等教育_教育专区数据结结考研真题及其答案据结构是计算机科学中重要的一门课程,它研究的是如何组织和管理数据的方式。

对于计算机专业的研究生来说,数据结构是必修课程,考研真题的复习和备考对于学生来说是非常重要的。

在本文中,我们将介绍一些数据结构考研真题及其答案,帮助学生更好地复习和备考。

第一题:给出以下数据结构中各个操作的时间复杂度:数组、链表、堆、栈、队列。

答案:数组的插入和删除操作的时间复杂度为O(n),查找操作的时间复杂度为O(1);链表的插入和删除操作的时间复杂度为O(1),查找操作的时间复杂度为O(n);堆的插入、删除和查找操作的时间复杂度都为O(logn);栈的插入、删除和查找操作的时间复杂度都为O(1);队列的插入、删除和查找操作的时间复杂度都为O(1)。

第二题:给出以下数据结构的特点:栈、队列、堆、二叉树、图。

答案:栈是一种后进先出(LIFO)的数据结构,只能在一端进行插入和删除操作;队列是一种先进先出(FIFO)的数据结构,插入操作在一端进行,删除操作在另一端进行;堆是一种完全二叉树,具有父节点的值大于等于子节点的值(大顶堆)或父节点的值小于等于子节点的值(小顶堆)的性质;二叉树是一种每个节点最多有两个子节点的树;图是由节点和连接节点的边组成的数据结构。

第三题:给定一个有序数组,要求在其中查找一个元素的位置并返回,如果找不到则返回-1,设计一个算法实现上述功能。

答案:可以使用二分查找算法来实现上述功能。

首先,将要查找的元素与有序数组的中间元素进行比较,如果相等,则返回中间元素的位置;如果要查找的元素小于中间元素,则在数组的前半部分继续进行二分查找;如果要查找的元素大于中间元素,则在数组的后半部分继续进行二分查找。

重复这个过程,直到找到要查找的元素或者确定元素不存在为止。

第四题:给出以下排序算法的时间复杂度:冒泡排序、插入排序、选择排序、快速排序、归并排序。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

B、int a[][]={{3,2,1},{1,2,3}};
C、int a[2][3]={{3,2,1},{1,2,3}};
D、int a[][3]={{3,2,1},{1,2,3}}; 7、下列关于 C 语言中参数的叙述正确的是( )。
A、实参与其对应的形参各占据独立的存储单元。
B、实参占用存储单元,形参是虚拟的,不占用存储单元。
端均可输出)的双端队列不可能得到的输出序列是( )。
A、4231
B、1324
C、3214
D、2341
20、一个满二叉树中,某个结点的高度为 4,深度为 4,则可推知该满二叉树的
高度为( )。
A、4
B、5
C、6
D、7
21、设二叉树的先序遍历序列和后序遍历序列正好相反,则该二叉树满足的条件
是( )。
A、空或只有一个结点
A、p=m
B、p=&m C、*p=&m
D、*p=*m
12、设变量定义为 int a[3={2, 4, 6}, *p=&a[0],则*p 的值是( )。
A、&a[0]
B、2
C、4
D、6
13、两个指针变量的值相等时,表明两个指针变量( )。
A、占据同一内存单元
B、指向同一内存单元地址或者为空
C、是两个空指针
A、&a[1]
B、&a[0]+1 C、a++
D、a+1
16、以下数据结构中哪一个是非线性结构( )。
A、队列
B、栈
C、线性表
D、二叉树
17、下面关于线性表的叙述错误的是( )。
A、线性表采用顺序存储必须占用一片连续的存储空间。
B、线性表采用链式存储不必占用一片连续的存储空间
C、线性表采用链式存储便于插入和删除操作的实现
D、都没有指向
14、函数返回值的类型是由( )。
A、return 语句中的表达式类型所决定。
B、调用该函数时的主调函数类型所决定。
C、调用该函数时系统临时决定。
D、在定义该函数时所指定的函数类型所决定。
15、在 C 语言中,若有定义”int a[10];”,则下列哪一项不能表示 a[1]的地址( )。
A、3th
B、_2f
C、$25
D、for
2、在一个 C 程序中( )。
A、main 函数出现在所有函数之前。C 程序不一定都有 main 函数
B、main 函数必须出现在所有函数之后。一个 C 程序必须有且仅有一个 main 函数。
C、main 函数可以在任何地方出现。一个 C 程序必须有且仅有一个 main 函 数。
C、只有当实参单元与其对应的形参单元同名时,才共占用一个存储单元。
D、形参值的改变会影响实参的值。 8、若有以下语句:
int a[3],*p=a; 则 &a[1]-p 的值是( )。
Aபைடு நூலகம்1
B、2
C、3
D、4
9、设有定义:char s[]={“string”}; 则 s 数组所占字节数为( )。
A、1
B、高度等于其结点数
C、任一结点无左孩子
D、任一结点无右孩子
22、线索二叉树是一种( )结构。
A、逻辑
B、逻辑和存储
C、物理
D、线性
23、无向图的邻接矩阵是一个(
)。
A、对称矩阵 B、零矩阵
C、上三角矩阵 D、对角矩阵
24、一个元素序列的排序码为{46,72,41,38,84,89},采用快速排序(以最左位置
D、线性表采用顺序存储便于插入和删除操作的实现
第 3 页 共 10 页
18、已知一个栈的进栈序列为 1,2,3,……,n。其输出的序列是 p1,p2,p3...,pn,
若 p1=3,则 p2 的值( )。
A、一定是 2
B、一定是 1 C、可能是 1 D、可能是 2
19、已知输入序列是 1234,则输入受限(仅允许由一端输入)但输出不受限(两
D、main 函数出现在固定位置,一个 C 程序可以有多个 main 函数。
3、已知 int i,a;,执行语句 i=(a=2*3,a*5),a+6; 后变量 i 的值是( )。
A、6
B、12
C、30
D、36
4、C 语言程序的 3 种基本结构是( )。
A、循环结构、转移结构和顺序结构
B、循环结构、递归结构和转换结构
的元素为轴)得到的第一次划分结果为(
)。
A、{38,41,46,72,84,89}
B、{41,38,46,72,84,89}
C、{28,41,46,84,72,89}
D、{46,38,41,72,84,89}
25、一趟排序结束后不一定能够选出一个元素放在其最终位置上的是( )。
A、堆排序
B、冒泡排序 C、快速排序
D、希尔排序
第 4 页 共 10 页
二、阅读程序题(本题共 4 个小题,每小题 4 分,共 16 分) 1、读下面程序,写出程序的输出结果
#include<stdio.h> void main() {
char *ps=”There is an apple”; int n = 11; ps = ps+n; printf(“%s\n”,ps); } 程序运行的结果为:
2、读下面程序,写出程序的输出结果 #include<stdio.h> void main() { int x; x = try(6); printf(“%d\n”,x); } int try(int n) { if(n>0) return (n*try(n-2)); else return (1); } 程序运行的结果为:
B、6
C、7
D、不确定
10、以下说法正确的是( )。
A、共用体变量在某一时刻只有一个成员起作用。
B、结构体变量在某一时刻只有一个成员起作用
C、共用体变量各成员占用不同的存储空间。
第 2 页 共 10 页
D、结构体变量各成员占用相同的存储空间。
11、若有定义 float *p,m;,则以下表达式正确的是( )。
C、顺序结构、选择结构和递归结构
第 1 页 共 10 页
D、顺序结构、选择结构和循环结构
5、设 int a = 4; 则表达式 a<1&&--a>1 的运算结果和 a 的值分别是( )。
A、0 和 3
B、0 和 4
C、1 和 3
D、1 和 4
6、以下对二维数组 a 进行不正确的初始化的是( )。
A、int a[][3]={3,2,1,1,2,3};
贵州大学 2015 年硕士研究生入学考试试题
(所有试卷答案必须答在专用答题纸上,否则答案无效)
考试科目名称: 程序设计与数据结构
考试科目代码: 831
一、选择题(单项选择题,25 个小题,每小题 2 分,共 50 分,下面每题给出的 4 个选项中,只有一个选项最符合试题要求)
1、下面哪个是合法的标识符( )。
相关文档
最新文档