2016年11月 程序员 上午题之十二
摘要:对于【程序员】软考考试而言,真题无疑是最重要的学习资料之一。在软考备考过程中,吃透真题、掌握真题所考知识点、熟悉真题的出题思路,对我们提升分数的效果是最明显的,通过对真题的反复练习,还可以查漏补缺。今天,给大家带来【2016年11月 程序员 上午题】部分真题的详解,一起来看看吧~1、设数组a[0..n-1,0..m-1](n>1,m>1)中的元素以行为主序存
1、设数组a[0..n-1,0..m-1](n>1,m>1)中的元素以行为主序存放,每个元素占用4个存储单元,则数组元素a[i,j](0≤i<n,0≤j<m)的存储位置相对于数组空间首地址的偏移量为(35)。
A、 (j*m+i)*4
B、 (i*m+j)*4
C、 (j*n+i)*4
D、 (i*n+j)*4
答案:B
答题解析:
本题考查数据结构基础知识。
数组a的元素可示意如下。
对于元素按行排列时,其之前有i行且每行有m个元素(行下标为0,1,…,i-1),即i*m个,行下标为i时,排列在a[i,j]切之前的元素有a[i,0],a[i,1],…,a[i,j-1],即j个,所以一共有i*m+j个元素排在a[i,j]之前,因此该元素的存储位置相对于数组空间首地址的偏移量为(i*m+j)*4。
2、线性表采用单循环链表存储的主要特点是(36)。
A、 从表中任一结点出发都能遍历整个链表
B、 可直接获取指定结点的直接前驱和直接后继结点
C、 在进行删除操作后,能保证链表不断开
D、 与单链表相比,更节省存储空间
答案:A
答题解析:
本题考查数据结构基础知识。
不含头结点且有n个元素的单链表和单循环链表分别如下图(a)、(b)所示。在单链表和单循环链表中,由于结点指针域的链接方向都是单方向的,所以对于表中的任意一个结点,都可以直接得到后继结点的指针,要获得前驱结点的指针则需要一个遍历过程。对链表进行删除操作时,只要在修改结点中的指针域之前,暂存其后继结点的指针,就可以将结点重新链接起来与单链表是否循环无关。从链表所需的存储空间来说,它们没有差别。
观察单循环链表可知,从表中任意结点出发,沿着结点间的链接关系都能回到出发的结点,所以从表中任一结点出发都能遍历整个链表。
3、若某线性表长度为n且采用顺序存储方式,则运算速度最快的操作是(37)。
A、 查找与给定值相匹配的元素的位置
B、 查找并返回第i个元素的值(1≤i≤n)
C、 删除第i个元素(1≤i≤n)
D、 在第i个元素(1≤i≤n)之前插入一个新元素
答案:B
答题解析:
本题考查数据结构基础知识。
线性表(a1,a2,…,an)采用顺序存储时占用一段地址连续的存储单元,元素之间没有空闲单元,如下图所示。在这种存储方式下,插入和删除元素都需要移动一部分元素,这是比较耗时的操作。按照序号来查找元素,实际上是直接计算出元素的存储位置,例如,第i个元素ai的存储位置为LOC(ai)=LOC(a1)+(i-1)×L,其中L是每个元素所占用的存储单元数。按照值来查找元素时,需要与表中的部分元素进行比对,相对于按照序号来查找元素,需要更多的时间。
查看完整试题>>>
软考资料: 2024年软考论文范文> 软考考试核心重点难点汇总> 查看更多>
备考刷题:章节练习+每日一练> 软考历年试题+模拟题>查看更多>