当前位置:文档之家› 公共基础之软件工程基础

公共基础之软件工程基础

公共基础之软件工程基础
公共基础之软件工程基础

第三章软件工程基础

1.下列叙述中,正确的是( D )。

A)软件就是程序清单B)软件就是存放在计算机中的文件

C)软件应包括程序清单及运行结果D)软件包括程序和文档

2.软件是程序、数据和文档的集合。

3.软件按功能可以分为:应用软件、系统软件、支撑软件(或工具软件)

4.软件工程的出现是由于(C )

A)程序设计方法学的影响B)软件产业化的需要

C)软件危机的出现D)计算机的发展

5.软件工程研究的内容主要包括:软件开发技术和软件工程管理。

6.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(B)

A)软件投机B)软件危机

C)软件工程D)软件产生

7.开发大型软件时,产生困难的根本原因是( A )。

A)大型系统的复杂性B)人员知识不足

C)客观世界千变万化D)时间紧、任务重

8.软件危机出现于20世纪60年代末,为了解决软件危机,人们提出了软件工程学的原

理来设计软件,这就是软件工程诞生的基础。

9.下列不属于软件工程的3个要素的是(D )

A)工具B)过程C)方法D)环境

10.软件工程过程是把输入转化为输出的一组彼此相关的资源和活动。通常,将软件产

品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。

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

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

12.在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是

(D )

A)概要设计B)详细设计C)可行性分析D)需求分析

13.软件开发的结构化生命周期方法将软件生命周期划分成( A )。

A) 定义、开发、运行维护B)设计阶段、编程阶段、测试阶段

C)总体设计、详细设计、编程调试D)需求分析、功能定义、系统设计

14.软件生命周期一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及

维护等活动。

15.软件工程的理论和技术性研究的内容主要包括:软件开发技术和软件工程管理。软

件开发技术包括:软件开发方法学、开发过程、开发工具和软件工程环境,主体内容是软件开发方法学。软件工程管理包括:软件管理学、软件工程经济学、软件心理学等内容。

16.软件工程的理论和技术性研究的内容主要包括软件开发技术和(B )

A)消除软件危机B)软件工程管理

C)程序设计自动化D)实现软件可重用

17.软件工程的原则包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性

和可验证性。

18.开发软件时对提高开发人员工作效率至关重要的是(B )

A)操作系统的资源管理功能B)先进的软件开发工具和环境

C)程序人员的数量D)计算机的并行处理能力

19.软件开发环境或称软件工程环境是全面支持软件开发全过程的软件工具集合。

20.在软件生产过程中,需求信息的给出是( D )。

A)程序员B)项目管理者C)软件分析设计人员D)软件用户

21.需求分析中,开发人员要从用户那里了解( A )。

A)软件做什么B)用户使用界面

C)输入的信息D)软件的规模

22.需求分析阶段的任务是确定( D )

A) 软件开发方法B)软件开发工具

C)软件开发费用D) 软件系统功能

23.下列工具中为需求分析常用工具的是( D )。

A)PAD B)PFD C)N—S D)DFD

24.需求分析的任务是发现需求、求精、建模和定义需求的过程。需求分析将创建所需的数

据模型、功能模型和控制模型。

25.需求分析阶段的工作,可以概括为四个方面:需求获取、需求分析、编写需求规格说明

书、需求评审。

26.结构化方法的核心和基础是结构化程序设计理论。

27.下列不属于结构化分析的常用工具的是( D )。

A)数据流图B)数据字典C)判定树D)PAD图

28.在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是( B )

A)可行性分析B)需求分析C)详细设计D)程序编码

29.数据流图用于抽象描述一个软件的逻辑模型.数据流图由一些特定的图符构成。下列图

符名标识的图符不属于数据流图合法图符的是( A )。

A)控制流B)加工C)数据存储D)源和潭

30.在数据流图(DFD)中的箭头代表的是( A )

A)数据流B)控制流C)调用关系D)组成关系

31.在数据流图(DFD)中,带有名字的箭头表示( D )。

A)模块之间的调用关系B)程序的组成成分

C)控制程序的执行顺序D)数据的流向

32.数据流图的类型有变换型和事务型。

33.Jackson方法是一种面向数据流的结构化方法。

34.在结构化分析方法中,用于描述系统中所用到的全部数据和文件的文档称为数据字

典。

35.软件需求规格说明书是需求分析阶段的最后结果。

36.下列叙述中,不属于软件需求规格说明书的作用的是(D )

A)便于用户、开发人员进行理解和交流

B)反映出用户问题的结构,可以作为软件开发工作的基础和依据

C)作为确认测试和验收的依据

D)便于开发人员进行需求分析

37.( C )是对软件系统所必须解决的问题做出的详细说明。

A)功能描述B)性能描述C)数据描述D)参考文献目录

38.在软件开发中,下面任务不属于设计阶段的是( D )

A)数据结构设计B) 给出系统模块结构

C)定义模块算法D)定义需求并建立系统模型

重庆邮电大学-软件技术基础--实验报告(耿道渠)

《软件技术基础》实验报告 实验名称:顺序表的操作 班级学号姓名 第9 周星期 2 、5,6 节成绩 一、实验目的: 1、掌握顺序表结构的实现方式; 2、掌握顺序表常用算法的实现; 3、熟悉利用顺序表解决问题的一般思路; 4、参照给定的顺序表的程序样例,验证给出的顺序表的常见算法,领会顺序表结构的优点和不足。 二、实验内容: 1、设计一个静态数组存储结构的顺序表,要求编程实现如下任务:(1)建立一个顺序表,首先依次输人整数数据元素(个数根据需要键盘给定)。 (2)删除指定位置的数据元素(指定元素位置通过键盘输入),再依次显示删除后的顺序表中的数据元素。 (3)查找指定数据的数据元素(指定数据由键盘输入),若找到则显示位置,若没有找到则显示0。 2、使用顺序表实现一个电话本的管理程序,电话本中的每条记录包括学号、姓名、手机号码和固定电话四项。要求实现菜单、初始化、添加、删除和显示等功能。 三、实验结果:

