1、公共基础知识选择题真题公共基础知识一、数据结构与算法1、下列叙述中正确的是()。A) 算法就是程序B) 设计算法时只需要考虑数据结构的设计C) 设计算法时只需要考虑结果的可靠性D) 以上三种说法都不对 参考答案:D【解析】算法是指解题方案的准确而完整的描述,算法不等于程序,也不等于计算方法,所以A)错误。设计算法时不仅要考虑对数据对象的运算和操作,还要考虑算法的控制结构。2、算法的有穷性是指()。A) 算法程序的运行时间是有限的B) 算法程序所处理的数据量是有限的C) 算法程序的长度是有限的D) 算法只能被有限的用户使用 参考答案:A【解析】算法原则上能够精确地运行,而且人们用笔和纸做有限次运
2、算后即可完成。有穷性是指算法程序的运行时间是有限的。3、下列叙述中正确的是()。A) 线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B) 线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构C) 线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构D) 线性表的链式存储结构与顺序存储结构在存储空间的需求上没有可比性 参考答案:B【解析】线性链式存储结构中每个结点都由数据域与指针域两部分组成,增加了存储空间,所以一般要多于顺序存储结构。4、下列关于栈的叙述中,正确的是A) 栈底元素一定是最后入栈的元素B) 栈顶元素一定是最先入栈的元素C) 栈操作遵循先进后出的原则D) 以
3、上说法均错误 参考答案:C【解析】栈顶元素总是后被插入的元素,从而也是最先被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。栈的修改是按后进先出的原则进行的。因此,栈称为先进后出表,或后进先出表,所以选择C。5、算法的空间复杂度是指()。A) 算法在执行过程中所需要的计算机存储空间B) 算法所处理的数据量C) 算法程序中的语句或指令条数D) 算法在执行过程中所需要的临时工作单元数 参考答案:A【解析】算法的空间复杂度是指算法在执行过程中所需要的内存空间。所以选择A)。6、下列叙述中正确的是A) 一个算法的空间复杂度大,则其时间复杂度也必定大B) 一个算法的空间复杂度大,
4、则其时间复杂度必定小C) 一个算法的时间复杂度大,则其空间复杂度必定小D) 算法的时间复杂度与空间复杂度没有直接关系 参考答案:D【解析】算法的空间复杂度是指算法在执行过程中所需要的内存空间,算法的时间复杂度,是指执行算法所需要的计算工作量,两者之间并没有直接关系,答案为D。7、定义无符号整数类为UInt,下面可以作为类UInt实例化值的是()。A) 369B) 369C) 0.369D) 整数集合1,2,3,4,5 参考答案:B【解析】只有B)选项369可以用无符号整数来表示和存储。A)选项369有负号,选项C)0.369是小数都不能用无符号整数类存储。选项D)是一个整数集合得用数组来存储。
5、8、下列叙述中正确的是()。A) 程序执行的效率与数据的存储结构密切相关B) 程序执行的效率只取决于程序的控制结构C) 程序执行的效率只取决于所处理的数据量D) 以上说法均错误 参考答案:A【解析】程序执行的效率与数据的存储结构、数据的逻辑结构、程序的控制结构、所处理的数据量等有关。9、下列叙述中正确的是()。A) 顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B) 顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C) 顺序存储结构能存储有序表,链式存储结构不能存储有序表D) 链式存储结构比顺序存储结构节省存储空间 参考答案:A【解析】链式存储结构既可以针对线性结
6、构也可以针对非线性结构,所以B)与C)错误。链式存储结构中每个结点都由数据域与指针域两部分组成,增加了存储空间,所以D)错误。10、下列叙述中正确的是()。A) 线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B) 线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构C) 线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构D) 线性表的链式存储结构与顺序存储结构在存储空间的需求上没有可比性 参考答案:B【解析】线性链式存储结构中每个结点都由数据域与指针域两部分组成,增加了存储空间,所以一般要多于顺序存储结构。11、下列叙述中正确的是()。A) 线性表链式存储结构的存储空
7、间一般要少于顺序存储结构B) 线性表链式存储结构与顺序存储结构的存储空间都是连续的C) 线性表链式存储结构的存储空间可以是连续的,也可以是不连续的D) 以上说法均错误 参考答案:C【解析】线性表的顺序存储结构具备如下两个基本特征:(1)线性表中的所有元素所占的存储空间是连续的;(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。用一组任意的存储单元来依次存放线性表的结点,这组存储单元既可以是连续的,也可以是不连续的,甚至是零散分布在内存中的任意位置上的。因此C正确。12、下列叙述中正确的是()。A) 栈是先进先出的线性表B) 队列是先进后出的线性表C) 循环队列是非线性结构D) 有序线
8、性表既可以采用顺序存储结构,也可以采用链式存储结构 参考答案:D【解析】栈是先进后出的线性表,所以A)错误;队列是先进先出的线性表,所以B)错误;循环队列是线性结构的线性表,所以C)错误。13、一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是()。A) 12345ABCDEB) EDCBA54321C) ABCDE12345D) 54321EDCBA 参考答案:B【解析】栈是先进后出的原则组织数据,所以入栈最早的最后出栈,所以选择B)。14、下列关于栈的叙述正确的是()。A) 栈按先进先出组织数据B) 栈按先进后出组织数据C) 只
9、能在栈底插入数据D) 不能删除数据 参考答案:B【解析】栈是按先进后出的原则组织数据的,数据的插入和删除都在栈顶进行操作。15、下列叙述中正确的是()。A) 在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B) 在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C) 在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D) 以上说法都不正确 参考答案:C【解析】栈是先进后出的数据结构,在整个过程中,栈底指针不变,入栈与出栈操作均由栈顶指针的变化来操作,所以选择C)。16、下列关于栈叙述正确的是()。A) 栈顶元素最先能被删除B) 栈顶元素最后才能被删除C) 栈底元素永远不能被删除
10、D) 栈底元素最先被删除 参考答案:A【解析】栈是先进后出的数据结构,所以栈顶元素最后入栈却最先被删除。栈底元素最先入栈却最后被删除。所以选择A)。17、下列叙述中正确的是()。A) 栈是一种先进先出的线性表B) 队列是一种后进先出的线性表C) 栈与队列都是非线性结构D) 以上三种说法都不对 参考答案:D【解析】栈是一种先进后出的线性表,队列是一种先进先出的线性表,栈与队列都是线性结构。18、下列关于栈的叙述中,正确的是()。A) 栈底元素一定是最后入栈的元素B) 栈顶元素一定是最先入栈的元素C) 栈操作遵循先进后出的原则D) 以上说法均错误 参考答案:C【解析】栈顶元素总是后被插入的元素,从
11、而也是最先被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。栈的修改是按后进先出的原则进行的。因此,栈称为先进后出表,或后进先出表,所以选择C。19、一个栈的初始状态为空。现将元素1,2,3,A,B,C依次入栈,然后再依次出栈,则元素出栈的顺序是()。A) 1,2,3,A,B,CB) C,B,A,1,2,3C) C,B,A,3,2,1D) 1,2,3,C,B,A 参考答案:C【解析】栈的修改是按后进先出的原则进行的,所以顺序应与入栈顺序相反,故选C。20、下列关于栈的叙述中,正确的是A) 栈底元素一定是最后入栈的元素B) 栈顶元素一定是最先入栈的元素C) 栈操作遵循先进
12、后出的原则D) 以上说法均错误 参考答案:C【解析】栈顶元素总是后被插入的元素,从而也是最先被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。栈的修改是按后进先出的原则进行的。因此,栈称为先进后出表,或后进先出表,所以选择C。21、下列数据结构中,能够按照先进后出原则存取数据的是()。A) 循环队列B) 栈C) 队列D) 二叉树 参考答案:B【解析】栈是按先进后出的原则组织数据的。队列是先进先出的原则组织数据。22、下列与队列结构有关联的是()。A) 函数的递归调用B) 数组元素的引用C) 多重循环的执行D) 先到先服务的作业调度 参考答案:D【解析】队列的修改是依先进
13、先出的原则进行的,D正确。23、对于循环队列,下列叙述中正确的是()。A) 队头指针是固定不变的B) 队头指针一定大于队尾指针C) 队头指针一定小于队尾指针D) 队头指针可以大于队尾指针,也可以小于队尾指针 参考答案:D【解析】循环队列的队头指针与队尾指针都不是固定的,随着入队与出队操作要进行变化。因为是循环利用的队列结构所以对头指针有时可能大于队尾指针有时也可能小于队尾指针。24、下列叙述中正确的是()。A) 循环队列是队列的一种链式存储结构B) 循环队列是队列的一种顺序存储结构C) 循环队列是非线性结构D) 循环队列是一种逻辑结构 参考答案:B【解析】在实际应用中,队列的顺序存储结构一般采
14、用循环队列的形式。25、设循环队列的存储空间为Q(1: 35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为()。A) 15B) 16C) 20D) 0或35 参考答案:D【解析】在循环队列中,用队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前一个位置。在循环队列中进行出队、入队操作时,头尾指针仍要加,朝前移动。只不过当头尾指针指向向量上界时,其加操作的结果是指向向量的下界。由于入队时尾指针向前追赶头指针,出队时头指针向前追赶尾指针,故队空和队满时,头尾指针均相等。答案为D选项。26、下
15、列叙述中正确的是()。A) 循环队列中的元素个数随队头指针与队尾指针的变化而动态变化B) 循环队列中的元素个数随队头指针的变化而动态变化C) 循环队列中的元素个数随队尾指针的变化而动态变化D) 以上说法都不对 参考答案:A【解析】在循环队列中,用队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前一个位置。因此,从排头指针front指向的后一个位置直到队尾指针rear指向的位置之间所有的元素均为队列中的元素。所以循环队列中的元素个数与队头指针和队尾指针的变化而变化,A正确。27、下列数据结构中,属于非线性结构的是()。A) 循环队列B) 带链队列C) 二叉树D) 带链栈
16、参考答案:C【解析】树是简单的非线性结构,所以二叉树作为树的一种也是一种非线性结构。28、下列关于线性链表的叙述中,正确的是()。A) 各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致B) 各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C) 进行插入与删除时,不需要移动表中的元素D) 以上说法均不正确 参考答案:C【解析】一般来说,在线性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致。线性链表中数据的插入和删除都不需要移动表中的元素,只需改变结点的指针域即可。29、下列链表中,其逻辑结构属于非线性结构
17、的是()。A) 二叉链表B) 循环链表C) 双向链表D) 带链的栈 参考答案:A【解析】在定义的链表中,若只含有一个指针域来存放下一个元素地址,称这样的链表为单链表或线性链表。带链的栈可以用来收集计算机存储空间中所有空闲的存储结点,是线性表。在单链表中的结点中增加一个指针域指向它的直接前件,这样的链表,就称为双向链表(一个结点中含有两个指针),也是线性链表。循环链表具有单链表的特征,但又不需要增加额外的存贮空间,仅对表的链接方式稍做改变,使得对表的处理更加方便灵活,属于线性链表。二叉链表是二叉树的物理实现,是一种存储结构,不属于线性结构。答案为A选项。30、支持子程序调用的数据结构是()。A)
18、 栈B) 树C) 队列D) 二叉树 参考答案:A【解析】栈支持子程序调用。栈是一种只能在一端进行插入或删除的线性表,在主程序调用子函数时要首先保存主程序当前的状态,然后转去执行子程序,最终把子程序的执行结果返回到主程序中调用子程序的位置,继续向下执行,这种调用符合栈的特点,因此本题的答案为A)。31、某系统总体结构图如下图所示:该系统总体结构图的深度是()。A) 7B) 6C) 3D) 2 参考答案:C【解析】根据总体结构图可以看出该树的深度为3,比如:XY系统-功能2-功能2.1,就是最深的度数的一个表现。32、某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是()。A) 10B) 8C
19、) 6D) 4 参考答案:C【解析】根据二叉树的基本性质3:在任意一棵二叉树中,度为0的叶子节点总是比度为2的节点多一个,所以本题中是516个。33、下列关于二叉树的叙述中,正确的是()。A) 叶子结点总是比度为2的结点少一个B) 叶子结点总是比度为2的结点多一个C) 叶子结点数是度为2的结点数的两倍D) 度为2的结点数是度为1的结点数的两倍 参考答案:B【解析】根据二叉树的基本性质3:在任意一棵二叉树中,度为0的叶子结点总是比度为2的结点多一个。所以选择B)。34、某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)()。A) 3B) 4C) 6D) 7 参考
20、答案:D【解析】根据二叉树的基本性质3:在任意一棵二叉树中,度为0的叶子节点总比度为2的节点多一个,所以本题中度为2的节点为110个,所以可以知道本题目中的二叉树的每一个节点都有一个分支,所以共7个节点共7层,即深度为7。35、一棵二叉树中共有80个叶子结点与70个度为1的结点,则该二叉树中的总结点数为()。A) 219B) 229C) 230D) 231 参考答案:B【解析】二叉树中,度为0的节点数等于度为2的节点数加1,即n2=n0-1,叶子节点即度为0,则n2=79,总结点数为n0+n1+n2=80+70+79=229,答案为B。36、某二叉树共有12个结点,其中叶子结点只有1个。则该二
21、叉树的深度为(根结点在第1层)()。A) 3B) 6C) 8D) 12 参考答案:D【解析】二叉树中,度为0的节点数等于度为2的节点数加1,即n2=n0-1,叶子节点即度为0,n0=1,则n2=0,总节点数为12=n0+n1+n2=1+n1+0,则度为1的节点数n1=11,故深度为12,选D。二、程序设计基础1、下列选项中不属于结构化程序设计原则的是()。A) 可封装B) 自顶向下C) 模块化D) 逐步求精 参考答案:A【解析】结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A)。2、结构化程序设计的基本原则不包括()。A) 多态性B) 自顶向下C) 模块化
22、D) 逐步求精 参考答案:A【解析】结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A)。3、下列选项中不属于结构化程序设计原则的是()。A) 可封装B) 自顶向下C) 模块化D) 逐步求精 参考答案:A【解析】结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A)。4、结构化程序设计的基本原则不包括()。A) 多态性B) 自顶向下C) 模块化D) 逐步求精 参考答案:A【解析】结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A)。5、结构化程序所要求的基本结构不包括()。A) 顺序结构B
23、) GOTO跳转C) 选择(分支)结构D) 重复(循环)结构参考答案:B【解析】1966年Boehm和Jacopini证明了程序设计语言仅仅使用顺序、选择和重复三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。6、结构化程序设计中,下面对goto语句使用描述正确的是()。A) 禁止使用goto语句B) 使用goto语句程序效率高C) 应避免滥用goto语句D) 以上说法均错误 参考答案:C【解析】结构化程序设计中,要注意尽量避免goto语句的使用,故选C。7、下列选项中属于面向对象设计方法主要特征的是()。A) 继承B) 自顶向下C) 模块化D) 逐步求精 参考答案:A【解析】面向对
24、象基本方法的基本概念有对象、类和实例、消息、继承与多态性,所以选择A)。8、在面向对象方法中,不属于对象基本特点的是()。A) 一致性B) 分类性C) 多态性D) 标识唯一性 参考答案:A【解析】对象有如下一些基本特点:标识唯一性、分类性、多态性、封装性、模块独立性好。所以选择A)。9、下面对对象概念描述正确的是()。A) 对象间的通信靠消息传递B) 对象是名字和方法的封装体C) 任何对象必须有继承性D) 对象的多态性是指一个对象有多个操作 参考答案:A【解析】对象之间进行通信的构造叫做消息,A正确。多态性是指同一个操作可以是不同对象的行为,D错误。对象不一定必须有继承性,C错误。封装性是指从
25、外面看只能看到对象的外部特征,而不知道也无须知道数据的具体结构以及实现操作,B错误。10、面向对象方法中,继承是指()。A) 一组对象所具有的相似性质B) 一个对象具有另一个对象的性质C) 各对象之间的共同性质D) 类之间共享属性和操作的机制 参考答案:D【解析】继承是面向对象的方法的一个主要特征,是使用已有的类的定义作为基础建立新类的定义技术。广义的说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们,所以说继承是指类之间共享属性和操作的机制。三、软件工程基础1、构成计算机软件的是()。A) 源代码B) 程序和数据C) 程序和文档D) 程序、数据及相关文档 参考答案:D【解析】软件指
26、的是计算机系统中与硬件相互依赖的另一部分,包括程序、数据和有关的文档,选D。2、软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是()。A) 编译程序B) 操作系统C) 教务管理系统D) 汇编程序 参考答案:C【解析】编译软件、操作系统、汇编程序都属于系统软件,只有C)教务管理系统才是应用软件。3、下面描述中,不属于软件危机表现的是()。A) 软件过程不规范B) 软件开发生产率低C) 软件质量难以控制D) 软件成本不断提高 参考答案:A【解析】软件危机主要表现在:软件需求的增长得不到满足;软件开发成本和进度无法控制;软件质量难以保证;软件不可维护或维护程度非常
27、低;软件的成本不断提高;软件开发生产率的提高赶不上硬件的发展和应用需求的增长。所以选择A)。4、软件生命周期是指()。A) 软件产品从提出、实现、使用维护到停止使用退役的过程B) 软件从需求分析、设计、实现到测试完成的过程C) 软件的开发过程D) 软件的运行维护过程 参考答案:A【解析】通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。5、软件生命周期中的活动不包括()。A) 市场调研B) 需求分析C) 软件测试D) 软件维护 参考答案:A【解析】软件生命周期可以分为软件定义、软
28、件开发与软件运行维护三个阶段。主要活动阶段是:可行性研究与计划阶段,需求分析,软件设计,软件实现,软件测试,运行和维护,所以选择A)。6、软件生命周期可分为定义阶段、开发阶段和维护阶段,下面不属于开发阶段任务的是()。A) 测试B) 设计C) 可行性研究D) 实现 参考答案:C【解析】开发阶段包括分析、设计和实施两类任务。其中分析、设计包括需求分析、总体设计和详细设计3个阶段,实施则包括编码和测试两个阶段,C不属于开发阶段。7、在软件开发中,需求分析阶段产生的主要文档是()。A) 软件集成测试计划B) 软件详细设计说明书C) 用户手册D) 软件需求规格说明书 参考答案:D【解析】需求分析阶段的
29、工作可以概括为:需求获取、需求分析、编写需求规格说明书、需求评审四个方面。所以选择D)。8、下面不属于软件需求分析阶段主要工作的是()。A) 需求变更申请B) 需求分析C) 需求评审D) 需求获取 参考答案:A【解析】需求分析阶段的工作可概括为个方面:需求获取。需求分析。编写需求规格说明书。需求审评。9、在软件开发中,需求分析阶段可以使用的工具是()。A) NS图B) DFD图C) PAD图D) 程序流程图 参考答案:B【解析】在需求分析阶段可以使用的工具有数据流图DFD图,数据字典DD,判定树与判定表,所以选择B)。10、在软件设计中不使用的工具是()。A) 系统结构图B) PAD图C) 数
30、据流图(DFD图)D) 程序流程图 参考答案:C【解析】系统结构图是对软件系统结构的总体设计的图形显示。在需求分析阶段,已经从系统开发的角度出发,把系统按功能逐次分割成层次结构,是在概要设计阶段用到的。PAD图是在详细设计阶段用到的。程序流程图是对程序流程的图形表示,在详细设计过程中用到。数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型,是在可行性研究阶段用到的而非软件设计时用到,所以选择C)。11、下面不能作为结构化方法软件需求分析工具的是()。A) 系统结构图B) 数据字典(DD)C) 数据流程图(DFD图)D) 判定表 参考答案:A【解析】结构化方法软件需求分析工具主要有数据流图
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1