《二级公共基础教程》习题及答案一、选择题(1~130题每题2分,在下列各题的A.、B.、C.、D.四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分)(1)栈和队列的共同特点是A)都是先进先出B)都是先进后出C)只允许在端点处插入和删除元素D)没有共同点(2)已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是A)acbedB)decabC)deabcD)cedba(3)链表不具有的特点是A)不必事先估计存储空间B)可随机访问任一元素C)插入删除不需要移动元素D)所需空间与线性表长度成正比(4)已知一棵二叉树前序遍历序列是ABDEGCFH,中序遍历序列是DBGEACHF,它的后序遍历序列是A)GEDHFBCAB)DGEBHFCAC)ABCDEFGHD)ACBFEDHG(5)树是结点的集合,它的根结点数目是A)有且只有1B)1或多于1C)0或1D)至少2(6)如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是A)e3,e1,e4,e2B)e2,e4,e3,e1C)e3,e4,e1,e2D)任意顺序(7)算法的空间复杂度是指A)算法程序的长度B)算法程序中的指令条数C)算法程序所占的存储空间D)执行过程中所需要的存储空间(8)用链表表示线性表的优点是A)便于随机存取B)花费的存储空间较空间少C)便于插入和删除操作D)数据元素的物理顺序与逻辑顺序相同(9)数据结构中,与所使用的计算机无关的是数据的A)存储结构B)物理结构C)逻辑结构D)物理和存储结构(10)在深度为5的满二驻树中,叶子的个数为A)32B)31C)16D)15(11)已知一棵二叉树前序遍历序列是abdgcefh,中序遍历序列是dgbaechf,它的后序遍历序列是A)bdgcefhaB)gdbecfhaC)bdgaechfD)gdbehfca(12)一些重要的程序语言(如C语言和Pascal语言)允许过程递归调用。而实现递归调用中的存储分配通常用A)栈B)堆C)数组D)链表(13)数据结构作为计算机的一六学科,主要研究数据的逻辑结构、对各种数据结构进行的运算,以及A)数据的结构B)计算方法C)数据映象D)逻辑结构(14)串的长度是A)串中不同字符的个数B)串中不同字母的个数C)串中所含字符的个数且字符个数大于零D)串中所含字符的个数(15)在计算机中,算法是指A)加工方法B)解题方案的准确而完整的描述C)排序方法D)查询方法(16)假设线性表的长度为,则在最坏情况下,冒泡排序需要的比较次数为A)log2nB)n2C)o(n1.5)D)n(n-1)/2(17)算法分析的目的是A)找出数据结构合理性B)找出算法中输入和输出之间的关系C)分析算法的易懂性和可靠性D)分析算法的效率以求改进(18)线性表L=(a1,a2,a3,…ai,…an),下列说法正确的是A)每个无素都有一个直接前件和直接后件B)线性表中至少要有一个元素C)表中诸元素的排列顺序必须是由小到大或由大到小D)除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件(19)在单链表中,增加头结点的目的是A)方便运算的实现B)使单链表至少有一个结点C)标识表结点中首结点的位置D)说明单链表是线性表的链式存储实现(20)下列叙述中正确的是A)线性表是线性结构B)栈与队列是非线性结构C)线性链表是非线性结构D)二叉树是线性结构(21)非空的循环链表head的尾结点(由p所指向),满足A)p→next==NULLB)p==NULLC)p→next=headD)p=head(22)已知数据表A中每个元素距最终位置不远,为节省时间,应采用的算法是A)堆排序B)直接插入排序C)快速排序D)直接选择排序(23)循环链表的主要优点是A)不再需要头指针了B)从表中任一结点出发都能访问到整个链表C)进行插入、删除运算时,能更好的保证链表不断开D)已知某个结点的位置后,能够容易的找到它的直接前件(24)栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是A)ABCEDB)DCBEAC)DBCEAD)CDABE(25)n个顶点的强连通图的边数至少有A)n-1B)n(n-1)C)nD)n+1(26)最简单的交换排序方法是A)快速排序B)选择排序C)堆排序D)冒泡排序(27)栈通常采用的两种存储结构是A)线性存储结构和链表存储结构B)散列方式和索引方式C)链表存储结构和数组D)线性存储结构和非线性存储结构(28)线性表的顺序存储结构和线性表的链式存储结构分别是A)顺序存取的存储结构、顺序存取的存储结构B)随机存取的存储结构、顺序存取的存储结构C)随机存取的存储结构、随机存取的存储结构D)任意存取的存储结构、任意存取的存储结构(29)下列数据结构中,按先进后出原则组织数据的是A)线性链表B)栈C)循环链表D)顺序表(30)具有3个结点的二叉树有A)2种形态B)4种形态C)7种形态D)5种形态(31)设有下列二叉树TAXPCBZY对此二叉树前序遍历的结果为A)ZBTYCPXAB)ATBZXCYPC)ZBTACYXPD)ATBZXCPY(32)根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分成A)动态结构和静态结构B)紧凑结构和非紧凑结构C)线性结构和非线性结构D)内部结构和外部结构(33)设一棵二叉树中有3个叶子结点,有8个度为1的结点,则该二叉树中总的结点数为A)12B)13C)14D)15(34)在下列几种排序方法中,要求内存量最大的是A)插入排序B)选择排序C)快速排序D)归并排序(35)由两个栈共享一个存储空间的好处是A)减少存取时间,降低下溢发生的机率B)节省存储空间,降低上溢发生的机率C)减少存取时间,降低上溢发生的机率D)节省存储空间,降低下溢发生的机率(36)设有两个串p和q,求q在p中首次出现位置的运算称做A)连接B)模式匹配C)求子串D)求串长(37)n个顶点的连通图中边的条数至少为A)0B)1C)n-1D)n(38)线性表若采用链式存储结构时,要求内存中可用存储单元的地址A)必须是连续的B)部分地址必须是连续的C)一定是不连续的D)连续不连续都可以(39)在待排序的元素序列基本有序的前提下,效率最高的排序方法是A)冒泡排序B)选择排序C)快速排序D)归并排序(40)下列叙述中,错误的是A)数据的存储结构与数据处理的效率密切相关B)数据的存储结构与数据处理无关C)数据的存储结构在计算机中所占的空间不一定是连续的D)一种数据的逻辑结构可以有多种存储结构(41)希尔排序属于A)交换排序B)归并排序C)选择排序D)插入排序(42)结构化程序设计的3种结构是A)顺序结构、选择结构、转移结构B)分支结构、等价结构、循环结构C)多分支结构、赋值结构、等价结构D)顺序结构、选择结构、循环结构(43)在设计时,应采纳的原则之一是A)不限制goto语句的使用B)减少或取消注解行C)程序愈短愈好D)程序结构应有助于读者理解(44)程序设计语言的基本成分是数据成分、运算成分、控制成分和A)对象成分B)变量成分C)语句成分D)传输成分(45)结构化程序设计主要强调的是A)程序的规模B)程序的效率C)程序设计语言的先进性D)程序的易读性(46)以下不属于对象的基本特点的是A)分类性B)多态性C)继承性D)封装性(47)对建立良好的程序设计风格,下面描述正确的是A)程序应得意、清晰、可读性好B)符号名的命名只要符合语法C)充分考虑程序的执行效率D)程序的注释可有可无(48)在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率。与程序的效率相比,人们更重视程序的A)安全性B)一致性C)可理解性D)合理性(49)结构化程序设计主要强调的是A)程序的规模B)程序的效率C)程序设计语言的先进性D)程序的易读性(50)程序的3种基本结构是A)过程、子过程和控制结构B)顺序、选择和重复C)递归、堆栈和重复D)调用、返回和转移(51)下列叙述中,不属于结构化程序设计方法的主要原则是A)自顶向下B)由底向上C)模块化D)限制使用goto语句(52)对象实现了数据和操作的结合,是指对数据和数据的操作A)进行结合B)隐藏C)封装D)抽象(53)下列叙述中,不属于结构化分析方法的是A)面向数据流的结构化分析方法B)面向数据结构的Jackson方法C)面向数据结构的结构化数据系统开发方法D)面向对象的分析方法(54)为了提高测试的效率,应该A)随机选取测试数据B)取一切可能的输入数据作为测试数据C)在完成编码以后制定软件的测试计划D)集中对付那些错误群集的程序(55)算法的时间复杂度是指A)执行算法程序所需要的时间B)算法程序的长度C)算法执行过程中所需要的基本运算次数D)算法程序中的指令条数(56)软件生命周期中所花费用最多的阶段是A)详细设计B)软件编码C)软件测试D)软件维护(57)下列叙述中,不属于软件需求规格说明书的作用的是A)便于用户、开发人员进行理解和交流B)反映出用户问题的结构,可以作为软件开发工作的基础和依据C)作为确认测试和验收的依据D)便于开发人员进行分析(58)下列不属于软件工程的3个要素的是A)工具B)过程C)方法D)环境(59)设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指A)模块间的关系B)系统结构部件转换成软件的过程描述C)软件层次结构D)软件开发结构(60)检查软件产品是否符合需求定义的过程称为A)确认测试B)集成测试C)验证测试D)验收测试(61)软件工程的理论和技术性研究的内容主要包括软件开发技术和A)消除软件危机B)软件工程管理C)程序设计自动化D)实现软件可重用(62)开发软件时对提高开发人员工作效率至关重要的是A)操作系统的资源管理功能B)先进的软件开发工具和环境C)程序人员的数量D)计算机的并行处理能力(63)在软件测试设计中,软件测试的主要目的是A)实验性运行软件B)证明软件正确C)找出软件中全部错误D)发现软件错误而执行程序(64)开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做A)软件投机B)软件危机C)软件工程D)软件生产(65)下面不属于软件设计原则的是A)抽象B)模块化C)自底向上D)信息隐蔽(66)开发大型软件时,产生困难的根本原因是A)大系统的复杂性B)人员知识不足C)客观世界千变万化D)时间紧、任务重(67)软件工程的出现是由于A)程序设计方法学的影响B)软件产业化的需要C)软件危机的出现D)计算机的发展(68)软件工发离不开系统环境资源的支持,其中必要的测试数据属于A)硬件资源B)通信资源C)支持软件D)辅助资源(69)下列下列不属于结构化分析的常用工具的是A)数据流图B)数据字典C)判定树D)PAD图(70)在软件生产过程中,需求信息的给出是A)程序员B)项目管理者C)软件分析设计人员D)软件用户(71)下列工具中为需求分析常用工具的是A)PADB)PFDC)N-SD)DFD(72)模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准则是模块的A)抽象和信息隐蔽B)局部化和封装化C)内聚性和耦合性D)激活机制和控制方法(73)软件开发的结构化生命周期方法将软件生命周期划分成A)定义、开发、运行维护B)设计阶段、编程阶段、测试阶段C)总体设计、详细设计、编程调试D)需求分析、功能定义、系统设计(74)在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看做是A)路径的集合B)循环的集合C)目标的集合D)地址的集合(75)完全不考虑程序物内部结构和内部特征,而只是根据程序功能导出测试用例的测试方法是A)黑箱测试法B)白箱测试法C)错误推测法D)安装测试法(76)在结构化设计方法中,生成的结构图(SC)中,带有箭头的连线表示A)模块之间的调用关系B)程序的组成成分C)控制程序的执行顺序D)数据的流向(77)下列选项中,不属于模块间耦合的是A)数据耦合B)同构耦合C)异构耦合D)公用耦合(78)下