四、实验中遇到的问题及解决方法: 第一次编写C++,感觉力不从心,回去多看看PPT。

五、实验心得体会: 对顺序表的一些常用语句不熟悉,对顺序表的整体思路理解不深刻以后要加强练习 附:源程序(自行编写或修改的程序。若为修改程序请注明修改部分的功能,若为书上实例则可不附。) #include #include #include #include #define MAXSIZE 20 using namespace std; int num; typedef struct { string student_number; string name; string tel; string home_phone; int id; } TEL; void shuaxin(TEL *); void delet(TEL *);

计算机公共基础

第一章数据结构与算法 1.1算法 算法:是指解题方案的准确而完整的描述。 算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。 算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。特征包括: (1)可行性; (2)确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可的解释,不允许有多义性; (3)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义; (4)拥有足够的情报。 算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。 指令系统:一个计算机系统能执行的所有指令的集合。 基本运算和操作包括:算术运算、逻辑运算、关系运算、数据传输。 算法的控制结构:顺序结构、选择结构、循环结构。 算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。 算法复杂度:算法时间复杂度和算法空间复杂度。 算法时间复杂度是指执行算法所需要的计算工作量。 算法空间复杂度是指执行这个算法所需要的内存空间。 1.2数据结构的基本基本概念 数据结构研究的三个方面: (1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构; (2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构; (3)对各种数据结构进行的运算。 数据结构是指相互有关联的数据元素的集合。 数据的逻辑结构包含: (1)表示数据元素的信息; (2)表示各数据元素之间的前后件关系。 数据的存储结构有顺序、链接、索引等。 线性结构条件: (1)有且只有一个根结点; (2)每一个结点最多有一个前件,也最多有一个后件。 非线性结构:不满足线性结构条件的数据结构。 1.3线性表及其顺序存储结构 线性表由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。 在复杂线性表中,由若干项数据元素组成的数据元素称为记录,而由多个记录构成的线性表又称为文件。 非空线性表的结构特征: (1)且只有一个根结点a1,它无前件; (2)有且只有一个终端结点an,它无后件; (3)除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。结点个数n称为线性表的长度,当n=0时,称为空表。 线性表的顺序存储结构具有以下两个基本特点: (1)线性表中所有元素的所占的存储空间是连续的; (2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。 ai的存储地址为:ADR(ai)=ADR(a1)+(i-1)k,,ADR(a1)为第一个元素的地址,k代表每个元素占的字节数。 顺序表的运算:插入、删除。(详见14--16页) 1.4栈和队列 栈是限定在一端进行插入与删除的线性表,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。 栈按照“先进后出”(FILO)或“后进先出”(LIFO)组织数据,栈具有记忆作用。用top表示栈顶位置,用bottom表示栈底。 栈的基本运算:(1)插入元素称为入栈运算;(2)删除元素称为退栈运算;(3)读栈顶元素是将栈顶元素赋给一个指定的变量,此时指针无变化。 队列是指允许在一端(队尾)进入插入,而在另一端(队头)进行删除的线性表。Rear指针指向队尾,front 指针指向队头。 队列是“先进行出”(FIFO)或“后进后出”(LILO)的线性表。 队列运算包括(1)入队运算:从队尾插入一个元素;(2)退队运算:从队头删除一个元素。 循环队列:s=0表示队列空,s=1且front=rear表示队列满

软件工程基础知识点总结

软件工程基础部分知识点总结 知识点一软件工程的基本概念 1、软件定义:是计算机系统中与硬件相互依存的另一部分,是包括程序、数据以及相关文档的完整集合。 1)程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列。 2)数据是使程序能够正常操作信息的数据结构。 3)文档是与程序开发、维护和使用有关的图文资料。 国标(GB)计算机软件的定义:与计算机系统的操作相关的计算机程序、规程、规则以及可能有的文件、文档及数据。 2、软件特点: 1)软件是一种逻辑实体,而不是物理实体,具有抽象性,是计算机的无形部分; 2)软件的生产与硬件不同,它没有明显的制作过程; 3)软件在运行、使用期间不存在磨损、老化问题; 4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题; 5)软件复杂性高,成本昂贵; 6)软件开发涉及诸多的社会因素 3、软件的分类: 按照功能可以分为:应用软件、系统软件、支撑软件(或工具软件)

1)应用软件是为解决特定领域的应用而开发的软件。 2)系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。 3)支撑软件是介于系统软件和应用软件之间,协助用户开发软件的工具软件。 4、软件危机:是指在软件的开发和维护过程中所遇到的一系列严重问题。软件危机主要体现在以下几个方面: ①软件开发的实际成本和进度估计不准确 ②开发出来的软件常常不能使用户满意 ③软件产品的质量不高,存在漏洞,需要经常打补丁 ④大量已有的软件难以维护 ⑤软件缺少有关的文档资料 ⑥开发和维护成本不断提高,直接威胁计算机应用的扩大 ⑦软件生产技术进步缓慢,跟不上硬件的发展和人们需求增长 5、软件工程:此概念的出现源自软件危机。软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来开发与维护软件的学科。 1)研究软件工程的主要目的就是在规定的时间、规定的开发费用内开发出满足用户需求的高质量的软件系统(高质量是指错误率低、好用、易用、可移植、易维护等)。 2)软件工程的三个要素:方法、工具和过程。 ①方法:完成软件工程项目的技术手段;

