
计算机学科专业基础综合试卷
一、单项选择题:1~40小题。每小题2分,共80分。在每小题给出的四个选项中,请选出一项最符合题目要求的。
1、设n是描述问题规模的非负整数,下面程序片段的时间复杂度是(A)
x=2;
while (x A、O(logn) B、O(n) C、O(nlogn) D、O(n2) 2、元素a,b,c,d,e依次进入初始为空的栈中,若元素进栈后可停留、可出栈,直到所有元素都出栈,则在所有可能的出栈序列中,以元素d开头的序列个数是(B) A、3 B、4 C、5 D、6 3、已知循环队列存储在一维数组A[0…n-1]中,且队列非空时front和rear分别指向队头元素和队尾元素。若初始时队列为空,且要求第1个进入队列的元素存储在A[0]处,则初始时front和rear的值分别是(B)。 A、0,0 B、0,n-1 C、n-1,0 D、n-1,n-1 4、若一模完全二叉树有768个结点,则该二叉树中叶结点的个数是(C) A、257 B、258 C、384 D、 385 5、若一棵二叉树的前序遍历序列和后序遍历序列分别为1,2,3,4和4,3,2,1,则该二叉树的中序遍历序列不会是(C) A、1,2,3,4 B、2,3,4,1 C、3,2,4,1 D、4,3,2,1 6、已知一棵有2011个结点的树,其叶结点个数为116,该树对应的二叉树中无右孩子的结点个数是(D) A、 115 B、116 C、 15 D、16 7、对于下列关键字序列,不可能构成某二叉排序树中一条查找路径的序列是(A) A、95,22,91,24,94,71 B、92,20,91,34,88,35 C、21,,77,29,36,38 D、12,25,71,68,33,34 8、下列图的叙述中,正确的是(C) (1)、回路是简单路径 (2)、存储稀疏图,用邻接矩阵比邻接表更省空间 (3)、若有向图中存在拓扑序列,则该图不存在回路 A、仅2 B、仅1、2 C、 仅3 D、仅1、3 9、为提高散列(Hash)表的查找效率,可以采取的正确措施是(D) (1)、增大装填因子 (2)、设计冲突(碰撞)少的散列函数 (3)、处理(碰撞)时避免产生聚集(堆积)现象 A、仅1 B、仅2 C、 仅1、2 D、仅2、3 10、为实现快速排序算法,待排序序列宜采用的存储方式是(A) A、顺序存储 B、 散列存储 C、链式存储 D、索引存储 11、已知序列25,13,10,12,9是大根堆,在序列尾部插入新元素18,将其再调整为大根堆,调整过程中元素之间进行的比较次数是(B) A、 1 B、2 C、4 D、5 二、综合应用题:41~47小题,共70分。 41、(8分)已知有6个顶点(顶点编号为0-5)的有向带权图G,其邻接矩阵A为上三角矩阵,按行为主序(行优先)保存在如下的一维数组中。 (1)写出图G的邻接矩阵A (2)画出有向带权图G (3)求图G的关键路径,并计算该关键路径的长度(16) 42、(15分)一个长度为L(L>=1)的长序序列S,处在第┌L/2┐个位置的数称为S的中位数。例如,若序列S1=(11,13,15,17,19),则S1的中位数是15,两个序列的中位数是含它们所有元素的升序序列的中位数。例如,若S2=(2,4,6,8,20),则S1和S2的中位数是11。现在有两个等长升序序列A和B,试设计一个在时间和空间两方面都尽可能高效的算法,找出两个序列A和B的中位数。要求: (1)给出算法的基本设计思想 (2)根据设计思想,采用C或C++或JAVA语言描述算法,关键之给出注释。 (3)说明你所设计算法的时间复杂度和空间复杂度。 解答: (1)算法的基本设计思想如下: 分别求出序列A和B的中位数,设为a和b,求序列A和B的中位数过程如下: 1若a=b,则a或b即为所求中位数,算法结束; 2若a3若a>b,则舍弃序列A中较大的一半,同时舍弃序列B中较小的一半,要求舍弃的长度相等; 在保留的两个长序序列中,重复过程①②③,直到两个序列中只含有一个元素时为止,较小者即为所求的中位数。 (2)算法的描述如下: int midvalue(int a[], int b[], int L) { s1=s2=0; e1=e2=L-1; while(s1 len=e1-s1+1; m1=s1+(e1-s1)/2; m2=s2+(e2-s2)/2; if (a[m1]==b[m2]) return a[m1]; else if (a[m1]< b[m2]) if (len%2) { s1=m1; e2=m2;} else { s1=m1+1; e2=m2-1; } else if (len%2) { s2=m2; e1=m1;} else { s2=m2+1; e1=m1-1; } } //end while return a[s1]; }//end midvalue() (3)算法的时间复杂度为O(L)和空间复杂度为O(1)
要求:4 6 ∞ ∞ ∞ 5 ∞ ∞ ∞ 4 3 ∞ ∞ 3 3
