1、 (b)紧凑结构和非紧凑结构;(c)线性结构和非线性结构; (d)内部结构和外部结构;12.若已知一个栈的入栈序列是1,2,3,n,其输出序列为p1,p2,p3,pn, 那么p1=n;pi为:(a)i; (b)n=i; (c)n-i+1; (d)不确定;13.判断一个循环队列QU(最多元素m0)为空的条件是:(a)QU-front = = QU-rear; (b) QU-front! = QU-(c) QU-front = = (QU-rear+1)%m0; (d) QU-front ! = (QU-14.表达式a*(b+c)-d的后缀表达式是(a)abcd*+-; (b)abc+*d-; (
2、c)abc*+d-; (d)*-a+bc;15.在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入s结点,则执行:(a)s-next = p-next; p-next = s;(b)p -next = s- s-next = p;(c) q-next =s; (d) p-next = q;16.在一个链队中,假设f和r分别为队首和队尾指针,则插入s所指结点的运算是:(a) f-f=s;(b) f-r=s;(c) s-next = r;(d) s-next = f;17.将递归算法转换成对应的非递归算法时,通常需要使用 (a) 栈 (b) 队列(c) 链表 (d) 树18.
3、树最适合用来表示 (a) 有序数据元素 (b) 无序数据元素(c) 元素之间具有分支层次关系的数据 (d) 元素之间相关联的数据19.要求一个线性表既能较快地查找,又能适应动态变化的要求,则可采用的查找方法是:(a) 分块查找 (b) 顺序查找(c) 二分查找 (d) 散列查找20.A node in a tree that does not have any children is called (a) a leaf; (b) an internal node; (c) a root; (d) an empty node;21.对于一棵深度为2(仅含根结点的二叉树高度为零)的二叉树,它的总节
4、点数: (a) 至多7个 (b)至多2个 (c) 节点数不限 (d) 至多4个 22.下面的伪码是对二叉树操作算法的片段: print( node ) if( there is a left child ) print( left child ); print data; if( there is a right child ) print( right child ); 这个算法是:(a)折半查找; (b)前序遍历; (c)中序遍历; (d)后序遍历;23.下面哪个序列不是折半查找(二分查找)所访问的数值序列(a) 10, 20, 30, 40, 50; (b) 50, 40, 30, 20
5、, 10; (c) 10, 20, 30, 15, 18; (d) 30, 35, 40, 45, 4224.递归函数可以调用自身多少次?(a) 至多1次; (b) 任意次数; (c) 0 次; (d) 至多2次;25.分析下面函数:int f( int n ) if( n = = 0 ) return 0; if( (n & 1) = = 0 ) return f(n/2); return f(n/2) + 1;调用函数f(10)的返回值是:(a) 1; (b) 3; (c) 5; (d) 2;26.假如n,m=0,那么下面函数的功能是: int ff( int n, int m ) if(
6、 n = 0 ) return m; return ff( n-1, m*n );(a) 计算m * (n!); (b) 计算最大公约数; (c)计算最小公倍数; (d) 计算(m + n)!;27.总的来说,哈希方法(hashing,也称散列方法)的主要问题在于:(a)哈希函数难以计算; (b)哈希表的存取速度慢;(c)会发生冲突; (d)哈希表占很多内存;28.对于一个大小为m含有n项的哈希表,它的负载(load)因子是:(a) m - n; (b) n + m; (c) m/n; (d) n/m ;29.下面对p的声明,那一个是指向整数的指针:(a) int *p; (b) int p;
7、 (c) int &p; (d) int *p;30.假设Thing是一个用户定义的类,B是Thing的一个实例,对于下面的代码段 Thing A = B用到了类Thing中的哪一个成分:(a)赋值操作符; (b)析构函数; (c)构造函数; (d)复制构造函数;31.下面对类的部分描述用于说明一种用户定义的实数实现: class RealNumber . RealNumber( float x ); RealNumber( float x, float y=0 ); ;这段代码可能错在哪里?(a)在构造函数中不允许时有缺省值; (b)没有错误;(c)第二个构造函数与第一个不一致; (d)用两
8、个实数参数无法创建一个实数;32.面向对象的程序设计最适合下面哪一种开发要求:(a)程序是一个完整的程序模块;(b)提供完善的代码复用;(c)获得高效率;(d)对封装的需求;33.对于有n个节点e条边的图,如果用邻接表表示,则计算全部入度的时间复杂度是: (a) O(n + e); (b) O(n2); (c) O(n3); (d) O(n * e) ;34.结定结点的关键字序列(、),对它按字母的字典顺序进行排列, 快速排序的第一趟结果是:(a)(C、B、D、A、F、E、I、J、G、H) (b)(C、B、D、A、E、F、I、G、J、H) (c)(B、A、D、E、F、G、I、J、H、C) (d
9、)(B、C、D、A、E、F、I、J、G、H)35.计算机算法是指(a) 数值计算方法 (b) 对抽象数据结构的操作方法(c) 非数值计算方法 (d) 解决问题的有限运算序列36、对于顺序存储的队列,存储空间大小为n,头指针为F,尾指针为R。若在逻辑上看一个环,则队列中元素的个数为.( ) (a) R-F (b).n+R-F (c).(R-F+1)mod n (d).(n+R-F)mod n37、链表不具备的特点是( )。A可随机访问任何一个元素 B插入、删除操作不需要移动元素 C无需事先估计存储空间大小 D所需存储空间与线性表长度成正比 38、对矩阵压缩存储的主要目的是( )。A方便运算 B节
10、省存储空间 C 降低计算复杂度 D提高运算速度 39、判断“链式队列为空 ”的条件是 ( )(front为头 指针,rear为尾指针)。Afront=NULL Brear=NULL Cfront=rear Dfront!=rear 40、关于字符串的判定语句中正确的是( )。A字符串是一种特殊的线性表 B串的长度必须大于零 C字符串不属于线性表的一种 C空格字符组成的串就是空串 41、有100个结点的树中,其边的数目为( )。A101 B100 C99 D98 42、在程序的执行过程中,用 ( )结构可实现嵌套调用函数的正确返回。A队列 B栈 C树 D图 43、已知递归函数f(n)的功能是计算
11、1+ 2+n,且n1,应采用的代码段是( )。Aif n=l then return 1 else return n+f(n-1) Bif n=l then return 1 else return n+f(n+1) Cif n=l then return 0 else return n+f(n-1) Dif n=l then return 0 else return n+f(n+1)44、将一个三对角矩阵A l.100,1.100中的元素按行存储在一维数组Bl.298中,矩阵A中的元素A66,65在数组B中的下标为 ( )。A195 B196 C197 D198 45、给定一个有n个元素的线
12、性表。若采用顺序存储结构,则在等概率前提下,向其插入一个元素需要移动的元素个数平均为 ( )。An+l Bn/2 C(n+l)/2 D.n 46、( )是线性结构的数据结构。A广义表 B高维数组 C双端队列 D二叉树 47、结论“( )”是正确的。A二叉树的度为2 B树中结点的度可以小于2 C二叉树中至少有一个结点的度为2 D二叉树中任何一个结点的度都为2 48、某线性表最常用的运算是插入和删除,插入运算是指在表尾插入一个新元素。删除运算是指删除表头第一个元素,那么采用( )存储方式最节省运算时间。A仅有尾指针的单向循环链表 B仅有头指针的单向循环链表 C单向链表 D双向链表 49、表达式采用
13、逆波兰式表示时可以不用括号,而且可以用基于( 1 )的求值过程进行计算。与逆波兰式ab+cd+*对应的中缀表达式是( 2 )。(1)A栈 B队列 C符号表 D散列表 (2)Aa+b+c*d B(a +b)*c+d C.(a+b)*(c+d) Da+b *c+d50、设数组a3.16,5.20的元素以列为主序存放,每个元素占用两个存储单元,则数组元素ai,j(3i16,5j20)的地址计算公式为( )。Aa-118+2i+28j Ba-116+2i+28j Ca-144+2i +28j Da-146+2i+28j51.一个栈的输入序列为1,2,3,4,下面哪一个序列不可能是这个栈的输出序列?(
14、) A. 1,3,2,4 B. 2,3,4,1 C. 4,3,1,2 D. 3,4,2,152.下列排序方法中,哪一种方法的比较次数与纪录的初始排列状态无关? A. 直接插入排序 B. 起泡排序 C. 快速排序 D. 直接选择排序53.对n个记录的文件进行二路归并排序,总的时间代价为 A. O(nlog2n) B. O(n2) C. O(log2n) D. O(n)54.若一棵二叉树具有10个度为2的结点,则该二叉树的度为0的结点个数是( ) A. 9 B. 11 C. 12 D. 不确定55.下面关于B树和B+树的叙述中,不正确的是 A. B树和B+树都是平衡的多分树 B. B树和B+树都是
15、可用于文件的索引结构C. B树和B+树都能有效地支持顺序检索 D. B树和B+树都能有效地支持随机检索56在一棵m阶B树中,若在某结点中插入一个新关键字而引起该结点分裂,则此结点中原有的关键字的个数是 。Am Bm 1 Cml Dm257.如果具有n个顶点的图是一个环,则它有( )棵生成树。 An Bn +l Cn-l D2n 58一棵前序序列为1,2,3,4的二叉树,其中序序列不可能是 。 A4,1,2,3 B.4,3,2,1 C.2,4,3,1 D.3,4,2,159具有n个顶点和e条边的图的深度优先搜索算法的时间复杂度为 AO(n) BO(n3) CO(n2) DO(n*e) 60堆排序
16、算法在平均情况下的时间复杂度为 A O(n) BO(nlogn) CO(n2) DO(logn) 61在待排序数据已基本有序的前提下,下述排序方法中效率最高的是 A 直接插入排序 B直接选择排序 C快速排序 D归并排序 62在理想情况下,散列表中查找元素所需的比较次数为 。An BO Cn2 D163. 在数据结构中数据项是有意义的数据的()单位。基本最小最大特殊64. 计算机算法是指数值计算方法 对抽象数据结构的操作方法非数值计算方法 解决问题的有限运算序列65. 串的长度是()。串中不同字符的个数 串中不同字母的个数串中所含字符的个数且字符个数大于0 串中所含字符的个数66. 将递归算法转
17、换成对应的非递归算法时,通常需要使用()。栈 对列链表 树67. 判断一个循环队列QU(最多元素m0)为空的条件是()。QU-rear QU-rearQU-rear+1)%m0 QU-rear+1)%m068. 将一个对称矩阵Al.50,1. .50中的元素按行压缩存储在一维数组B中,数组B的元素总个数为( )。A2500 B1275 C1225 D150069. 在具有100个结点的树中,其边的数目为()。 10110099D9870. 在一个链队中,假设f和r分别为队首和队尾指针,则插入s所指结点的运算是:f-f-s-s-71. 某线性表最常用的运算是插入和删除,插入运算是指在表尾插入一个
18、新元素。删除运算是指删除表头第一个元素,那么采用( )存储方式最节省运算时间。仅有尾指针的单向循环链表 仅有头指针的单向循环链表单向链表 双向链表72. 如果T2是由有序树T转换而来的二叉树,那么T中结点的前序就是T2中结点的()。前序中序后序层中序73. 下面关于B树和B+树的叙述中,不正确的是()。B树和B+树都是平衡的多分树 B树和B+树都是可用于文件的索引结构B树和B+树都能有效地支持顺序检索 B树和B+树都能有效地支持随机检索74. 当序列中的记录基本有序或n值较小时,最佳的排序方法( )。交换排序 堆排序 插入排序 基数排序75. 深度为5的二叉树至多有个结点()。16323110
19、76. 在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入s结点,则执行( )。s-next = sp -next = pq-next = p p-next = q77. 在单向链表的第i个结点前插入新结点时,需预先保留的结点指针是 ( )。指向i结点的指针指向i结点的前趋结点的指针指向i结点的后继结点的指针无需保留78. 在数据结构中为了叙述的方便和避免产生混淆,通常把数据的物理结构统称为()。存储结构逻辑结构线性结构非线性结构79. 下列属于随机存取结构的是()。线性链表顺序表循环链表双向链表80. 下面程序段的时间复杂度为( )。for(i=0;i=n;+i)for
20、(j=0;j1)个结点构成的完全二叉树,其深度为( )。 Log2n +1 Log2n -1 log2n+1 Log2n-184. 对于一棵深度为2的二叉树,它的总结点数:A至多7个 B.至多2个 C. 结点数不限 D. 至多4个 85. 有n个结点的完全二叉树,其最后一个非终端节点为( )。 n/2 n/2 2n 2n86. 对于有n个结点e条边的图,如果用邻接表表示,则计算全部结点入度的时间复杂度是:A.O(n + e) B. O(n2) C. O(n3) D. O(n * e) 87. 下面哪个序列不是折半查找(二分查找)所访问的数值序列( )A.10, 20, 30, 40, 50 B
21、. 50, 40, 30, 20, 10 C.13, 26, 30, 45, 68 D. 30, 50, 40, 45, 4288. 给定结点的关键字序列(、),对它按字母的字典顺序进行排列(选F为枢轴),快速排序的第一趟结果是( )A.(C、B、D、A、F、E、I、J、G、H) B.(C、B、D、A、E、F、I、G、J、H)C.(B、A、D、E、F、G、I、J、H、C) D.(B、C、D、A、E、F、I、J、G、H)89. 总的来说,散列方法(hashing,也称哈希方法)的主要问题在于( )A.哈希函数难以计算 B.哈希表的存取速度慢C.会发生冲突 D.哈希表占很多内存90. 堆是一种特殊
22、的数据结构,下面哪一个是堆( )A.19,75,34,26,97,56 B.97,26,34,75,19,56 C.19,56,26,97,34,75 D.19,34,26,97,56,7591. 对矩阵压缩存储的主要目的是( )。A方便运算B节省存储空间C降低计算复杂度D提高运算速度 92. 在长度为n(n0)的顺序表中插入一个元素时(假设在任何位置上插入或删除元素概率相等),平均要移动的元素个数是( )。n 2n/3 n/2 n/3参考答案:CDBXD DCBDC CCAAC CACDA ACCD26:XCXDD 31:BBABD 36:dABAA 41:CBAAC46:CAA(1)A(2
23、)CX 51:CDABC二、填空题1若一个具有n个结点、k条边的非连通无向图是一个森林(nk),则该森林中必有( n - m )棵树。2. 含有3个2度结点和4个叶结点的二叉树可含( 无穷 )个1度结点。3. 含有2的n次方个结点的二叉树高度至少是( n ),至多是( 2n - 1 )(仅含根结点的二叉树高度为零)。4. 用起泡法对n个关键码排序,在最好情况下,只需做( n-1 )次比较和( 0 )次移动;在最坏的情况下要做( n(n-1)/2 )次比较。5.在用于表示有向图的邻接矩阵中, 对第i行的元素进行累加, 可得到第i 个顶点的( 出/入 )度, 而对第j列的元素进行累加, 可得到第j个顶点的( 入/出 )度。6.一个连通图的生成树是该图的( 极小 )连通子图。若这个连通图有n个顶点, 则它的生成树有( n-1 )条边。7.给定序列100, 86, 48, 73, 35, 39, 42, 57, 66, 21, 按堆结构的定义, 则它一定( 大顶 )堆。8.在进行直接插入排序时, 其数据比较次数与数据的初始排列( 有 )关;而在进行直接选择排序时,其数据比较次数与数据的初始排列( 无 )关。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1