
2013专升本插班生考试《数据结构》课程试卷.doc
7页韩山师范学院2013年专升本插班生考试试卷 计算机科学与技术 专业 数据结构 试卷 (A卷)题号一二三四五总分评卷人得分得分评卷人一、 单项选择题(每题2分,共40分)题号12345678910答案题号11121314151617181920答案1、从逻辑上可以把数据结构分为( )两大类A.动态结构、静态结构 B.顺序结构、链式结构 C.线性结构、非线性结构 D.初等结构、构造型结构2、下面关于算法说法错误的是( )A.算法最终必须由计算机程序实现B.为解决某问题的算法同为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性 D.以上几个都是错误的 3、栈和队列的共同特点是( )A.只允许在端点处插入和删除元素B.都是先进后出 C.都是先进先出D.没有共同点 4、以下数据结构中,哪一个是线性结构( )?A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串5、下面关于线性表的叙述中,错误的是哪一个?( )A.线性表采用顺序存储,必须占用一片连续的存储单元。
B.线性表采用顺序存储,便于进行插入和删除操作C.线性表采用链接存储,不必占用一片连续的存储单元D.线性表采用链接存储,便于插入和删除操作6、静态链表中指针表示的是( ) A. 内存地址 B.数组下标 C.表头地址 D.下一元素地址7、若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用( )存储方式最节省时间A.顺序表 B.双链表 C.带头结点的双循环链表 D.单循环链表8、下列各种排序算法中平均时间复杂度为O(n2)是( ) A. 快速排序 B. 堆排序 C. 归并排序 D. 冒泡排序9、设散列表中有m个存储单元,散列函数H(key)= key % p,则p最好选择( ) A. 小于等于m的最大奇数 B. 小于等于m的最大素数 C. 小于等于m的最大偶数 D. 小于等于m的最大合数10、字符串的长度是指( ) A. 串中不同字符的个数 B. 串中不同字母的个数C. 串中所含字符的个数 D. 串中不同数字的个数11、设指针变量top指向当前链式栈的栈顶,则删除栈顶元素的操作序列为( )。
A. top=top+1; B. top=top-1; C. top->next=top; D. top=top->next;12、二叉排序树可以得到一个从小到大的有序序列 ) A. 先序遍历 B. 中序遍历 C. 后序遍历 D. 层次遍历13、时间复杂度不受数据初始状态影响而恒为O(nlog2n)的是( ) A. 堆排序 B. 冒泡排序 C. 希尔排序 D. 快速排序14、设一个有序的单链表中有n个结点,现要求插入一个新结点后使得单链表仍然保持有序,则该操作的时间复杂度为( ) A. O(log2n) B. O(1) C. O(n2) D. O(n) 15、设一棵二叉树的深度为k,则该二叉树中最多有( )个结点 A. 2k-1 B. 2k C. 2k-1 D. 2k-1 16、设某有向图的邻接表中有n个表头结点和m个表结点,则该图中有( )条有向边 A. n B. n-1 C. m D. m-117、已知一算术表达式的中缀形式为 A+B*C-D/E,后缀形式为ABC*+DE/-,其前缀形式为( )A.-A+B*C/DE B. -A+B*CD/E C.-+*ABC/DE D. -+A*BC/DE18、设某强连通图中有n个顶点,则该强连通图中至少有( )条边。
A. n(n-1) B. n+1 C. n D. n(n+1)19、设一组初始记录关键字序列(5,2,6,3,8),以第一个记录关键字5为基准进行一趟快速排序的结果为( ) A. 2,3,5,8,6 B. 3,2,5,8,6 C. 3,2,5,6,8 D. 2,3,6,5,820、设无向图的顶点个数为n,则该图最多有( )条边A.n-1 B.n(n-1)/2 C. n(n+1)/2 D.n2得分评卷人二、填空题(每空2分,共20分)1、数据结构中评价算法的两个重要指标是 2、已知如下程序段FOR i:= n DOWNTO 1 DO {语句1}BEGIN x:=x+1; {语句2}FOR j:=n DOWNTO i DO {语句3} y:=y+1; {语句4}END;语句3执行的频度为 3、解决散列表冲突的两种方法是 。
4、判断一个无向图是一棵树的条件是 5、设一棵二叉树的前序序列为ABC,则有 种不同的二叉树可以得到这种序列6、设F和R分别表示顺序循环队列的头指针和尾指针,则判断该循环队列为空的条件为 7、设有一个n阶的下三角矩阵A,如果按照行的顺序将下三角矩阵中的元素(包括对角线上元素)存放在n(n+1)个连续的存储单元中,则A[i][j]与 A[0][0]之间有 个数据元素8、已知8 个数据元素为(34,76,45,18,26,54,92,65)按照依次插入结点的方法生成一棵二叉排序树,则该树的深度为__ __9、在一棵完全二叉树中,若编号为 i的结点有右孩子,则该右孩子结点的编号为___ _______10、下面程序段的时间复杂度是 。
i = 0; while(i<=N) i = i * 3;得分评卷人三、判断题(每小题1分,共10分)1、顺序存储方式插入和删除时效率太低,因此它不如链式存储方式好 ( )2、向二叉排序树中插入一个结点需要比较的次数可能大于该二叉树的高度 )3、用邻接矩阵法存储一个图所需的存储单元数目与图的边数无关4、顺序存储方式只能用于存储线性结构 )5、完全二叉树中的叶子结点只可能在最后两层中出现 )6、无环有向图才能进行拓扑排序 )7、完全二叉树一定是满二叉树,满二叉树不一定是完全二叉树 )8、对链表进行插入和删除操作时不必移动链表中结点 ( )9、一棵哈夫曼树中不存在度为1 的中间结点 )10、强连通图的各顶点间均可达 )得分评卷人四、程序填空题(每个空1分,共10分)1、将二叉树bt中每一个结点的左右子树互换的C语言算法如下,其中ADDQ(Q,bt),DELQ(Q),EMPTY(Q)分别为进队,出队和判别队列是否为空的函数,请填写算法中得空白处,完成其功能typedef struct node{int data ; struct node *lchild, *rchild; }btnode; void EXCHANGE(btnode *bt){btnode *p, *q; if (bt){ADDQ(Q,bt); while(!EMPTY(Q)) {p=DELQ(Q); q= (1)_; p->rchild= (2) ; (3) =q;if(p->lchild) (4) ; if(p->rchild) (5) ;}}}2、下列程序判断字符串s 是否对称,对称则返回1,否则返回0;如 f("abba")返回1,f("abab")返回0; int f( (1) ) { int i=0,j=(2); while (s[j]) (3)__; for(j--; i 8分)2、试编写一个N个不相同整数的升序列,对于任一给定的整数,求与上述数列中数值最接近的整数的下标索引算法12分) 。