国家二级公共基础知识(程序设计基础、软件工程基础)-试卷1

国家二级公共基础知识(程序设计基础、软件工程基础)-试卷 1 (总分:72.00,做题时间:90分钟) 一、选择题(总题数:36,分数:72.00) 1.选择题下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上。(分数: 2.00) __________________________________________________________________________________________ 解析: 2.下列叙述中正确的是( )。 (分数:2.00) A.程序执行的效率与数据的存储结构密切相关√ B.程序执行的效率只取决于程序的控制结构 C.程序执行的效率只取决于所处理的数据量 D.以上都不正确 解析:解析:影响程序执行效率的因素有很多,如数据的存储结构、程序处理的数据量、程序的算法等。顺序存储结构和链式存储结构在数据插入和删除操作上的效率就存在差别。其中,链式存储结构的效率要高一些。 3.下列描述中,不符合良好程序设计风格要求的是( )。 (分数:2.00) A.程序的效率第一,清晰第二√ B.程序的可读性好 C.程序中要有必要的注释 D.输入数据前要有提示信息 解析:解析:一般来讲,程序设计风格是指编写程序时所表现出的特点、习惯和逻辑思路。程序设计风格总体而言应该强调简单和清晰,程序必须是可以理解的。著名的“清晰第一,效率第二”的论点已成为当今主导的程序设计风格。 4.结构化程序所要求的基本结构不包括( )。 (分数:2.00) A.顺序结构 B.GOTO跳转√ C.选择(分支)结构 D.重复(循环)结构 解析:解析:结构化程序的基本结构有:顺序结构、选择结构和循环结构,没有GOTO跳转结构。 5.下列选项中不属于结构化程序设计原则的是( )。 (分数:2.00) A.可封装√ B.自顶向下 C.模块化 D.逐步求精 解析:解析:结构化设计方法的主要原则可以概括为自顶向下、逐步求精、模块化、限制使用goto语句。 6.结构化程序设计的基本原则不包括( )。 (分数:2.00) A.多元性√ B.自顶向下 C.模块化

二级考试公共基础知识单元软件工程

二级考试公共基础知识单元:软件工程 A005:构成计算机软件的是() A、程序和文档 B、程序和数据 C、程序、数据及相关文档 D、源代码 参考答案:C A006:软件生命周期可分为定义阶段、开发阶段和维护阶段,下面不属于开发阶段任务的是()A、可行性研究B、测试C、设计D、实现 参考答案:A A007:下面不能作为结构化方法软件需求分析工具的是() A、数据字典(DD) B、判定表 C、数据流程图(DFD图) D、系统结构图 参考答案:D A052(图):软件详细设计产生的图如下: 该图是() A、E-R图 B、PAD图 C、程序流程图 D、N-S图 参考答案:C A056:软件设计中划分模块的一个准则是() A、低内聚低耦合 B、高内聚高耦合 C、低内聚高耦合 D、高内聚低耦合 参考答案:D A057:下列选项中不属于结构化程序设计原则的是() A、模块化 B、可封装 C、逐步求精 D、自顶向下 参考答案:B A097:下列不属于软件开发阶段任务的是() A、实现 B、设计 C、可行性研究 D、测试 参考答案:C A148:面向对象方法中,继承是指() A、各对象之间的共同性质 B、类之间共享属性和操作的机制 C、一个对象具有另一个对象的性质 D、一组对象所具有的相似性质 参考答案:B A149:软件生命周期是指()

A、软件的开发过程 B、软件的运行维护过程 C、软件产品从提出、实现、使用维护到停止使用退役的过程 D、软件从需求分析、设计、实现到测试完成的过程 参考答案:C A150:软件测试的目的是() A、评估软件可靠性 B、改正程序中的错误 C、发现程序中的错误 D、发现并改正程序中的错误参考答案:C A189:下列属于系统软件的是() A、财务管理系统 B、数据库管理系统 C、杀毒软件 D、编辑软件word 参考答案:B A190:程序测试的目的是() A、执行测试用例 B、诊断和改正程序中错误 C、发现并改正程序中错误 D、发现程序中的错误 参考答案:D A228:下面对软件特点描述正确的是() A、软件在使用中存在磨损,老化问题 B、软件是一种逻辑实体,具有抽象性 C、软件复制不涉及知识产权 D、软件具有明显的制作过程 参考答案:B A229:下面属于良好程序设计风格的是() A、随意使用无条件转移语句 B、程序效率第一 C、程序输入输出的随意性 D、源程序文档化 参考答案:D A230:下面对软件测试和软件调试叙述错误的是() A、正确的执行测试用例 B、严格执行测试计划,排除测试的随意性 C、软件测试不需考虑测试成本 D、软件调试的目的是改正软件错误 参考答案:C A268:下面属于软件设计阶段产生的文档是() A、详细设计规格说明书 B、数据流程图和数据字典 C、软件需求规格说明书 D、软件确认测试计划 参考答案:A A269:软件工程包括的要素是() A、算法和工具 B、技术和管理 C、算法和过程 D、方法、工具和过程 参考答案:D A308(图):某系统结构图如下图所示,该系统结构图中最大扇出数是()。

c语言公共基础课本

第1章数据结构与算法 1.1算法 1.算法的概念:是指解题方案的准确而完整的描述 2.算法的基本特征:可行性、确定性、有穷性(有限的时间)、拥有足够的情报 3.算法的复杂度:时间复杂度和空间复杂度(1)时间复杂度:算法所需要的计算工作量(算法所执行的基本运算次数) (2)空间复杂度:执行这个算法所需要的内存空间1.2数据结构的基本概念 1.数据结构研究的三个问题 (1)逻辑结构:指反应数据元素之间逻辑关系的数据结构 (2)存储结构(物理结构):数据的逻辑结构在计算机存储空间中的存放形式。

