计算机二级考试公共基础知识冲刺试题及答案3Word文档下载推荐.docx
《计算机二级考试公共基础知识冲刺试题及答案3Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《计算机二级考试公共基础知识冲刺试题及答案3Word文档下载推荐.docx(11页珍藏版)》请在冰豆网上搜索。
![计算机二级考试公共基础知识冲刺试题及答案3Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2022-10/29/3ecd07bf-a3ac-4053-b560-1a82fa690ff4/3ecd07bf-a3ac-4053-b560-1a82fa690ff41.gif)
在直接插入排序算法中,每次插入一个数,使有序序列只增加1个节点,并且对插入下一个数没有提供任何协助。
如果比较相隔较远距离(称为增量)的数,使得数移动时能跨过多个元素,则实行一次比较就可能消除多个元素交换。
D.L.shell于1959年在以他名字命名的排序算法中实现了这个思想。
算法先将要排序的一组数按某个增量d分成若干组,每组中记录的下标相差d.对每组中全部元素实行排序,然后再用一个较小的增量对它实行,在每组中再实行排序。
当增量减到1时,整个要排序的数被分成一组,排序完成。
下面的函数是一个希尔排序算法的一个实现,初次取序列的一半为增量,
以后每次减半,直到增量为1。
以C语言为例。
voidshell_sort(int*x,intn)
{
inth,j,k,t;
for(h=n/2;
h>
0;
h=h/2)/*控制增量*/
for(j=h;
j {
t=*(x+j);
for(k=j-h;
(k>
=0&
&
tlog2n的最小整数值。
比如n为4,最坏的情况要比较3次;
n为18,最坏的情况要比较5次。
二分法适用于已排序的顺序表(我们二级语言中都是数组),考二级书里的,这里不再罗嗦。
(45)信息隐蔽的概念与下述哪一种概念直接相关______。
A.软件结构定义
B.模块独立性
C.模块类型划分
D.模拟耦合度
(45)
[考点]软件工程基础
模块独立性越强,则信息隐蔽性越好。
举个例,
VB:
在多重窗体设计时,每个窗体里的变量尽量与其它窗体里变量无关,比如少用Public声明的变量,即全局变量,当多个窗体共享全局变量越多时,窗体的独立性就越差。
C:
头文件里的一些函数,一般不用到全局变量,否则在主程序里出乱子的情况很多,我们在模块化开发时,尽量使每个模块独立,强功能内聚,分工明确,调试程序也要方便得多。
C++:
考此项的朋友估计不用我多讲,类的封装性就是一个很好的说明。
(46)面向对象的设计方法与传统的的面向过程的方法有本质不同,它的基本原理是______。
A.模拟现实世界中不同事物之间的联系
B.强调模拟现实世界中的算法而不强调概念
C.使用现实世界的概念抽象地思考问题从而自然地解决问题
D.鼓励开发者在软件开发的绝绝大部分中都用实际领域的概念去思考
(46)
我们举个例,
从各种语言的结构体类型出发,我们知道,结构体中能够定义很多变量,对每个变量执行相同的操作,挨个挨个写出,很麻烦。
假设该结构体有如下变量:
草鱼、田鱼、鲫鱼……
它们都在一口池塘里,现在执行:
它们都上来
传统的程序设计是:
草鱼上来
田鱼上来
鲫鱼上来
……
一条一条都写出,是不是很麻烦?
改进一下,我们用个循环:
n等于从1到10(假设共有10种鱼)
第n种鱼上来
还是很麻烦,现实中我们很易想到用"
面向对象的思想"
,池塘里所有的鱼都是一个结构体变量,名为鱼,执行:
鱼上来
意思即所有的鱼都上来。
现特定于面象对象语言中的类,鱼,就能够看作为一类。
这就属于C项:
使用现实世界的概念抽象地思考问题从而自然地解决问题
这样罗嗦的解释望大家别晕,旨在协助部分人的确难想通的,为应试,你能背下答案也行。
(47)在结构化方法中,软件功能分解属于下列软件开发中的阶段是______。
A.详细设计
B.需求分析
C.总体设计
D.编程调试
(47)
从先到后一排,是:
需求分析、总体设计、详细设计、编程调试
需求分析远离在计算机上的实现,谈不上功能的分解;
有了需求分析的报告,软件设计员能够思考我要让软件怎么做,开始总体设计,其间将软件的功能分解,确定模块之间的接口;
有了每个模块功能的分解,再对每个模块进入详细设计阶段;
接下来再是程序员的任务,编写代码,开始编程调试。
(48)软件调试的目的是______。
A.发现错误
B.改正错误
C.改善软件的性能
D.挖掘软件的潜能
(48)
倒!
一个程序调试是为了干什么?
还不是为了改正错误?
发现错误?
这仅仅一个过程,改正错误之前必须先发现错误,总不能目的就仅为发现错误吧。
(49)按条件f对关系R实行选择,其关系代数表达式为______。
A.R|X|R
B.R|X|R
f
C.бf(R)
D.∏f(R)
(49)
[考点]数据库设计基础
C是选择一行,D是投影一列,二者要区分开。
如果不但谈此题的话,相关关系代数,内容有些多,这里不是一两句能说清,能够看看相关《数据库》的资料中的关系代数,里面写得很详细。
为应试,情急之下能记住几个题答案就行。
(50)数据库概念设计的过程中,视图设计一般有三种设计次序,以下各项中不对的是______。
A.自顶向下
B.由底向上
C.由内向外
D.由整体到局部
(50)
[答案]D
通常有如下几种方法:
1、自顶向下。
先全局框架,然后逐步细化
2、自底向上。
先局部概念结构,再集成为全局结构
3、由里向外。
先核心结构,再向外扩张
4、混合策略。
1与2相结合,先自顶向下设计一个概念结构的框架,再自底向上为框架设计局部概念结构
(51)在计算机中,算法是指______。
A.查询方法
B.加工方法
C.解题方案的准确而完整的描述
D.排序方法
(51)
A、B、D都过于片面,此题直接选答案也很简单。
(52)栈和队列的共同点是______。
A.都是先进后出
B.都是先进先出
C.只允许在端点处插入和删除元素
D.没有共同点
(52)
栈是先进后出的,队列是先进先出的,共同点是只允许在端点处插入和删除元素。
栈都是在一端进与出,而队列是在一端进在另一端出。
(53)已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是______。
A.cedba
B.acbed
C.decab
D.deabc
(53)
[答案]A
后序又叫后根,一次递归过程是先左再右最后根;
中序是先左再根最后右。
比如下图:
前序是:
abc
中序是:
bac
后序是:
bca
题中据后序遍历序列,一眼得知c结点是根,那么据中序deba结点都在一边,或都在根结点左边,或右边;
据中序遍历序列得知全在根结点的左边。
接下来据后序得出e结点是紧挨着c结点的左子女,再据中序得知d是e的左子女,ba是右子树。
再据后序得b是e的右子女,再据中序得a是b的右子女。
分析结果得二叉树图示如下:
因为我茂叶数据结构是自学的,分析此类型的题我都是用自己的方法(递归分析的方法),要边分析边画图,一步一步连结起来,最后再根据题中的遍历检查图是否画对,如果都符合题目,最后再可根据图来得所求的遍历。
再次声明,此所有二级公基题全是我一人的思路写的,如果你觉得不可靠,能够看其它的书。
(54)在下列几种排序方法中,要求内存量的是______。
A.插入排序
B.选择排序
C.快速排序
D.归并排序
(54)
[分析]
我们对比一个排序方法的优越性有"
平均时间"
、"
最坏情况时间"
和"
辅助空间"
。
其中辅助空间一般是排序中需要额外的内存开销,这些内存开销一般据一些如中间变量(暂存变量)、比较与交换等等来决定。
插入排序和选择排序的辅助空间都是o
(1),快速排序是o(nlog2n),归并排序是o(n)。
可知归并排序要求内存量,我们也能够从其变量及循环个数也以看出归并排序要求内存量。
(55)在设计程序时,应采纳的原则之一是______。
A.程序结构应有助于读者理解
B.不限制goto语句的使用
C.减少或取消注解行
D.程序越短越好
(55)
前面的题中已解释过,二级的各种程序设计语言教程都会对结构化程序设有一定的介绍,比如goto语句的限制使用,基本上每本书上都会提到。
其中A,即易读性比程序的效率更显得重要,这是结构化程序设计原则提倡的,也是我们实行开发时非常重要的一点。
(56)下列不属于软件调试技术的是______。
A.强行排错法
B.集成测试法
C.回溯法
D.原因排除法
(56)
耍个小聪明:
)
我们严格区分调试与测试,调试是已知有错误而来找错误,是被动的;
测试有很多种,比如未发现错误但不能保证程序没错而来找BUG,还比如我们运行测试程序是否符合用户的要求,是主动的。
不用说答案就是B了:
A、C、D都是具体的程序调试方法,而B是宏观的程序测试方法。
测试有单元测试、集成测试、确认测试、系统测试。
比如我们在实行单元测试时,发现程序有错误,我们再能够根据A、C、D的方法来找错误。
题外话:
很多人学软件工程时认为软件工程太无聊了,似乎全部都是些背背记记的东西,但对于一个软件构架师,软件工程是非常重要的,这就不能是些背背的东西了,