2018年安徽农业大学信息与计算机学院829数据结构考研核心题库
● 摘要
一、单项选择题
1. 若某文件系统索引结点(inode)中有直接地址项和间接地址项, 则下列选项中, 与单个文件长度无关的因素是( )
A. 索引结点的总数
B. 间接地址索引的级数
C. 地址项的个数
D. 文件块大小
【答案】A
【解析】根据文件长度与索引结构的关系可知, 只有选项A 是与单个文件长度无关的。
2. 数据序列(8,9,10,4,5,6,20,1,2) 只能是下列排序算法中的( )的两趟排序后的结果。
A. 选择排序
B. 起泡排序
C. 插入排序
D. 堆排序
【答案】C
【解析】选择排序、起泡排序和堆排序两趟排序后,在序列的某一端应该有序列的两个最大值或者最小值。
3. 有n(n>0) 个分支结点的满二叉树的深度是( )。
A.n 2﹣l
B.log 2(n+1) +1
C.log 2(n+1)
D.log 2(n—1)
【答案】C
【解析】满二叉树的结点总数=分支的结点总数+非分支的结点总数。由于此树为满二叉树,
所以非分支的结点总数为1,所以满二叉树共有n +1个结点,所以满二叉树的深度为log 2 (n+1) 。
4. 若一个栈以向量 存储,初始栈顶指针top 为n+1,则下面X 入栈的正确操作是( )。
A.top :=top +l ;V[top]:=x
B.V[top]:=x ;top :=top +l
C.top :=top ﹣l ;V[top]:=x
D.V[top]:=x ;top :=top ﹣l
【答案】C
【解析】题中初始栈顶指针top 为n +1,而栈顶指针又位于最大下标以上,此时入栈应进行先减一操作。
5. 若某单处理器多进程系统中有多个就绪态进程, 则下列关于处理机调度的叙述中, 错误的是( )。
A. 在进程结束时能进行处理机调度
B. 创建新进程后能进行处理机调度
C. 在进程处于临界区时不能进行处理机调度
D. 在系统调用完成并返回用户态时能进行处理机调度
【答案】C 。
【解析】对于A 、B 、D 显然是可以进行处理机调度的, 对于C , 当进程处于临界区时, 只要不破坏临界资源的使用规则, 是不会影响处理机调度的, 比如, 通常访问临界资源可能是慢速的外设(如打印机) , 如果在进程访问打印机时, 不能处理机调度, 那么系统的性能将是非常低的。几种不进行处理机调度的情况如下:
①在处理机中断的过程中;
②进程在操作系统内核程序临界区中;
③其他需要完全屏蔽中断的原子操作过程中。
6. 数组通常具有的两种基本操作是( )。
A. 查找和修改
B. 查找和索引
C. 索引和修改
D. 建立和删除
【答案】A
【解析】数组中的元素是顺序存放的,通过下标可以很好地查找数组元素,同时通过对应的指针可以修改数组元素的值,因此数组通常具有的两种基本操作是查找和修改。根据数组的性质,数组通常具有的两种基本运算是排序和查找。
7. 下列关于虚拟存储的叙述中, 正确的是( )。
A. 虚拟存储只能基于连续分配技术
B. 虚拟存储只能基于非连续分配技术
C. 虚拟存储容量只受外存容量的限制
D. 虚拟存储容量只受内存容量的限制
【答案】D 。
【解析】所谓虚拟存储, 是指运行的进程不必全部装入内存, 只需要部分装入便可以开始运行的一种技术, 在运行过程中, 当所需要的代码部分不在内存时, 通过一种技术(例如缺页中断技术) , 将所需要的页面调入内存, 从而继续运行。虚拟存储可以在较少的内存中运行较大的程序。但是需要有较大的外存以及相应的软、硬件机制配合才能实现。虚拟存储器可以连续分配也可以非连续分配, 虚拟存储器和外存大小没有关系, 所以选项中的A , B , C 都是错误的, 所以答案是D 项。
8. 在一棵度为4的树T 中, 若有20个度为4的结点, 10个度为3的结点, 1个度为2的结点, 10个度为1的结点, 则树T 的叶结点个数是( )。
A.41
B.82
C.113
D.122
【答案】B
【解析】根据二叉树的性质3的推广公式:
式, 即
。
树T 的叶子结点的个数是82。
9.
将一个的三对角矩阵,
按行优先存入一维数组
A 6665(即该元素下标i =66,j =65) ,在B 数组中的位置K 为( )。
A.198
B.195
C.197
【答案】B
【解析】将对角矩阵a[i][j]存入b[k],三对角矩阵压缩地址计算公式如下:k =2i +j ﹣2。
10.某计算机的Cache 共有16块,采用2路组相联映射方式(即每组2块). 每个主存块大小为32字节,按字节编址. 主存129号单元所在主存块应装入到的Cache 组号是( ).
A.0
B.2
C.4
D.6
【答案】C
【解析】首先根据主存地址计算所在的主存块号,然后根据组相联映射的映射关系K =ImodQ(K代表Cache 的组号,I 代表主存的块号,Q 代表Cache 的组数) 来计算Cache 的组号. 由于每个主存块大小为32字节,按字节编址,那么主存129号单元所在的主存块号是4,Cache 共有16块,采用2路组相联映射方式(即每组2块) ,故Cache 有8组,按照上面的公式可以计算得到Cache 的组号=4mod8=4.
可直接在将数据带入公中,A 中元素