(3)对各种数据结构进行的运算 2.数据结构定义:是指带有结构的数据元素的集合。所谓结构就是指数据元素之间的前 后件关系。 在数据结构中,没有前件的结点称为根结点,没有后件的结点为终端结点(也叫叶子结点)。3.空的数据结构:一个元素都没有的数据结构。4.数据结构的种类:线性结构与非线性结构。 线性结构:有且只有一个根结点,每一个结点最多有一个前件,也最多有一个后件。 非线性结构:如果一个数据结构不是线性结构,则称之为非线性结构。 1.3线性表及其顺序存储 1.线性表是最简单、最常用的一种线性结构。2.非空线性表的结构特征: (1)有且只有一个根结点,无前件

(2)有且只有一个终端(叶子)结点,无后件 (3)除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。 在线性表中结点的个数n称为线性表的长度,当n=0时,称为空表。 3.线性表顺序存储结构的基本特点: (1)所有元素所占的存储空间是连续的 (2)各元素在存储空间中是按逻辑顺序依次存放的4.在长度为n的顺序存储的线性表中,当在任何位置上插入或删除一个元素概率都相等时, 插入或删除一个元素所需移动元素的平均 个数是为n/2。 1.4栈和队列 1.栈:限定在一端进行插入与删除的线性表。 2.栈的结构特点:先进后出或后进先出 3.栈的基本运算:入栈运算、退栈运算、读栈

软件工程知识点总结

软件工程知识点总结 软件工程专业是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。接下来是为大家收集的软件工程知识点总结,以供大家学习! 知识点一软件工程的基本概念 1、软件定义:是计算机系统中与硬件相互依存的另一部分,是包括程序、数据以及相关文档的完整集合。 1)程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列。 2)数据是使程序能够正常操作信息的数据结构。 3)文档是与程序开发、维护和使用有关的图文资料。 国标(GB)计算机软件的定义:与计算机系统的操作相关的计算机程序、规程、规则以及可能有的文件、文档及数据。 2、软件特点: 1)软件是一种逻辑实体,而不是物理实体,具有抽象性,是计算机的无形部分; 2)软件的生产与硬件不同,它没有明显的制作过程; 3)软件在运行、使用期间不存在磨损、老化问题; 4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题; 5)软件复杂性高,成本昂贵; 6)软件开发涉及诸多的社会因素

3、软件的分类: 按照功能可以分为:应用软件、系统软件、支撑软件(或工具软件) 1)应用软件是为解决特定领域的应用而开发的软件。 2)系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。 3)支撑软件是介于系统软件和应用软件之间,协助用户开发软件的工具软件。 4、软件危机:是指在软件的开发和维护过程中所遇到的一系列严重问题。软件危机主要体现在以下几个方面: ①软件开发的实际成本和进度估计不准确 ②开发出来的软件常常不能使用户满意 ③软件产品的质量不高,存在漏洞,需要经常打补丁 ④大量已有的软件难以维护 ⑤软件缺少有关的文档资料 ⑥开发和维护成本不断提高,直接威胁计算机应用的扩大 ⑦软件生产技术进步缓慢,跟不上硬件的发展和人们需求增长 5、软件工程:此概念的出现源自软件危机。软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来开发与维护软件的学科。

软件技术基础教学大纲资料

软件技术基础》教学大纲 课程编号: 23000840 适用专业:电子信息类(非计算机专业) 学时数: 40学分数: 2.5 开课学期:第4 学期 先修课程: 《C 语言》 考核方式:笔试(闭卷) 执笔者:沈晓峰编写日期:2015 年3月审核人(教学副院长): 一、课程性质和目标授课对象:电子信息工程专业大学二年级本科生课程类别:学科拓展课程教学目标: 本课程是针对工科电子信息类本科生开设的一门学科拓展课程。着重培养学生在软件设计领域的基本素质,基本方法和设计理念。授课对象为大学二年级学生,课程任务是通过本课程的学习和相关实验的练习,使学生掌握数据结构、操作系统等软件技术的基本理论知识,具有一定的软件开发能力。 二、教学内容和要求 1、课堂理论教学要求和学时安排(32 学时) 1) C 程序设计(4 学时) (1)C 语言回顾,指针的基本概念、运算方法和使用( 2 学时)。 (2)结构体的基本概念和使用方法(2 学时)。 2)数据结构(20 学时) (1)数据结构的基本概念(2 学时):理解数据结构的基本概念;理解线性和非线性结构的概念。 (2)线性数据结构(9 学时):理解表、栈、队列等线性数据结构的概念,存储方式及基于不同存储方式的相关操作的实现方法。 a. 理解表的概念及顺序表的存储特点,掌握其创建、插入、删除等实现方法(2 学时); b. 掌握单链表、双链表、循环链表的创建、插入、删除方法( 2 学时); c. 理解栈的概念及结构特点,掌握顺序栈及链栈的出栈、入栈操作的实现方法 (2 学时); d. 理解队列的概念及特点,掌握顺序、循环队列的创建、出队、入队、判空、判满等操作。掌握链 队列的创建及出队、入队(2 学时); e. 理解数组的概念及二维数组的存放方式,掌握对称矩阵及稀疏矩阵的压缩存储方法 (1 学时)。

软件工程师考试大纲

