给定以下序列(1,3,5,7,9,10,17,21,46)实现该序列按递增排序,使用哪种排序方法?

软件工程期末试卷及答案

软件工程期末试卷及答案

一、选择题:(每题1分,共20分)

( C )1. 软件是( )。

A. 处理对象和处理规则的描述 B. 程序

C. 程序及其文档 D. 计算机系统

( B )2. 软件需求规格说明的内容不应包括( )。

A. 主要功能 B. 算法的详细描述

C. 用户界面及运行环境 D. 软件的性能

( B )3. 程序的三种基本控制结构是( )。

A. 过程、子程序和分程序 B. 顺序、选择和重复

C. 递归、迭代和回溯 D. 调用、返回和转移

( D ) 4. 面向对象的分析方法主要是建立三类模型,即( )。 A) 系统模型、ER模型、应用模型 B) 对象模型、动态模型、应用模型 C) E-R模型、对象模型、功能模型 D) 对象模型、动态模型、功能模型 ( C ) 5. 在E-R模型中,包含以下基本成分( )。 A) 数据、对象、实体 B) 控制、联系、对象 C) 实体、联系、属性 D) 实体、属性、操作 ( A ) 6. 各种软件维护的类型中最重要的是( )。 A) 完善性维护 B) 纠错性维护 C) 适应性维护 D) 预防性维护 ( B ) 7.软件测试的目标是( )。

A. 证明软件是正确的 B. 发现错误、降低错误带来的风险

C. 排除软件中所有的错误 D. 与软件调试相同

( D )8.软件生命周期中所花费用最多的阶段是( )

A.详细设计 B.软件编码 C.软件测试 D.软件维护

( C )9.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0, 1.0],现从输入的角度考虑一组测试用例:-1.001, -1.0, 1.0, 1.001.设计这组测试用例的方法是( )

A.条件覆盖法 B.等价分类法 C.边界值分析法 D.错误推测法

( D )10、详细设计的基本任务是确定每个模块的( )设计

A.功能 B.调用关系 C.输入输出数据 D.算法

( A )11.设函数C(X)定义问题X的复杂程序,函数E(X)确定解决问题X需要的工作量(时间)。对于两个问题P1和P2,如果C(P1)>C(P2)显然E(P1)>E(P2),则得出结论E(P1+P2)>E(P1)+E(P2)就是:( )

A.模块化的根据 B.逐步求精的根据 C.抽象的根据 D.信息隐藏和局部化的根据

( D )12.下面几种白箱测试技术,哪种是最强的覆盖准则 ( )

A.语句覆盖 B.条件覆盖 C.判定覆盖 D.条件组合覆盖

( A )13.面向数据流的设计方法把( )映射成软件结构。

A.数据流 B.系统结构 C.控制结构 D.信息流

( A )15.确定测试计划是在( )阶段制定的.

A.总体设计 B.详细设计 C.编码 D.测试

( D )16.需求分析的产品是( )

A.数据流程图案 B.数据字典 C.判定表 D.需求规格说明书

