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