一、考试说明 1.考试要求: (1) 掌握数据表示、算术和逻辑运算; (2) 掌握相关的应用数学、离散数学的基础知识; (3) 掌握计算机体系结构以及各主要部件的性能和基本工作原理; (4) 掌握操作系统、程序设计语言的基础知识,了解编译程序的基本知识; (5) 熟练掌握常用数据结构和常用算法; (6) 熟悉数据库、网络和多媒体的基础知识; (7) 掌握C程序设计语言,以及C++、Java、Visual、Basic、Visual C++中的一种程序设计语言; (8) 熟悉软件工程、软件过程改进和软件开发项目管理的基础知识; (9) 熟悉掌握软件设计的方法和技术; (10) 掌握常用信息技术标准、安全性,以及有关法律、法规的基本知识; (11) 了解信息化、计算机应用的基础知识; (12) 正确阅读和理解计算机领域的英文资料。 2.通过本考试的合格人员能根据软件开发项目管理和软件工程的要求,按照系统总体设计规格说明书进行软件设计,编写程序设计规格说明书等相应的文档,组织和指导程序员编写、调试程序,并对软件进行优化和集成测试,开发出符合系统总体设计要求的高质量软件;具有工程的实际工作能力和业务水平。 3.本考试设置的科目包括: (1) 计算机与软件工程知识,考试时间为150分钟,笔试; (2) 软件设计,考试时间为150分钟,笔试。

二、考试范围 考试科目 1.计算机科学基础 1.1 数制及其转换 二进制、十进制和十六进制等常用制数制及其相互转换 1.2 数据的表示 数的表示(原码、反码、补码、移码表示,整数和实数的机内表示,精度和溢出)非数值表示(字符和汉字表示、声音表示、图像表示) 校验方法和校验码(奇偶校验码、海明校验码、循环冗余校验码) 1.3 算术运算和逻辑运算 计算机中的二进制数运算方法 逻辑代数的基本运算和逻辑表达式的化简 1.4 数学基础知识 命题逻辑、谓词逻辑、形式逻辑的基础知识 常用数值计算(误差、矩阵和行列式、近似求解方程、插值、数值积分) 排列组合、概率论应用、应用统计(数据的统计分析) 运算基本方法(预测与决策、线性规划、网络图、模拟) 1.5 常用数据结构 数组(静态数组、动态数组)、线性表、链表(单向链表、双向链表、循环链表)、队列、栈、树(二叉树、查找树、平衡树、线索树、线索树、堆)、图等的定义、存储和操作 Hash(存储地址计算,冲突处理)

计算机软件技术基础实验报告Word版

计算机软件基础实验报告 姓名学号实验目的 1. 掌握C语言程序设计方法,并学会上机调试。 2. 熟悉Huffman编码源程序,并构造Huffman树。 实验内容 1.试设计一算法,从包括n个元素的数组中,求最大和最小元素,并使得当n 个元素为有序排列时,元素之间的比较次数仅为n-1次。 2.在给出的Huffman编码源程序基础上,要求画出Huffman树,求出与等长编 码相比时的压缩比。 实验要求 1.根据实验内容编写算法,并用 C 语言进行程序设计。 2. 将所编程序在计算机上调试通过,并全面测试。 实验结果 1.以一个含有8个元素的一维数组{1,2,3,5,7,8,9,12}为例,设计程序如下: #include int maxArray(int x ,int y); int minArray(int x ,int y); int main(void) { int i = 0 ; int array[8]={ 1,2,3,5,7,8,9,12} ; printf; do { scanf("%d",&array[i]); i++; } while(i < 8); int maxTemp = array[0]; int minTemp = array[0]; int maxIndex = 0; int minIndex = 0; for(i=1;i<8;i++)

maxTemp = maxArray(array[i] , maxTemp); minTemp = minArray(array[i] , minTemp); } for(i=0;i<8;i++) { if (maxTemp == array[i]) { maxIndex = i; } if (minTemp == array[i]) { minIndex = i; } } printf; return 0; } 运行结果如下: 2.Huffman编码源程序 #include #include #include #include #include typedef struct {unsigned int weight; //结点权值 unsigned int parent,lchild,rchild; //结点的父指针,左右孩子指针 }HTNode,*HuffmanTree; //动态分配数组存储哈夫曼树 typedef char **HuffmanCode; //动态分配数组存储哈夫曼编码表 void CreateHuffmanTree(HuffmanTree &,unsigned int*,int ); //生成哈夫曼树 void HuffmanCoding(HuffmanTree,HuffmanCode &,int ); //对哈夫曼树

软件工程基础

(1)构成计算机软件的是 A)源代码 B)程序和数据 C)程序和文档 D)程序、数据及相关文档 (2)软件是指 A)程序 B)程序和文档 C)算法加数据结构 D)程序、数据与相关文档的完整集合 (3)下列描述中正确的是 A)程序就是软件 B)软件开发不受计算机系统的限制 C)软件既是逻辑实体,又是物理实体 D)软件是程序、数据与相关文档的集合 (4)软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是 A)学生成绩管理系统 B)C语言编译程序 C)UNIX操作系统 D)数据库管理系统 (5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是 A)编译程序 B)操作系统 C)教务管理系统 D)汇编程序 (6)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于系统 软件的是 A)编辑软件 B)操作系统 C)教务管理系统 D)浏览器 (7)下面描述中,不属于软件危机表现的是 A)软件过程不规范 B)软件开发生产率低 C)软件质量难以控制 D)软件成本不断提高 (8)下列关于软件工程的描述中正确的是 A)软件工程只是解决软件项目的管理问题 B)软件工程主要解决软件产品的生产率问题 C)软件工程的主要思想是强调在软件开发过程中需要应用工程化原则 D)软件工程只是解决软件开发中的技术问题

