2017年11月 程序员 上午题之十三
摘要:对于【程序员】软考考试而言,真题无疑是最重要的学习资料之一。在软考备考过程中,吃透真题、掌握真题所考知识点、熟悉真题的出题思路,对我们提升分数的效果是最明显的,通过对真题的反复练习,还可以查漏补缺。今天,给大家带来【2017年11月 程序员 上午题】部分真题的详解,一起来看看吧~1、对于初始为空的栈S,入栈序列为a、b、c、d,且每个元素进栈、出栈各1次。若出栈的第一元
1、对于初始为空的栈S,入栈序列为a、b、c、d,且每个元素进栈、出栈各1次。若出栈的第一元素为d,则合法的出栈序列为( )。
A、 d c b a
B、 d a b c
C、 d c a b
D、 d b c a
答案:A
答题解析:
略
2、对关键码序列(9,12,15,20,24,29,56,69,87)进行二分查找(折半查找),若要查找关键码15;则需依次与( )进行比较。
A、 87、29、15
B、 9、12、15
C、 24、12、15
D、 24、20、15
答案:C
答题解析:
二分法查找(折半查找)的基本思想是:(设R[low,„,high]是当前的查找区)
(1)确定该区间的中点位置:mid=[(low+high)/2];
(2)将待查的k值与R[mid].key比较,若相等,则查找成功并返回此位置,否则需确定新的查
找区间,继续二分查找,具体方法如下。 若R[mid].key>k,则由表的有序性可知R[mid,„,n].key
均大于k,因此若表中存在关键字等于k的结点,则该结点必定是在位置mid左边的子表R[low,„,mid–1]
中。因此,新的查找区间是左子表R[low,„,high],其中high=mid–1。 若R[mid].key<k,则要查找
的k必在mid的右子表R[mid+1,„,high]中,即新的查找区间是右子表R[low,„,high],其中low=mid+1。 若R[mid].key=k,则查找成功,算法结束。
(3)下一次查找是针对新的查找区间进行,重复步骤(1)和(2)。
(4)在查找过程中,low逐步增加,而high逐步减少。如果high<low,则查找失败,算法结束
3、对关键码序列(12,24,15,56,20,87,69,9)采用散列法进行存储和查找,并设散列函数为H(Key)=Key%11(%表示整除取余运算)。采用线性探查法(顺序地探查可用存储单元)解决冲突所构造的散列表为( )。 A. B. C.D.
A、 A
B、 B
C、 C
D、 D
答案:B
答题解析:
散列函数为H(Key)=KeyMOD11(MOD表示整除取余运算),因此只需要对线性表类数据分别与7进行取余运算。
12,24,15,56,20,87,69,9与11取余分别得到:1,2,4,1,9,10,3,9,按照序列依次存储到相应位置,若出现冲突则往后顺延
查看完整试题>>>
软考资料: 2024年软考论文范文> 软考考试核心重点难点汇总> 查看更多>
备考刷题:章节练习+每日一练> 软考历年试题+模拟题>查看更多>