最新甘肃省专升本西北师范大学计算机科学与技术习题

精品文档

2011年甘肃省专升本西北师范大学计算机科学与技术习题

班别 学号 姓名 成绩 一、单项选择(每小题2分,共24分)

1.若某线性表的常用操作是取第i个元素及其前趋元素,则采用( A )存储方式最节省时间 A.顺序表 B.单链表 C.双链表 D.单向循环 2.串是任意有限个( B )

A.符号构成的序列 B.字符构成的序列 C.符号构成的集合 D.字符构成的集合 3.设矩阵A(aij,1<=i,j<=10)的元素满足:

aij<>0(i>=j,1<=i,j<=10),aij =0 (i

若将A的所有非0元素以行为主序存于首地址为2000的存储区域中,每个元素占4个单元,则元素A[59]的首地址为( C )

A.2340 B.2336 C.2220 D.2160 4.如果以链表作为栈的存储结构,则退栈操作时( D ) A.必须判别栈是否满干 B.对栈不作任何判别 C.判别栈元素的类型 D.必须判别栈是否空

5.设数组Data[0..m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作的语句为( A )

A.front=(front+1)%(m+1) B.front=(front+1)% m C.rear=(rear+1)% m D. front=front+1 6.深度为6(根的层次为1)的二叉树至多有( B )结点 A.64 B.63 C.31 D.32

7.将含100个结点的完全二叉树从根这一层开始,每层从左至右依次对结点编号,根结点的编号为1。编号为47的结点X的双亲的编号为( C ) A.24 B.25 C.23 D.2无法确定

8.设有一个无向图G=(V,E)和G'=(V',E'),如果G'为G的生成树,则下面不正确的说法是( D ) A.G'为G的子图 B.G'为G的一个无环子图

精品文档

精品文档

C.G'为G的极小连通子图且V'=V D.G'为G的连通分量

9.用线性探测法查找闭散列上,可能要探测多个散列地址,这些位置上的键值( D ) A.一定都是同义词 B.一定都不是同义词 C.都相同 D.不一定都是同义词 10.二分查找要求被查找的表是( C )

A.键值有序的链接表 B.链接表但键值不一定有序表 C.键值有序的顺序表 D.顺序表但键值不一定有序表

11.当初始序列已经按键值有序,用直接插入法对其进行排序,需要比较的次数为( B ) A. n B. n-1 C. log2n D. nlog2n

12.堆是一个键值序列{K1,K2,...,Ki,...,Kn},对i=1,2,...,└ n/2 ┘,满足( A ) A. Ki<=K2i且Ki<=K2i+1(2i+1<=n) B.Ki

二、判断题(正确的在括号内打\错的在括号内打\每小题1分,共10分) 1.双链表中至多只有一个结点的后继指针为空( V )

2.在循环队列中,front指向队列中第一个元素的前一位置,rear指向实际的队尾元素,队列为满的条件是front=rear( X )

3.对线性表进行插入和删除操作时,不必移动结点。( X ) 4.队可以作为对树的层次遍历的一种数据结构。( V )

5.在一个有向图的拓朴序列中,若顶点a在顶点b之前,则图中必有一条弧。( X ) 6.对有向图G,如果从任一顶点出发进行一次深度优先或广度优先搜索就能访问每个顶点,则该图一定是完全图。( X )

7.\二分查找法\必需在有序表上进行。( V )

8.向二叉排序树中插入一个新结点时,新结点一定成为二叉排序树的一个叶子结点。( V ) 9.键值序列{A,C,D,B,E,E,F}是一个堆。( X )

10.在二路归并时,被归并的两个子序列中的关键字个数不一定相等。( V ) 三、填空题(每空2分,共24分)

1.设r指向单链表最后一个结点,要在最后一个结点之后插入s所指的结点,需执行的三条语句是 r->next=s ; r=s; r->next=NULL 。 精品文档

2

精品文档

2.在带头结点单链表L中,表空的条件是 L->next==NULL

3.设一个链栈的栈顶指针为ls,栈中结点格式为 info│link ,栈空的条件是 ls==NULL 。若栈不空,则退栈操作为 p=ls; ls=ls->link ;free(p). 4.已知一棵度为3的树有2个度为1的结点,3个度为2的结点,4个度为3的结点,则该树中有 12 个叶子结点。

5.树有三种常用的存储结构,即孩子链表法,孩子兄弟链表法和 双亲表示法 。 6.n-1个顶点的连通图的生成树有 n-2 条边。

7.一个有向图G中若有弧,则在图G的拓朴序列中,顶点Vi,Vj和Vk的相对位置为 Vj->Vi->Vk 。

8.设表中元素的初始状态是按键值递增的,分别用堆排序、快速排序、冒泡排序和归并排序 方法对其进行排序(按递增顺序), 冒泡排序 最省时间, 快速排序 最费时间。 9.下面是将键值为X的结点插入到二叉排序树中的算法,请在划线处填上适当的内容。 typedef struct node *pnode struct node { int key; pnode left,right; }

void searchinsert(int x; pnode t); //t为二叉排序树根结点的指针// { if( t=NULL )

{ p=malloc(size); p->key=x; p->left=nil; p->right=nil; t=p;} else if (xkey) searchinsert(x,t->left) else searchinsert(x,t-> right) ; }

四、应用题(本题共28分)

1.给定权值{5,10,12,15,30,40},构造相应的哈夫曼树,要求写出构造步骤。(4分) 哈夫曼树构造步骤:

精品文档

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4