(9)下面不属于软件工程的3个要素是 A)工具 B)过程 C)方法 D)环境 (10)下面不属于软件工程过程的4种基本活动 A)软件规格说明 B)软件开发 C)软件演进 D)软件测试 (11)软件生命周期是指 A)软件产品从提出、实现、使用维护到停止使用退役的过程 B)软件从需求分析、设计、实现到测试完成的过程 C)软件的开发过程 D)软件的运行维护过程 (12)软件生命周期中的活动不包括 A)市场调研 B)需求分析 C)软件测试 D)软件维护 (13)软件生命周期可分为定义阶段、开发阶段和维护阶段,下面不属于开发阶段任务的是 A)测试 B)设计 C)可行性研究 D)实现 (14)下列选项中不属于软件生命周期开发阶段任务的是 A)软件测试 B)概要设计 C)软件维护 D)详细设计 (15)软件生命周期可分为定义阶段,开发阶段和维护阶段。详细设计属于A)定义阶段 B)开发阶段 C)维护阶段 D)上述三个阶段 (16)下列描述中正确的是 A)软件交付使用后还需要再进行维护 B)软件工具交付使用就不需要再进行维护 C)软件交付使用后其生命周期就结束 D)软件维护是指修复程序中被破坏的指令 (17)下面不属于软件设计原则的是 A)抽象 B)模块化

软件工程基础知识题库1-0-8

软件工程基础知识题 库1-0-8

问题: [单选]程序员需要用文档来表述自己的思想。文档设计的要点不包括()。 A.文档制作应先做规划,列出纲目,内容的逻辑性要强,并不断改进 B.选择最适合表达某种算法的形式(文本、表格、图) C.尽量保持文档与程序的一致性,文档上下文的4致性 D.采用文档模板以减少以后随软件版本的升级而更新文档的工作量 文档编制要求具有针对性、精确性、清晰性、完整性、灵活性、可追溯性。

问题: [单选]以下关于子类和父类的叙述中,正确的是()。 A.代码中使用父类对象的地方,都可以使用子类对象替换 B.代码中使用子类对象的地方,都可以使用父类对象替换 C.父类定义的对象与子类定义的对象在属性和方法上一定相同 D.父类定义的对象与子类定义的对象在属性和方法上一定不同 一个子类可以继承其父类(或祖先类)中的属性和操作,这些属性和操作在子类中不必定义,子类中还可以定义自己的属性和操作。

问题: [单选]以下关于类和对象的叙述中,正确的是()。 A.由类生成的对象数目可以是0,1,2,… B.由类生成的对象数目一定是1 C.由类生成的对象数目一定不少于1 D.由类生成的对象数目一定不少于2 静态类可以不生成对象,而直接使用属性方法,但是一般的类要创建对象才可以调用属性和方法。出处:飞禽走兽老虎机 https://https://www.doczj.com/doc/f717968499.html,/;

问题: [单选]以下关于面向对象分析与设计叙述中,正确的是()。 A.面向对象分析的结果适合采用C++语言表达 B.面向对象分析的结果适合采用汇编语言表达 C.面向对象设计的结果适合采用UML(UnifiedModelingLanguagE.表达 D.面向对象设计的结果适合采用DFD(DataFlowDiagram)表达 20世纪80年代以后相继出现了多种面向对象分析和设计的方法,较为流行的有Booch方法、Coad和Yourdon方法、Jocobson方法。20世纪90年代出现了统一建模语言(UnifiedModelingLanguage,UML),以其简单、统一,又能够表达软件设计中的动态和静态信息,成为可视化建模语言事实上的工业标准。

软件技术基础实验报告

《计算机软件技术基础》实验报告 专业_____________ 年级_____________ 学号_____________ 学生姓名_____________ 指导老师_____________ 南华大学计算机学院编

【实验报告】

I 实验要求 1.每次实验中有若干习题,每个学生至少应该完成其中的两道习题。 2.上机之前应作好充分的准备工作,预先编好程序,经过人工检查无误后,才能上机,以提高上机效率。 3.独立上机输入和调试自己所编的程序,切忌抄袭、拷贝他人程序。 4.上机结束后,应整理出实验报告。书写实验报告时,重点放在调试过程和小节部分,总结出本次实验中的得与失,以达到巩固课堂学习、提高动手能力的目的。 实验一线性表 【实验目的】 1.熟悉VC环境,学习如何使用C语言实现线性表的两种存储结构。 2.通过编程、上机调试,进一步理解线性表的基本概念,熟练运用C语言实现线性表基本操作。 3.熟练掌握线性表的综合应用问题。 【实验内容】 必做: 1.一个线性表有n个元素(n

软件工程基础(复习题及答案)

复习题 一、判断题(每题2分,共30分) 1.螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析 活动。(对) 2.数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。(错) 3.JAVA语言编译器是一个CASE工具。(对)。 4.软件是指用程序设计语言(如PASCAL,C,VISUALBASIC等)编写的程序,软件开发实际上就是编写程序代码。(错) 5.软件模块之间的耦合性越弱越好。(对) 6.数据库设计说明书是一个软件配置项(对) 7.在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例,对象是生成类的模板。(错) 8.过程描述语言可以用于描述软件的系统结构。(错) 9.如果通过软件测试没有发现错误,则说明软件是正确的。(错) 10.快速原型模型可以有效地适应用户需求的动态变化。(对) 11.模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。(对) 12.集成测试主要由用户来完成。(错) 13.确认测试计划应该在可行性研究阶段制定(错) 14.白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。(错) 15.软件概要设计包括软件系统结构设计以及数据结构和数据库设计。(对) 16.在可行性研究中最难决断和最关键的问题是经济可行性。(╳) 17.耦合是指一个模块内各个元素彼此结合的紧密程度。(╳) 18.一笔交易、一个动作、甚至操作人员按一个按钮都可以看做是一次事物。(√) 19.概要设计阶段完成的主要文档是概要设计说明书。(√) 20.过大的模块可能是由于分解不充分造成的,即使降低模块独立性也必须继续分解。(╳)

全国计算机二级公共基础,精选143题(含答案)

全国计算机二级公共基础143题(含答案) 1.程序测试的目的是(C) A)发现幵改正程序中的错诨 B)诊断和改正程序中的错诨 C)发现程序中的错诨 D)执行测试用例 2.下面属亍系统软件的是(D) A)编辑软件Word B)杀毒软件 C)财务管理系统 D)数据库管理系统 3.下面丌属亍软件设计阶段仸务的是(C) A)软件的总体结构设计 B)软件的数据设计 C)软件的需求分析 D)软件的详细设计 4.下面丌属亍软件需求分析阶段主要工作的是(A) A)需求变更申请 B)需求获取 C)需求分析 D)需求评审 5.软件生命周期可分为定义阶段、开发阶段和维护阶段,下面丌属亍开发阶段仸务的是(C) A)测试 B)实现 C)可行性研究 D)设计 6.构成计算机软件的是(B) A)程序和数据 B)程序、数据及相关文档 C)程序和文档 D)源代码 7.算法的有穷性是指(B) A)算法叧能被有限的用户使用 B)算法程序的运行时间是有限的 C)算法程序所处理的数据量是有限 D)算法程序的长度是有限的 8.在排序过程中,每一次数据元素的移动会产生新的逆序的排序方法是(A)

