2019年11月程序员模拟题上午(一)之十一
摘要:对于【程序员】软考考试而言,试题无疑是最重要的学习资料之一。在软考备考过程中,吃透试题、掌握试题所考知识点、熟悉试题的出题思路,对我们提升分数的效果是最明显的,通过对试题的反复练习,还可以查漏补缺。今天,给大家带来【2019年11月程序员模拟题上午(一)】部分试题的详解,一起来看看吧~1、若线性表采用链式存储结构,则适用的查找方法为 ( ) 。A、 随机查找 B、 散列
1、若线性表采用链式存储结构,则适用的查找方法为 ( ) 。
A、 随机查找
B、 散列查找
C、 二分查找
D、 顺序查找
答案:D
答题解析:
链式存储结构的基本特点是结点之间通过指针链接,常见的有单链表、循环链表和双向链表,如下图(a)、(b)、(c)所示,通常设置一个指针指向链表中的某个结点并从该结点出发开始访问链表中的元素。
随机查找表中元素时,访问表中任一元素所需时间与元素的位置和排列次序无关。
以散列方式存储和查找元素时,元素的存储位置与其关键字相关。
二分查找只能在有序顺序表中进行。
由于链表中访问元素只能通过取得元素所在的结点的指针进行,因此只能顺序查找表中的元素,即要访问元素ai,必须顺次遍历表中的a1,a2,…,ai-1等元素。
2、字符串“computer”中长度为3的子串有 ( ) 个。
A、 4
B、 5
C、 6
D、 7
答案:C
答题解析:由串中任意长度的连续字符构成的序列称为子串。对于字符串“computer”,长度为 3的子串分别为“com”、“omp”、“mpu”、“put”、“ute”、“ter”。
3、可以用栈来检查算术表达式中的括号是否匹配。分析算术表达式时,初始栈为空,从左到右扫描字符,遇到字符“(”就将其入栈,遇到“)”就执行出栈操作。对算术表达式“(a+b*(a+b))/c)+(a+b)”,检查时,(请作答此空);对算术表达式“((a+b/(a+b)-c/a)/b”,检查时,( )。这两种情况都表明所检查的算术表达式括号不匹配。
A、 栈为空却要进行出栈操作
B、 栈已满却要进行入栈操作
C、 表达式处理已结束,栈中仍留有字符“(”
D、 表达式处理已结束,栈中仍留有字符“)”
答案:A
答题解析:
对算术表达式(a+b*(a+b))/c)+(a+b)进行括号检查时,栈操作的顺序为:
入栈,入栈,出栈,出栈,出栈,……
当需要进行第三次出栈操作时,发现栈已空,已不可能完成出栈操作。
对算术表达式((a+b/(a+b)-c/a)/b进行括号检查时,栈操作的顺序为:
入栈,入栈,入栈,出栈,出栈
第1次出栈操作取出的是第3次刚入栈的“(”,第2次出栈操作取出的是第2次入栈的“(”。直到表达式检查结束,第1次入栈的“(”仍没有取出,因此,表达式中的括号并不匹配。
本例是栈的重要应用之例。编译程序中常用栈来检查语句(或程序)中的括号是否匹配。
在日常生活中,当人们进入一个复杂的大院时,需要多次进门,多次出门。每次出门,总是退出最近进门的院。在同一位置堆积货物时,总是先取最近刚放上的货。所以,栈的应用也是比较常见的。可以用这种日常生活中的例子来形象地理解栈的操作。
查看完整试题>>>
软考资料: 2024年软考论文范文> 软考考试核心重点难点汇总> 查看更多>
备考刷题:章节练习+每日一练> 软考历年试题+模拟题>查看更多>