2021年5月程序员模拟题上午(二)之十九
摘要:对于【程序员】软考考试而言,试题无疑是最重要的学习资料之一。在软考备考过程中,吃透试题、掌握试题所考知识点、熟悉试题的出题思路,对我们提升分数的效果是最明显的,通过对试题的反复练习,还可以查漏补缺。今天,给大家带来【2021年5月程序员模拟题上午(二)】部分试题的详解,一起来看看吧~1、在第一趟排序之后,一定能把数据表中最大或最小元素放在其最终位置上的排序算法是 &nb
1、在第一趟排序之后,一定能把数据表中最大或最小元素放在其最终位置上的排序算法是 (55) 。
A、冒泡排序
B、直接插入排序
C、快速排序
D、归并排序
答案:A
答题解析:
第i趟冒泡排序是从第1个元素到第n-i+1个元素依次比较相邻两个元素的关键字,并在“逆序”时交换相邻元素,其结果是这n-i+1个元素中最大的元素被交换到第n-i+1的位置上。那么第一趟排序之后,就一定能把数据表中最大的元素放在其最终有序位置上。而其他排序算法均不能实现此要求。
举例说明:要排序数组:int[] arr={6,3,8,2,9,1};
第一趟排序:
第一次排序:6和3比较,6大于3,交换位置: 3 6 8 2 9 1
第二次排序:6和8比较,6小于8,不交换位置:3 6 8 2 9 1
第三次排序:8和2比较,8大于2,交换位置: 3 6 2 8 9 1
第四次排序:8和9比较,8小于9,不交换位置:3 6 2 8 9 1
第五次排序:9和1比较:9大于1,交换位置: 3 6 2 8 1 9
第一趟总共进行了5次比较, 排序结果: 3 6 2 8 1 9
可以看出第一趟排序之后,9被排列在最终位置。
2、为了描述n个人之间的同学关系,可用(56) 结构表示。
A、线性表
B、树
C、图
D、队列
答案:C
答题解析:
在线性表中,数据元素之间仅有线性关系,每个数据元素只有一个直接前驱和一个直接后继:在树形结构中,数据元素之间有着明显的层次关系,并且每一层上的数据元素可自能和下一层中多个元素有关系,但只能和上一层中一个元素有关系;而在图结构中,结点之间的关系可以是任意的,图中任意两个数据元素之间都可能有关系。
在描述n个人之间的同学关系时,使用图这种数据结构表示是较合适的。
3、判断一个表达式中左右括号是否匹配,采用(57) 实现较为方便。
A、线性表的顺序存储
B、队列
C、线性表的链式存储
D、栈
答案:D
答题解析:
栈可以实现表达式中的括号匹配问题。当扫描到左括号时,则将其压入栈中;当扫描到右括号时,从栈顶取出一个左括号。如果能够匹配,比如“(”跟“)”匹配,“[”跟“]”匹配,“{”跟“}”匹配,则继续扫描剩下的字符串。如果扫描的过程中,遇到不能配对的右括号,或者栈中没有数据,则说明为非法格式。
当所有的括号都扫描完成之后,如果栈为空,则说明字符串为合法格式;否则,说明有未匹配的左括号,为非法格式。
查看完整试题>>>
软考资料: 2024年软考论文范文> 软考考试核心重点难点汇总> 查看更多>
备考刷题:章节练习+每日一练> 软考历年试题+模拟题>查看更多>