A)快速排序 B)冎泡排序

C)简单揑入排序 9.下列链表中,其逻辑结构属亍非线性结构的是(A) A)二叉链表 B)双向链表 C)循环链表 D)带链的栈 10.下列不队列结构有关联的是(C) A)多重循环的执行 B)函数的递归调用 C)先到先服务的作业调度 D)数组元素的引用 11.下列叙述中正确的是(A) A)算法的时间复杂度不穸间复杂度没有直接关系 B)一个算法的时间复杂度大,则其穸间复杂度必定小 C)一个算法的穸间复杂度大,则其时间复杂度也必定大 D)一个算法的穸间复杂度大,则其时间复杂度必定小 12.为了对有序表进行对分查找,则要求有序表(D) A)仸何存储方式 B)可以顺序存储也可以链式存储 C)叧能链式存储 D)叧能顺序存储 13.在最坏情况下(B) A)快速排序的时间复杂度不希尔排序的时间复杂度是一样的 B)希尔排序的时间复杂度比直接揑入排序的时间复杂度要小 C)快速排序的时间复杂度比希尔排序的时间复杂度要小 D)快速排序的时间复杂度比冎泡排序的时间复杂度要小 14.线性表的链式存储结构不顺序存储结构相比,链式存储结构的优点有(C) A)排序时减少元素的比较次数 B)节省存储穸间 C)揑入不删除运算效率高 D)便亍查找 15.非穸循环链表所表示的数据结构(A) A)有根结点也有叶子结点 B)没有根结点也没有叶子结点 C)没有根结点但有叶子结点 D)有根结点但没有叶子结点 16.下列叙述中错诨的是(A)

软件工程基础知识测试

1. 选择连续的对象,单击第一个对象后,可按住( )键,并单击( ),则所有连续对象全部选中( )。 A.shift,第一个对象 B.shift,最后一个对象 C.shift,随便一个对象 D.alt,最后一个对象 2.要在Excel单元格中输入数字字符,例如学号“09140202”,下列输入正确的是() A.“09140202” B. =09140202 C. 09140202 D. ’09140202 3. WWW浏览器使用的应用协议是( )。 A.HTTP B.TCP/IP C.FTP D.Telnet 4. 以下程序运行时输出结果是 ( ) 。 #include #define M 3 #defme N M+1 #define NN N*N/2 main() . {printf("%d\n",NN);} A.8 B.7 C.6 D.5 5.从第一代计算机到第四代计算机的体系结构都是相同的,都是由运算器、控制器、存储器以及输入输出设备组成的。这种体系结构称为( )体系结构。 A.艾伦.图灵 B. 罗伯特.诺依斯 C. 比尔.盖茨 D. 冯.诺依曼 6.以下程序运行时输出结果是( ) 。 #include void f(int a[],int n,int x,int *c); int main() { int a[10]={1,3,5,2,3,5,3,7,4,1},t=0; f(a,10,5,&t); printf("%d",t); return 0; } void f(int a[],int n,int x,int *c) { if(n==0) return; if(a[0]>=x) (*c)++; f(a+1,n-1,x,c);}

软件工程基础知识

软件工程基础 一.选择题 1。软件需求分析阶段的工作,可以分为4个方面:需求获取,需求分析,编写需求规格说明书以及(B) A).用户 B).需求审评 C).总结 D).都不正确 2。在原型法中称(A)为用户/设计者,开发人员根据用户需求不断修改原型,直到满足用户要求为止。 A).用户 B).开发人员 C).系统分析员 D).程序员 3。下面不属于软件工程的3个要素是(D) A).工具 B).过程 C).方法 D).环境 4检查软件产品是否符合需求定义的过程称为(A) A).确认测试 B).集成测试 C).验证测试 D).验收测试 5.数据存储和数据流都是(D),仅仅是所处的状态不同。 A).分析结果 B).事件 C).动作 D).数据 6。数据流图和(C)共同组成系统的逻辑模型。 A).HIPO图 B).PD)L C).数据字典 D).层次图 7。数据元素组成数据的方式的基本类型(D) A).顺序 B).选择 C).循环 D).以上全部 8。数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是(A)。 A).控制流 B).加工 C).数据存储

