一、单项选择题
1对建立良好的程序设计风格,下面描述正确的是
A.程序应简单、清晰、可读性好
B.符号名的命名只要符合语法
C.充分考虑程序的执行效率
D.程序的注释可有可无
参考答案:A
2一棵度数为4的树,它的4度结点有l个,3度结点有2个,2度结点有3个,l度结点4个,问它的叶子结点有多少个?( )
A.5B.6C.9D.11
参考答案:D
参考解析:如果注意观察树的结构,你会发现树中的结点数总是比树中的分支数多-,、其买也可以这么理解:如 果在根结点前面加-条分支线,那么分支数和结点数就-样多了。在树的结点里,n度结点可以射出条分支,叶子结点是0度结点,因此它射出的分支数为0。此题中知道了1到4度结点的个数,就可以计算出树的总分支数:4×1+3×2+2×3+1×4=20。因此树的总结点数是21,减去其他度数的结点数10就得到0度结点(叶子结点)的个数11了。本题还有另外-种解:由于问题的结果肯定不会和具体的哪棵树有关,读者可以自己画出一棵满足题目要求的具体的树出来,再去数树中叶子结点的个数。不过这种方法只适用于树不是很复杂(结点数不是很多)的场合。
3将E—R图转换到关系模式时,实体与联系都可以表示成( )
A.属性B.关系C.键D.域
参考答案:B
4对象的操作过程对外是封闭的不可见的,即用户只能看到这一操作实施后的结果。对象的这一特性,即是对象的
A.封装性B.继承性C.多态性D.模块性
参考答案:A
5在数据管理技术发展的三个阶段中,数据共享最好的是( )
A.人工管理阶段B.文件系统阶段C.数据库系统阶段D.三个阶段相同
参考答案:C
参考解析:在数据管理技术发展的三个阶段中,数据共享最好的是数据库系统阶段(见前面的表1.2)。因此本题的正确答案是C。
6下列叙述中正确的是( )
A.线性链表是线性表的链式存储结构
B.栈与队列是非线性结构
C.双向链表是非线性结构
D.只有根结点的二叉树是线性结构
参考答案:A
参考解析:线性表的链式存储结构称为线性链表;栈、队列、双向链表都是线性结构;树、二叉树(不管它有多少个结点)都是非线性结构。
7信息隐蔽的概念与下列哪一种概念直接相关?
A.软件结构的定义B.模块的独立性C.模块的分类性D.模块的内聚程度
参考答案:B
8下列叙述中正确的是
A.程序设计就是编制程序
B.程序的测试必须由程序员自己去完成
C.程序经调试改错后还应进行再测试
D.程序经调试改错后不必进行再测试
参考答案:C
参考解析:程序设计不只是编制程序,还包括编写相应的文档等;程序的测试一般不由程序员自己去完成,应该由独立的第三方来构造测试;由于修正一个错误的同时有可能会引入新的错误,所以在修改错误之后,必须进行回归测试。因此选项C正确。
9在表示树的多重链表中,除了要存储结点的值和多个指针之外,还必须需要存储( )
A.结点的度B.结点的层次C.结点的高度D.结点的深度
参考答案:A
10下列关于链表结构的叙述正确的是( )
A.线性链表、带链的栈和带链的队列的结点的结构都是相同的
B.双向链表也就是循环链表
C.线性链表与带链的栈的结点的结构是不同的
D.在循环链表中通过任意一个结点可以找到链表中其他所有的结点,而在双向链表中做不到这一点
参考答案:A
11在E.R图中,用来表示实体的图形是( )
A.矩形B.椭圆形C.菱形D.三角形
参考答案:A
参考解析:在E.R图中用矩形表示实体,用椭圆表示实体的属性,用菱形表示实体之间的联系,用线段来连接矩形、椭圆和菱形。因此本题的正确答案是A。
12JaCkson方法是一种什么样的的结构化分析方法?
A.面向数据流B.面向对象C.面向数据结构D.面向控制流
参考答案:C
13通过相邻数据元素的交换逐步:搿线性表变成有序的排序方法是( )
A.冒泡排序法B.简单选择排序法C.简单插入排序法D.希尔排序法
参考答案:A
14下面软件工程要素中的哪一项提供软件工程项目的软件开发的各个环节的控制、管理的支持?
A.方法B.工具C.过程D.技术
参考答案:C
15按照“后进先出”原则组织数据的数据结构是( )
A.队列B.栈C.双向链表D.二叉树
参考答案:B
参考解析:队列是按照“先进先出”原则组织数据的数据结构;栈是按照“先进后出”或“后进先出”原则组织数据的数据结构;双向链表由若干个结点构成,每个结点设置两个指针(左指针和右指针),左指针指向其前件结点,右指针指向其后件结点,通过双向链表中的任何一个结点都可以访问到其它结点;二叉树是按照层次结构组织数据的数据结构。因此本题的正确答案是B。
16一棵度数为4的树,它的4度结点有l个,3度结点有2个,2度结点有3个,l度结点4个,问它的叶子结点有多少个?( )
A.5B.6C.9D.11
参考答案:D
参考解析:如果注意观察树的结构,你会发现树中的结点数总是比树中的分支数多-,、其买也可以这么理解:如 果在根结点前面加-条分支线,那么分支数和结点数就-样多了。在树的结点里,n度结点可以射出条分支,叶子结点是0度结点,因此它射出的分支数为0。此题中知道了1到4度结点的个数,就可以计算出树的总分支数:4×1+3×2+2×3+1×4=20。因此树的总结点数是21,减去其他度数的结点数10就得到0度结点(叶子结点)的个数11了。本题还有另外-种解:由于问题的结果肯定不会和具体的哪棵树有关,读者可以自己画出一棵满足题目要求的具体的树出来,再去数树中叶子结点的个数。不过这种方法只适用于树不是很复杂(结点数不是很多)的场合。
17下列关于栈的叙述正确的是( )
A.栈按“先进先出”组织数据
B.栈按“先进后出”组织数据
C.只能在栈底插入数据
D.不能删除数据
参考答案:B
参考解析:栈是按照“先进后出(FILO)”或“后进先出(LIFO)”的原则组织数据的,栈只能在栈顶插入数据(称为入栈)和删除数据(称为出栈)。队列是按照“先进先出(HFO)”或“后进后出(LILO)”的原则组织数据的,队列只能在队尾插入数据(称为入队)和队头删除数据(称为出队)。因此本题的正确答案是B。
18下列对于线性链表的描述中正确的是( )
A.存储空间不-定是连续,且各元素的存储顺序是任意的
B.存储空间不-定是连续,且前件元素-定存储在后件元素的前面
C.存储空间必须连续,且前件元素-定存储在后件元素的前面
D.存储空间必须连续,且各元素的存储顺序是任意的
参考答案:A
参考解析:线性链表是通过增加一个指针域来把相邻的数据元素链接成一个线性序列。线性链表的这种结构使得它存储数据的空间可以是离散的,并不像顺序表那样-定要求物理上的连续空间。
19下列叙述中正确的是( )
A.一个算法的空间复杂度大,则其时间复杂度也必定大
B.一个算法的空间复杂度大,则其时间复杂度必定小
C.一个算法的时间复杂度大,则其空间复杂度必定小
D.以上三种说法都不对
参考答案:D
参考解析:一个算法的好坏-般用时间复杂度和空间复杂度这两个指标来衡量。-般一个算法的时间复杂度和空间复杂度越小,这个算法就越好。若某算法用时最少、占用空间最小,我们就称此算法为最佳算法。比如二分(折半)查找算法在数学上就可以证明是最佳查找算法。一个算法的时间复杂度和空间复杂度之间没有必然的联系,也就是说一个算法的时间复杂度小,它的空间复杂度不-定也小,反之依然。
20数据库技术的根本目标是要解决数据的( )
A.存储问题B.共享问题C.安全问题D.保护问题
参考答案:B
参考解析:数据管理经历了人工管理、文件系统和数据库系统3个阶段。数据库系统阶段解决了以下问题:数据的集成性、数据的共享性与冗余性、数据的独立性、数据的统一管理和控制。所以数据库设计的根本目标是要解决数据共享问题。因此本题的正确答案是B。
21有一个抽象的画图方法show,它调用传递给它的参数图形对象的draw方法来实现画图功能。图形对象是一个父类对象,图形类下面有子类圆形类、矩形类、多边形类,它们都实现了自己的draw方法。但不管传递给show方法的参数是圆形类,矩形类还是多边形类的对象,show方法都能够画出正确的图形。请问这个过程中运用了面向对象方法的哪种机制?
A.继承B.消息C.多态D.封装
参考答案:C
22一间宿舍可住多个学生,则实体宿舍和学生之间的联系是( )
A.一对一B.一对多C.多对一D.多对多
参考答案:B
参考解析:一间宿舍可住多个学生,一个学生只能住一间宿舍,所以宿舍和学生之间的联系是一对多联系。
23通过列举少量的特殊情况,经过分析,最后找出-般的关系的算法设计思想是( )
A.列举法B.归纳法C.递推法D.递归法
参考答案:B
24同一概念在一处为实体而在另一处为属性或联系的冲突在视图集成中叫( )
A.命名冲突B.概念冲突C.域冲突D.约束冲突
参考答案:B
25面向对象方法的核心是
A.对象B.类C.封装D.继承
参考答案:A
26同样的消息被不同对象接受时可导致完全不同的行为,这种现象称为
A.多态性B.继承性C.重载性D.封装性
参考答案:A
27一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是( )
A.12345ABCDEB.EDCBA54321C.ABCDEl2345D.54321EDCBA
参考答案:B
参考解析:
栈是按照“先进后出(FILO)”或“后进先出(LIFO)”的原则组织数据的,栈只能在栈顶插入数据(称为入栈)和删除数据(称为出栈)。现将元素l、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是EDCBA54321。因此本题的正确答案是B。
28快速排序法属于( )
A.选择类排序法B.交换类排序法C.插入类排序法D.归并类排序法
参考答案:B
29下列哪一项不是软件工程的基本目标?
A.付出较低的维护费用
B.达到要求的功能
C.不管时间限制,只要最终把用户要求的产品交出来
D.产品的性能比较好
参考答案:C
30在长度为n的有序线性表中进行二分查找,最坏情况下需要较的次数是( )
A.O(n)B.O(n2)C.O(log2n)D.O(nlog2n)
参考答案:C
参考解析:对于长度为n的线性表进行顺序查找,平均要进行n/2次比较,在最坏情况下要进行n次比较;对于长度为n的线性表进行二分查找,在最坏情况下要进行l092n次比较(但二分查找要求线性表是顺序存储的有序表)。
31对建立数据流图的步骤的叙述不正确的是
A.由外向里B.自顶向下C.自底向上D.逐层分解
参考答案:C
33层次模型属于( )
A.概念数据模型B.逻辑数据模型C.物理数据模型D.用户数据模型
参考答案:B
34下面选项中不属于面向对象程序设计特征的是
A.继承性B.多态性C.类比性D.封装性
参考答案:C
参考解析:面向对象程序设计中的对象具有标志唯一性、分类性、继承性、多态性、封装性、模块独立性好等特征,不具有类比性。因此本题的正确答案是C。
35下面哪一项不符合软件工程的原则?
A.把程序分解成独立的模块
B.采用封装技术把程序模块的实现细节隐藏起来
C.采用全局变量传递的方式,以简化模块之间的通信接口和通信量
D.程序的内外部接口保持一致,系统规格说明与系统行为保持一致
参考答案:C