( C )17.数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是(

A.数据库设计 B.数据通信 C.数据定义 D.数据维护

( D )18.( )引入了“风险驱动”的思想,适用于大规模的内部开发项目。

A.增量模型 B.喷泉模型 C.原型模型 D.螺旋模型

( D )19.模块的内聚性最高的是( )

A.逻辑内聚 B.时间内聚 C.偶然内聚 D.功能内聚

( D )20.提高测试的有效性非常重要,成功的测试是指( )

A.证明了被测试程序正确无误 B. 说明了被测试程序符合相应的要求

C.未发现被测程序的错误 D.发现了至今为止尚未发现的错误

二.判断题(每题1分,共10分)将答案写在题号前的( )中,正确用√, 错误用χ。

( × )1、开发软件就是编写程序。

( × )2、系统测试的主要方法是白盒法,主要进行功能测试、性能测试、安全性测试及可靠性等 测试。

( × )3、编程序时应尽可能利用硬件特点以提高程序效率.

( × )4、软件需求分析的任务是建立软件模块结构图。

( √ )5、尽可能使用高级语言编写程序

( × )6、以结构化分析方法建立的系统模型就是数据流图。

( × )7、进行总体设计时加强模块间的联系。

( × )8、编码时尽量多用全局变量.

( √ )9、用CASE环境或程序自动生成工具来自动生成一部分程序.

( × )10、软件测试是要发现软件中的所有错误。

三、填空题(每题1分,共5分):将结果填在( )

1、将下面的关系按继承关系、聚集关系或普通关联进行分类。

2、将下列各项分为类或类的实例

我的汽车 ( 实例 )

三、简答题:(每题5分,共25分)

1. 软件生命期各阶段的任务是什么? 答:软件生命期分为7个阶段: 1、问题定义:要解决的问题是什么

2、可行性研究:确定问题是否值得解,技术可行性、经济可行性、操作可行性

3、需求分析:系统必须做什么

4、总体设计:系统如何实现,包括系统设计和结构设计

5、详细设计:具体实现设计的系统

7、运行维护:保证软件正常运行。

2、软件重用的效益是什么? 答:1、软件重用可以显著地改善软件的质量和可靠性。

2、软件重用可以极大地提高软件开发的效率。

3、节省软件开发的成本,避免不必要的重复劳动和人力、财力的浪费。

3、 自顶而下渐增测试与自底而上渐增测试各有何优、缺点? 答: ① 自顶而下渐增测试

优点:不需要测试驱动程序,能够在测试阶段的早期实现并验证系统的主要功能,而且能够尽早发现上层模块的接口错误。

缺点:需要存根程序,底层错误发现较

优点与缺点和自顶而下渐增测试相反。

4 、 提高可维护性的方法有哪些? 答:在软件工程的每一阶段都应该努力提高系统的可维护性,在每个阶段结束前的审查和复审中,应着重对可维护性进行复审。 在需求分析阶段的复审中,应对将来要扩充和修改的部分加以注明。在讨论软件可移植性问题时,要考虑可能要影响软件维护的系统界面。 在软件设计的复审中,因从便于修改、模块化和功能独立的目标出发,评价软件的结构和过程,还应对将来可能修改的部分预先做准备。 在软件代码复审中,应强调编码风格和内部说明这两个影响可维护性的因素。 在软件系统交付使用前的每一测试步骤中都应给出需要进行预防性维护部分的提示。 在完成每项维护工作后,都应对软件维护本身进行仔细认真的复审。 为了从根本上提高软件系统的可维护性,人们正试图通过直接维护软件规格说明来维护软件 ,同时也在大力发展软件重用技术。

简述软件测试要经过哪几个步骤,每个步骤与什么文档有关。

测试过程按 4 个步骤进行,即单元测试(模块测试)、集成测试(子系统测试和系统测试)、确认测试(验收测试)和平行运行。

单元测试集中对用源代码实现的每一个程序单元进行测试,与其相关的文档是单元测试计划和详细设计说明书。

集成测试把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。与其相关的文档是集成测试计划和软件需求说明书。

确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。与其相关的文档是确认测试计划和软件需求说明书。

平行运行把已经经过确认的软件纳入实际运行环境中,与其他系统成份组合在一起进行测试。与其相关的文档:用户指南、使用手册等。

四、应用题(每题8分,共40分)

1、 假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。要求:画出系统的数据流图.

2、 将下面给出的伪码转换为N-S图和PAD图。

输入一元二次方程的系数a, b, c;

}

1. 关于数据的存储结构,以下选项描述正确的是

  1. 数据在计算机中的顺序存储方式
  2. 数据的逻辑结构在计算机中的表示

2. 关于线性链表的描述,以下选项中正确的是

  1. 存储空间不一定连续,且各元素的存储顺序是任意的
  2. 存储空间不一定连续,且前件元素一定存储在后件元素的前面
  3. 存储空间必须连续,且前件元素一定存储在后件元素的前面
  4. 存储空间必须连续,且各元素的存储顺序是任意的

3. 在深度为 7 的满二叉树中,叶子结点的总个数是

4. 关于结构化程序设计所要求的基本结构,以下选项中描述错误的是

5. 关于面向对象的继承,以下选项中描述正确的是

  1. 继承是指一个对象具有另一个对象的性质
  2. 继承是指一组对象所具有的相似性质
  3. 继承是指类之间共享属性和操作的机制
  4. 继承是指各对象之间的共同性质

6. 关于软件危机,以下选项中描述错误的是

7. 关于软件测试,以下选项中描述正确的是

  1. 软件测试的主要目的是发现程序中的错误
  2. 软件测试的主要目的是确定程序中错误的位置
  3. 为了提高软件测试的效率,最好由程序编制者自己来完成软件的测试工作
  4. 软件测试是证明软件没有错误