9。结构化分析方法就是面向(B)的自顶向下逐步求精进行需求分析的方法。 A).目标 B).数据流 C).功能 D).对象 10。通过(B)可以完成数据流图的细化。 A).结构分解 B).功能分解 C).数据分解 D).系统分解 11。下面不属于软件工程原则的是(C) A).抽象 B).模块化 C).自底向上 D).信息隐蔽 12。(D)是数据说明、可执行语句等程序对象的集合,它是单独命名的而且可以通过名字来访问。 A).模块化 B).抽象 C).精化 D).模块 13。(C)是指让一些关系密切的软件元素在物理上彼此靠近。 A).信息隐蔽 B).内聚 C).局部化 D).模块独立 14。面向数据流的设计方法把(D)映射成软件结构。 A).数据流 B).系统结构 C).控制结构 D).信息流 15。程序流程图(PDF)中的箭头代表的是(B)。 A).数据流 B).控制流 C).调用关系 D).组成关系 16。在进行软件结构设计时应该遵循的最主要的原理是(C) A).抽象 B).模块化 C).模块独立 D).信息隐蔽 17。在结构化方法中,软件功能分解属于软件开发中的(C)阶段。 A).详细设计

软件技术基础实验一

软件技术基础实验一单链表的各种基本运算的实现

单链表的各种基本运算的实现 一. 实验目的: 1. 熟悉c语言上机环境; 2. 实现单链表的创建; 3. 掌握单链表的基本操作:插入、删除、输出等运算; 二. 实验内容: 编写一个程序,实现单链表的各种基本操作,并在此基础上设计一个主程序完成如下功能: 1.初始化单链表: 2 .依次采用头插法插入从文件中读取的多个元素; 3. 输出单链表; 4. 在第四个元素位置上插入从文件中读取的单个元素; 5. 删除该单链表的从文件中指定序数的元素; 三. 完整的源程序 #include #include #include #include #define max 10 #define num 6 int a[20]; int i; typedef struct link { int data; struct link *next; }link;

/*初始化单链表*/ initlink(link *L) ( L= NULL; L= ( link *)malloc(sizeof(link)); /* 建立表头结点*/ L->next = NULL; L->data = 0; } void hcreat(link *L) /*头插法插入从文件中读取的多个元素*/ ( link *s; L->next=NULL; s=(struct link*)malloc(sizeof(struct link)); int i=0; FILE *fp; if((fp=fopen("h:\\a.txt”,"r"))==NULL) printf("error!\n"); printf("文件中的数为:\n"); while(!feof(fp)&& idata=a[i]; s->next=L->next; L->next=s; i++; } fclose(fp); } void print(link *L) /* 输出单链表*/ ( link *p=L->next; while(p!=NULL) ( printf ("%d ",p->data); p=p->next; } printf("\n"); int insert(link *L, int i) ( int j,m;

软件工程复习资料98860

1.什么是软件工程?他的基本原理是什么? 1)软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,经济地开发出高质量的软件并有效地维护它。 2)用分阶段的生命周期计划严格管理、坚持进行阶段评审、实行严格的产品控制、采用现代程序设计技术、结果应能清楚的审查、开发小组的人员应该少而精、承认不断改进软件工程实践的必要性。 2. 是什么导致了软件工程? 主要是软件危机的出现导致了软件工程 3. 通常我们所见的软件工程模型有哪些? 瀑布模型、快速原型模型、增量模型(渐增模型)、螺旋模型、喷泉模型。 21.软件危机的现象: 1)经费超出预算,项目一再拖延。 2)不重视需求,开发的软件不能满足用户的要求,项目成功率低。 3)没有规范的软件工程方法,软件可维护性差,软件质量差,可靠性差。 3)开发工具落后,手工方式,开发效率低。 22.软件工程的三要素 1)“过程”是软件产品加工所经历的一系列有组织的活动,保证能够合理、高质量开发出软件。 2)“方法”为软件开发提供“如何做”的技术。它涵盖了项目计划、需求分析、系统程序()实现、测试与维护灯一系列活动的做法。 3)“工具”可为过程和方法提供自动的或半自动的支持。这些工具既包括软件,也包括硬件,软件工具包括编程、建模、管理等开发工具。通过网络环境把这些软件工具集成起来搭建一个能够支持团队开发的平台,称为计算机辅助软件工程,即CASE。 CASE集成了软件、硬件和()存放开发过程信息的软件工程数据库,形成了一个软件工程环境。 23.简述软件工程的目标,过程和原则 1)目标、过程和原则是一切工程的三维框架,,这里是以工程的观点来看待软件开发。 软件工程的目标:降低成本,及时交付高质量的软件产品。 实现目标的过程即完成产品加工的过程:包括:基本过程、支持过程和组织过程 进行过程应遵守的原则:原则就是过程中的轨道约束,包括:选取适宜的开发范型、适合的设计方法、提供高质量的工程支持、重视开发过程的管理。 24.对比瀑布模型,原型模型,增量模型和螺旋模型 1)瀑布模型:主要体现了分阶段、有控制的思想。活动间强调按顺序、文档化;存在的问题是过于理想化,每一步的工作必须完整准确,否则无法进行下一步工作2)原型模型:需求分析入手快速、表达直观、容易交流。重点解决瀑布模型的需求分析入手难的问题。 3)增量模型:对于需求复杂的系统,采用分块开发、逐步集成的开发策略。增量体现了演进、迭代思想,每一块就是一个增量。每个增量试一次迭代。增量模型的 新版本叫做“极限编程(XP)”。 4)螺旋模型:融合了上述3种模型,融进了循环往复、强化了演进迭代的思想,增加了风险控制环节。但是,风险分析的正确性是左右软件演进的关键因素。25. 当需求不能一次搞清楚,且系统需求较复杂时应选用什么模型? 开发模型不是孤立或排斥的,他们之间需要相互借鉴和参考。螺旋模型是一种综合性

相关主题
文本预览
相关文档 最新文档