网络攻防技术 试题答案Word格式文档下载.docx
《网络攻防技术 试题答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《网络攻防技术 试题答案Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。
它的主要观点是采用自顶向下、逐步求精的程序设计方法,使用三种基本控制结构构造程序。
任何程序都可由顺序、选择、循环三种基本控制结构构造。
5.解释一下C语言中结构体的概念?
结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。
6.什么是数据结构?
数据结构在计算机中如何表示?
数据结构是计算机存储、组织数据的方式。
数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。
常用的数据结构有数组、栈、队列、链表、树、图、堆和散列表等。
数据结构在计算机中的表示成为数据的物理结构,又称为存储结构,包括数据元素的表示和关系的表示。
表示方法有结点、顺序存储结构和链式存储结构。
7.解释一下数据结构中线性表的概念?
线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。
8.解释一下数据结构中树的概念?
树是由一个集合以及在该集合上定义的一种关系构成的。
集合中的元素称为树的结点,所定义的关系称为父子关系。
父子关系在树的结点之间建立了一个层次结构,这个结点称为该树的根结点。
树的递归定义:
树(Tree)是n(n≥0)个结点的有限集T,T为空时称为空树,否则它满足如下两个条件:
(1)有且仅有一个特定的称为根(Root)的结点;
一个根节点
(2)其余的结点可分为m(m≥0)个互不相交的子集Tl,T2,…,Tm,其中每个子集本身又是一棵树,并称其为根的子树(Subree)。
9.解释一下数据结构中队列的概念?
队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。
10.为什么要实施软件工程?
软件的快速发展:
需求越来越高、规模越来越大、种类越来越多、结构越来越复杂;
软件危机的存在:
软件的特点及传统开发方法使软件危机四伏
11.软件工程的基本内容是什么?
软件工程研究如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,如何把正确的管理技术和当前最好的技术方法结合起来。
主要内容:
软件开发技术、软件工程管理。
12.有哪几种主要的软件开发模型?
瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型。
13.软件有哪些主要特点?
(1)软件具有抽象性;
(2)软件不是制造出来的;
(3)软件没有磨损和老化,有生命周期;
(4)对计算机系统有依赖性;
14.软件是如何分类的?
一般来讲软件被划分为系统软件、应用软件,管理软件、行业软件、安全防护软件、多媒体软件、游戏软件
(1)按软件功能划分:
系统软件、支撑软件、应用软件
(2)按软件规模进行划分:
微型、小型、中型、大型、甚大型、极大型、
(3)按工作方式划分:
实时处理软件、分时软件、交互式软件、批处理软件
(4)按软件服务对象的范围划分:
项目软件、产品软件
(5)按使用的频度进行划分:
一次使用、频繁使用
(6)按软件失效的影响进行划分:
高可靠性软件、一般可靠性软件
15.什么是软件危机?
其主要表现有哪些?
落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。
表现:
1软件开发成本进度失控;
2用户不满意;
3软件产品的质量靠不住;
4缺乏文档资料;
5软件不可维护;
6软件成本占计算机系统总成本的比例上升;
7软件开发生产率的提高跟不上计算机普及深入的趋势。
16.什么是软件工程?
软件工程是研究如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,如何把正确的管理技术和当前最好的技术方法结合起来。
17.什么是软件工程的三要素?
方法、工具和过程
18.软件工程的知识结构包括哪些主要内容?
软件需求、软件设计、软件构造、软件测试、软件维护、软件配置管理、软件工程管理、软件工程过程、软件工程工具和方法、软件质量
19.什么是软件工程中的配置管理?
配置管理(ConfigurationManagement,CM)是通过技术或行政手段对软件产品及其开发过程和生命周期进行控制、规范的一系列措施。
配置管理的目标是记录软件产品的演化过程,确保软件开发者在软件生命周期中各个阶段都能得到精确的产品配置。
20.软件工程中文档的作用是什么?
1)阶段工作成果和结束标志;
2)向管理人员提供软件开发过程中的进展和情况;
3)记录开发过程中的技术信息,便于协调以后的软件开发、使用和修改;
4)便于各类人员之间相互了解彼此的工作;
5)向潜在用户报告软件的功能和性能。
21.软件工程的基本原则有哪些?
1选取适宜开发范型;
2采用合适的设计方法;
3提供高质量的工程支持;
4重视开发过程的管理.
22.如何选择软件过程模型?
1)模型应符合软件本身的性质(规模、复杂性)
2)模型应满足软件应用系统整体开发进度要求
3)模型应有可能控制并消除软件开发风险
4)模型应有可用的计算机辅助工具(如快速原型工具)的支持
5)模型应与用户和软件开发人员的知识和技能相匹配
6)模型应有利于软件开发的管理与控制
23.什么是软件设计?
应用各种技术和原理,详细定义一个设备、程序或系统的物理实现的过程。
24.软件设计的目标和目的是什么?
1付出较低的开发成本、2达到要求的软件功能、3取得较好的软件性能、4开发的软件易于移植、5需要较低的维护费用、6能按时完成开发工作,7及时交付使用
25.软件设计的任务是什么?
数据设计:
将分析时创建的信息域模型变换为实现软件所需的数据结构
结构设计:
定义软件系统各主要部件之间的关系
接口设计:
描述软件内部、软件和协作系统之间以及软件与人之间如何通信
过程设计:
把系统结构部件转换成软件单元的过程性描述
26.软件设计的过程包括哪些主要内容?
软件的设计是一个将需求转变为软件陈述(表达)的过程。
通过逐步求精使得设计陈述逐渐接近源代码。
这里有两个基本步骤;
第一步是初步设计,将需求转换成数据和软件框架。
第二步是详细设计,将框架逐步求精细化为具体的数据结构和软件的算法表达。
27.良好的软件设计的特征有哪些?
设计必须实现所有包含在分析模型中的明示需求,并且必须满足客户希望的所有潜在需求;
设计对于软件的编码、测试、维护人员必须是可读的、可理解的;
设计应该提供软件的完整面貌,包括从实现角度所见的数据、功能、流程。
28.软件设计的原则有哪些?
1设计对于分析模型应该是可跟踪的;
2设计结构应该尽可能的模拟实际问题;
3设计应该表现出一致性;
4不要把设计当成编写代码;
5在创建设计时就应该能够评估质量;
6评审设计以减少语义性的错误;
7设计应该模块化。
29.什么是软件设计中的内聚?
主要有哪些类型?
内聚指的是一个模块内部各组成部分的处理动作的组合强度,又称块内联系。
偶然内聚、逻辑内聚、时间内聚、过程内聚、通讯内聚、顺序内聚、功能内聚。
30.什么是软件设计中的耦合?
主要哪些等级?
耦合(coupling)指的是两个模块之间的相互依赖关系,又称块间联系。
非直接耦合、数据耦合、特征耦合、控制耦合、外部耦合、公共耦合、内容耦合。
31.什么是软件设计中的数据设计?
有主要原则有哪些?
将模型转换成数据结构的定义。
选择需求定义、规格说明中提出的数据对象的逻辑表示。
原则:
(1)用于功能和行为的系统分析原则也应用于数据
(2)应该标识所有的数据结构以及其上的操作
(3)应当建立数据字典,并用于数据设计和程序设计
(4)低层的设计决策应该推迟到设计过程的后期
(5)只有那些需要直接使用数据结构内部数据的模块才能看到该数据的表示
(6)应该开发一个由有用的数据结构和应用于其上的操作组成的库
(7)软件设计和程序设计语言应该支持抽象数据类型的规格说明和实现。
32.什么是软件设计中的结构设计?
开发一个模块化的程序结构,表示出模块之间的控制关系,将程序设计和数据结构相结合,为数据在程序中的流动定义接口。
33.什么是软件设计中的可靠性设计和安全设计?
可靠性设计:
应根据系统的可靠性要求,按照可靠性设计准则开展设计工作,并在必要时,进行容错、避错等专门的可靠性设计工作。
要特别注意对软件出错处理的设计工作,不仅要设计对硬件等软件外系统出错时的处理,而且还要在假定最终软件产品必定还会有错的情况下,进行软件出错的处理设计。
安全设计:
在体系结构设计中应充分考虑系统对软件的安全性需求,进行安全性分析,确定安全性关键的软件部件,采取相应的安全性设计措施。
34.如何选择编程语言?
应用领域、算法及运算的复杂性、软件运行的环境、性能、数据结构的复杂性、软件开发组成员对该语言的熟悉程度
35.什么是源程序文档化?
选择好标识符的名字,安排必要的注解,使得程序的结构一目了然,便于他人阅读,这样的过程叫做源程序文档化。
36.什么是程序中的注释?
包括哪几种主要类型?
注释就是对代码的解释和说明。
目的是为了让别人和自己很容易看懂。
夹在程序中的注释是程序员与日后的程序读者之间通信的重要手段。
序言性注释和功能性注释
37.如何理解程序的效率?
程序的效率是指程序的执行速度及程序所需占用的内存的存储空间。
38.程序的复杂性如何度量?
一个程序的复杂性的高低体现在运行该程序所需要的计算机资源的多少上面,所需的资源越多,我们就说该程序的复杂性越高;
反之,则该算法的复杂性越低。
度量方法有代码行度量法、McCabe度量法、Halstead度量法。
39.什么是软件中的调试?
有哪些调试策略?
编好程序后,用各种手段进行查错和排错的过程。
作为程序的正确性不仅仅表现在正常功能的完成上,更重要的是对意外情况的正确处理。
调试策略:
试探法、回溯法、对分查找法、归纳法、演绎法
40.软件调试过程中修改错误的原则有哪些?
1、在出现错误的地方很可能还有别的错误
2、修改错误的一个常见失误是只修改了这个错误的征兆或这个错误的表现,而没有修改错误的本身
3、当心修正一个错误的同时有可能会引入新的错误
4、修改错误的过程将迫使人们暂时回到程序设计阶段
5、修改源代码程序,不要改变目标代码
41.软件测试的目的是什么?
从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。
从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心
42.软件测试的原则是什么?
1.应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。
2.测试用例应由测试输入数据和对应的预期输出结果这两部分组成。
3.程序员应避免检查自己的程序。
4.在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。
5.充分注意测试中的群集现象。
经验表明,测试后