8. 以下选项中用树形结构表示实体之间联系的模型是

9. 设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程(课号,课程名),选课SC(学号,课号,成绩),表SC的关键字(键或码)是

10.设有如下关系表:

以下选项中正确地描述了关系表 R、S、T 之间关系的是

11. 关于 Python 程序格式框架的描述,以下选项中错误的是

  1. Python 语言不采用严格的“缩进”来表明程序的格式框架
  2. Python 单层缩进代码属于之前最邻近的一行非缩进代码,多层缩进代码根据缩进关系决定所属范围
  3. 判断、循环、函数等语法形式能够通过缩进包含一批 Python 代码,进而表达对应的语义

12. 以下选项中不符合 Python 语言变量命名规则的是

13. 以下关于 Python 字符串的描述中,错误的是

  1. 字符串是用一对双引号" "或者单引号' '括起来的零个或者多个字符
  2. 字符串是字符的序列,可以按照单个字符或者字符片段进行索引
  3. 字符串包括两种序号体系:正向递增和反向递减
  4. Python 字符串提供区间访问方式,采用 [N:M] 格式,表示字符串中从 N 到 M 的索引子字符串(包含 N 和 M)

14. 关于 Python 语言的注释,以下选项中描述错误的是

  1. Python 语言有两种注释方式:单行注释和多行注释
  2. Python 语言的单行注释以#开头
  3. Python 语言的单行注释以单引号 ' 开头
  4. Python 语言的多行注释以 ' ' '(三个单引号)开头和结尾

15. 关于 import 引用,以下选项中描述错误的是

  1. import 保留字用于导入模块或者模块中的对象

16.下面代码的输出结果是

17. 关于 Python 的复数类型,以下选项中描述错误的是

  1. 复数类型表示数学中的复数
  2. 复数的虚数部分通过后缀“J”或者“j”来表示
  3. 对于复数 z,可以用 z.real 获得它的实数部分
  4. 对于复数 z,可以用 z.imag 获得它的实数部分

18. 关于 Python 字符串,以下选项中描述错误的是

  1. 字符串可以保存在变量中,也可以单独存在
  2. 输出带有引号的字符串,可以使用转义字符
  3. 字符串是一个字符序列,字符串中的编号叫“索引”

19. 关于 Python 的分支结构,以下选项中描述错误的是

  1. 分支结构可以向已经执行过的语句部分跳转
  2. 分支结构使用 if 保留字

20. 关于程序的异常处理,以下选项中描述错误的是

  1. 程序异常发生经过妥善处理可以继续执行
  2. 编程语言中的异常和错误是完全相同的概念

21. 关于函数,以下选项中描述错误的是

  1. 函数是一段具有特定功能的、可重用的语句组
  2. 函数能完成特定的功能,对函数的使用不需要了解函数内部实现原理,只要了解函数的输入输出方式即可。
  3. 使用函数的主要目的是减低编程难度和代码重用

22. 关于 Python 组合数据类型,以下选项中描述错误的是

  1. Python 组合数据类型能够将多个同类型或不同类型的数据组织起来,通过单一的表示使数据操作更有序、更容易
  2. 组合数据类型可以分为 3 类:序列类型、集合类型和映射类型
  3. 序列类型是二维元素向量,元素之间存在先后关系,通过序号访问

23. 关于 Python 序列类型的通用操作符和函数,以下选项中描述错误的是

24. 关于 Python 对文件的处理,以下选项中描述错误的是

  1. Python 能够以文本和二进制两种方式处理文件
  2. Python 通过解释器内置的 open() 函数打开一个文件
  3. 当文件以文本方式打开时,读写按照字节流方式
  4. 文件使用结束后要用 close() 方法关闭,释放文件的使用授权

25. 以下选项中不是 Python 对文件的写操作方法的是

26. 关于数据组织的维度,以下选项中描述错误的是

  1. 数据组织存在维度,字典类型用于表示一维和二维数据
  2. 一维数据采用线性方式组织,对应于数学中的数组和集合等概念
  3. 二维数据采用表格方式组织,对应于数学中的矩阵
  4. 高维数据有键值对类型的数据构成,采用对象方式组织

27. 以下选项中不是 Python 语言的保留字的是

28. 以下选项中是 Python 中文分词的第三方库的是

29. 以下选项中使 Python 脚本程序转变为可执行程序的第三方库的是

30. 以下选项中不是 Python 数据分析的第三方库的是

31.下面代码的输出结果是

32.下面代码的输出结果是

33.下面代码的输出结果是

以下选项中能输出“海贝色”的是

35.下面代码的输出结果是

36.下面代码的输出结果是

37.当用户输入abc时,下面代码的输出结果是

38.下面代码的输出结果是

  1. 0

39.文件 book.txt 在当前程序所在目录内,其内容是一段文本:book,下面代码的输出结果是

40.如果当前时间是 2018年5月1日10点10分9秒,则下面代码的输出结果是

1、仅使用 Python 基本语法,即不使用任何模块,编写 Python 程序计算下列数学表达式的结果并输出,小数点后保留3位。

2、以中国共产党第十九次全国代表大会报告中一句话作为字符串变量 s,完善 Python 程序,分别用 Python 内置函数及 jieba 库中已有函数计算字符串 s 的中文字符个数及中文词语个数。注意,中文字符包含中文标点符号。(提交的代码应包括题目中给出的部分)

s = "中国特色社会主义进入新时代,我国社会主要矛盾已经转化为人民日益增长的美好生活需要和不平衡不充分的发展之间的矛盾。"

3、0x4DC0 是一个十六进制数,它对应的 Unicode 编码是中国古老的《易经》六十四卦的第一卦,请输出第 51 卦(震卦)对应的 Unicode 编码的二进制、十进制、八进制和十六进制格式。

1、使用 turtle 库的 turtle.fd() 函数和 turtle.seth() 函数绘制一个边长为 200 的正方形,效果如下图所示。请结合格式框架,补充横线处代码。

2、列表 ls 中存储了我国 39 所 985 高校所对应的学校类型,请以这个列表为数据变量,完善 Python 代码,统计输出各类型的数量。

《论语》是儒家学派的经典著作之一,主要记录了孔子及其弟子的言行。网络上有很多《论语》文本版本。这里给出了一个版本,文件名称为“论语-网络版.txt”,其内容采用如下格式组织:

1.11子曰:“父在,观其(1)志;父没,观其行(2);三年(3)无改于父之道(4),可谓孝矣。”

该版本通过【原文】标记《论语》原文内容,采用【注释】、【译文】和【评析】标记对原文的注释、译文和评析。

问题1:请编写程序,提取《论语》文档中所有原文内容,输出保存到“论语-提取版.txt”文件。输出文件格式要求:去掉文章中原文部分每行行首空格及如“1.11”等的数字标志,行尾无空格、无空行。参考格式如下(原文中括号及内部数字是对应源文件中注释项的标记):

子曰(1):“学(2)而时习(3)之,不亦说(4)乎?有朋(5)自远方来,不亦乐(6)乎?人不知(7),而不愠(8),不亦君子(9)乎?”

有子(1)曰:“其为人也孝弟(2),而好犯上者(3),鲜(4)矣;不好犯上,而好作乱者,未之有也(5)。君子务本(6),本立而道生(7)。孝弟也者,其为人之本与(8)?”

子曰:“巧言令色(1),鲜(2)仁矣。”

问题2:请编写程序,在“论语-提取版.txt”基础上,进一步去掉每行文字中所有括号及其内部数字,保存为“论文-原文.txt”文件。参考格式如下:

子曰:“学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知,而不愠,不亦君子乎?”

有子曰:“其为人也孝弟,而好犯上者,鲜矣;不好犯上,而好作乱者,未之有也。君子务本,本立而道生。孝弟也者,其为人之本与?”

子曰:巧言令色,鲜仁矣。”

索要答案,请留言,最好给出你的程序代码截图

}
  1. 现有关键字序列{45,24,37,53,12,93,47,60},按以下要求完成: (1)根据给定的关键字序列构造一棵二叉查找(排序)树,以二叉链表形式存储,进行中序遍历可以得到从小到大排列的有序序列,请写出构造过程(不要求算法)。

重庆邮电大学 2018 年攻读硕士学位研究生入学考试试题
注:所有答案必须写在答题纸上,试卷上作答无效 ! 第 6 页 (共 6 页)


(1)由于只要求构建二叉排序树不要求平衡,在查找失败的位置插入二叉排序树即可
(构造过程要写,我这里省去)

(2)没有对系统开销作出限制,那我们可以写递归节约我们答题的时间开销

}

我要回帖

更多关于 给定序列的二叉排序树 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信