结构化程序是从软件工程的观点出发,把软件的产生看成是系统工程,有严格的规范,按一定的步骤展开。结构化程序设计的思想是一种面向过程的概念,它是把一个实际问题分成两部分,即数据和过程,通过动态的程序执行过程来对静态的数据进行存储。分析。处理,最后得出正确的结果。
结构化程序设计的特点:
1) 整个程序模块化。
2) 每个模块只有一个入口和一个出口。
3) 每个模块都应能单独执行,且无死循环。
4) 采用自顶向下。逐步求精的方法。
◆三种基本结构
1 顺序结构
顺序结构是程序设计中最基本的结构。在该结构中,程序的执行是按命令出现的先后顺序依次执行的。
2 分支结构
分支结构是按给定的选择条件成立与否来确定程序的走向。分支可分为单向选择分支。双向选择分支和多路分支。在任何条件下,无论分支多少,只能选择其一。
3 循环结构
循环结构是一种重复结构,程序的执行发生了自下而上的往复,某一程序段将重复执行。按循环的嵌套层次,循环可分为单循环结构和多循环结构。按循环体执行的条件性质,循环又可分为记数循环和条件循环。无论何种类型的循环结构,都要确保循环的重复执行能得到终止。
结构化程序的概念首先是从以往编程过程中无限制地使用转移语句而提出的。转移语句可以使程序的控制流程强制性的转向程序的任一处,在传统流程图中,就是用上节我们提到的"很随意"的流程线来描述这种转移功能。如果一个程序中多处出现这种转移情况,将会导致程序流程无序可寻,程序结构杂乱无章,这样的程序是令人难以理解和接受的,并且容易出错。尤其是在实际软件产品的开发中,更多的追求软件的可读性和可修改性,象这种结构和风格的程序是不允许出现的。为此提出了程序的三种基本结构。
在讨论算法时我们列举了程序的顺序、选择和循环三种控制流程,这就是结构化程序设计方法强调使用的三种基本结构。算法的实现过程是由一系列 *** 作组成的,这些 *** 作之间的执行次序就是程序的控制结构。1996年,计算机科学家Bohm和Jacopini证明了这样的事实:任何简单或复杂的算法都可以由顺序结构、选择结构和循环结构这三种基本结构组合而成。所以,这三种结构就被称为程序设计的三种基本结构。也是结构化程序设计必须采用的结构。
1 顺序结构
顺序结构表示程序中的各 *** 作是按照它们出现的先后顺序执行的,其流程如图1-6所示。图中的s1和s2表示两个处理步骤,这些处理步骤可以是一个非转移 *** 作或多个非转移 *** 作序列,甚至可以是空 *** 作,也可以是三种基本结构中的任一结构。整个顺序结构只有一个入口点a和一个出口点b。这种结构的特点是:程序从入口点a开始,按顺序执行所有 *** 作,直到出口点b处,所以称为顺序结构。上一节图1-2表示的就是一个顺序结构的流程图。事实上,不论程序中包含了什么样的结构,而程序的总流程都是顺序结构的。例如,在图1-3、图1-4和图1-5所表示的流程图中,其总体结构流程都是自上而下顺序执行的。
2选择结构
选择结构表示程序的处理步骤出现了分支,它需要根据某一特定的条件选择其中的一个分支执行。选择结构有单选择、双选择和多选择三种形式。
双选择是典型的选择结构形式,其流程如图1-8所示,图中的s1和s2与顺序结构中的说明相同。由图中可见,在结构的入口点a处是一个判断框,表示程序流程出现了两个可供选择的分支,如果条件满足执行s1处理,否则执行s2处理。值得注意的是,在这两个分支中只能选择一条且必须选择一条执行,但不论选择了哪一条分支执行,最后流程都一定到达结构的出口点b处。前面的图1-3中就采用了双选择结构流程图。
当s1和s2中的任意一个处理为空时,说明结构中只有一个可供选择的分支,如果条件满足执行s1处理,否则顺序向下到流程出口b处。也就是说,当条件不满足时,什么也没执行,所以称为单选择结构,如图1-7所示。
多选择结构是指程序流程中遇到如图1-9所示的s1、s2、……、sn等多个分支,程序执行方向将根据条件确定。如果满足条件1则执行s1处理,如果满足条件n则执行Sn处理,总之要根据判断条件选择多个分支的其中之一执行。不论选择了哪一条分支,最后流程要到达同一个出口处。如果所有分支的条件都不满足,则直接到达出口。有些程序语言不支持多选择结构,但所有的结构化程序设计语言都是支持的,C语言是面向过程的结构化程序设计语言,它可以非常简便的实现这一功能。本书在第五章将详细介绍各种形式的选择结构应用问题。
3循环结构
循环结构表示程序反复执行某个或某些 *** 作,直到某条件为假(或为真)时才可终止循环。在循环结构中最主要的是:什么情况下执行循环?哪些 *** 作需要循环执行?循环结构的基本形式有两种:当型循环和直到型循环,其流程如图1-10所示。图中虚线框内的 *** 作称为循环体,是指从循环入口点a到循环出口点b之间的处理步骤,这就是需要循环执行的部分。而什么情况下执行循环则要根据条件判断。
当型结构:表示先判断条件,当满足给定的条件时执行循环体,并且在循环终端处流程自动返回到循环入口;如果条件不满足,则退出循环体直接到达流程出口处。因为是"当条件满足时执行循环",即先判断后执行,所以称为当型循环。其流程如图1-10(a)所示。
直到型循环:表示从结构入口处直接执行循环体,在循环终端处判断条件,如果条件不满足,返回入口处继续执行循环体,直到条件为真时再退出循环到达流程出口处,是先执行后判断。因为是"直到条件为真时为止",所以称为直到型循环。其流程如图1-10(b)所示。本章图1-5用迭代法求和的流程图就是一个典型的直到型循环结构。
同样,循环型结构也只有一个入口点a和一个出口点b,循环终止是指流程执行到了循环的出口点。图中所表示的S处理可以是一个或多个 *** 作,也可以是一个完整的结构或一个过程。
整个虚线框中是一个循环结构。
通过三种基本控制结构可以看到,结构化程序中的任意基本结构都具有唯一入口和唯一出口,并且程序不会出现死循环。在程序的静态形式与动态执行流程之间具有良好的对应关系。
132 N-S流程图
N-S流程图是结构化程序设计方法中用于表示算法的图形工具之一。对于结构化程序设计来说,传统流程图已很难完全适应了。因为传统流程图出现得较早,它更多地反映了机器指令系统设计和传统程序设计方法的需要,难以保证程序的结构良好。另外,结构化程序设计的一些基本结构在传统流程图中没有相应的表达符号。例如,在传统流程图中,循环结构仍采用判断结构符号来表示,这样不易区分到底是哪种结构。特别是传统流程图由于转向的问题而无法保证自顶而下的程序设计方法,使模块之间的调用关系难以表达。为此,两位美国学者Nassi和Shneiderman于1973年就提出了一种新的流程图形式,这就是N-S流程图,它是以两位创作者姓名的首字母取名,也称为Nassi Shneiderman图。
N-S图的基本单元是矩形框,它只有一个入口和一个出口。长方形框内用不同形状的线来分割,可表示顺序结构、选择结构和循环结构。在N-S流程图中,完全去掉了带有方向的流程线,程序的三种基本结构分别用三种矩形框表示,将这种矩形框进行组装就可表示全部算法。这种流程图从表达形式上就排除了随意使用控制转移对程序流程的影响,限制了不良程序结构的产生。
与顺序、选择和循环这三种基本结构相对应的N-S流程图的基本符号如图1-11所示。图1-11(a)和图1-11(b)分别是顺序结构和选择结构的N-S图表示,图1-11(c)和图1-11(d)是循环结构的N-S图表示。由图可见,在N-S图中,流程总是从矩形框的上面开始,一直执行到矩形框的下面,这就是流程的入口和出口,这样的形式是不可能出现无条件的转移情况。下面用N-S流程图表示前面例1-2中求函数值m的算法,其流程如图1-12所示。
值得注意的是,N-S流程图是适合结构化程序设计方法的图形工具,对于非结构化的程序,用N-S流程图是无法表示的。
例如在例1-3中,求任意两个正整数的最大公约数,其算法是非常经典的,图1-5中用传统流程图表示了该算法,但是这个算法却无法直接用N-S流程图表示。因为该算法的关键是执行一个循环结构,但图1-5表示的循环结构既不是当型循环,也不是直到型循环,这样,用N-S流程图就无法表示。如果将例1-3中的算法稍作调整,使流程图采用单选择结构形式,其中的条件改为r≠0,这样就可以用直到型循环的N-S流程图表示这个算法。图1-13是表示例1-3的N-S流程图。
N-S流程图是描述算法的重要图形工具之一,在结构化程序设计中得到了广泛应用。在此仅作简单介绍,旨在抛砖引玉。在实际软件开发中,有兴趣的读者可参阅有关软件工程或软件开发技术等方面的著作。
133 结构化程序设计方法
结构化程序设计方法是公认的面向过程编程应遵循的基本方法和原则。结构化程序设计方法主要包括:①只采用三种基本的程序控制结构来编制程序,从而使程序具有良好的结构;②程序设计自顶而下;③用结构化程序设计流程图表示算法。
有关结构化程序设计及方法有一整套不断发展和完善的理论和技术,对于初学者来说,完全掌握是比较困难的。但在学习的起步阶段就了解结构化程序设计的方法,学习好的程序设计思想,对今后的实际编程是很有帮助的。
1结构化程序设计特征
结构化程序设计的特征主要有以下几点:
(1) 以三种基本结构的组合来描述程序;
(2) 整个程序采用模块化结构;
(3) 有限制地使用转移语句,在非用不可的情况下,也要十分谨慎,并且只限于在一个结构内部跳转,不允许从一个结构跳到另一个结构,这样可缩小程序的静态结构与动态执行过程之间的差异,使人们能正确理解程序的功能;
(4) 以控制结构为单位,每个结构只有一个入口,一个出口,各单位之间接口简单,逻辑清晰;
(5) 采用结构化程序设计语言书写程序,并采用一定的书写格式使程序结构清晰,易于阅读;
(6) 注意程序设计风格。
2 自顶而下的设计方法
结构化程序设计的总体思想是采用模块化结构,自上而下,逐步求精。即首先把一个复杂的大问题分解为若干相对独立的小问题。如果小问题仍较复杂,则可以把这些小问题又继续分解成若干子问题,这样不断地分解,使得小问题或子问题简单到能够直接用程序的三种基本结构表达为止。然后,对应每一个小问题或子问题编写出一个功能上相对独立的程序块来,这种象积木一样的程序块被称为模块。每个模块各个击破,最后再统一组装,这样,对一个复杂问题的解决就变成了对若干个简单问题的求解。这就是自上而下,逐步求精的程序设计方法。
确切地说,模块是程序对象的集合,模块化就是把程序划分成若干个模块,每个模块完成一个确定的子功能,把这些模块集中起来组成一个整体,就可以完成对问题的求解。这种用模块组装起来的程序被称为模块化结构程序。在模块化结构程序设计中,采用自上而下,逐步求精的设计方法便于对问题的分解和模块的划分,所以,它是结构化程序设计的基本原则。
例1-9: 求一元二次方程:
ax2+bx+c=0
的根。
分析:先从最上层考虑,求解问题的算法可以分成三个小问题,即:输入问题、求根问题和输出问题。这三个小问题就是求一元二次方程根的三个功能模块:输入模块M1、计算处理模块M2和输出模块M3。其中M1模块完成输入必要的原始数据,M2模块根据求根算法求解,M3模块完成所得结果的显示或打印。这样的划分,使求一元二次方程根的问题变成了三个相对独立的子问题,其模块结构如图1-14所示。
分解出来的三个模块从总体上是顺序结构。其中M1和 M3模块是完成简单的输入和输出,可以直接设计出程序流程,不需要再分解。而M2模块是完成求根计算,求根则需要首先判断二次项系数a是否为0。当a=0时,方程蜕化成一次方程,求根方法就不同于二次方程。如果a≠0,则要根据b2-4ac的情况求二次方程的根。可见M2模块比较复杂,可以将其再细化成M21和M22两个子模块,分别对应一次方程和二次方程的求根,其模块结构如图1-15所示。
此次分解后,M21子模块的功能是求一次方程的根,其算法简单,可以直接表示。M22是求二次方程的根,用流程图表示算法如图1-16所示,它由简单的顺序结构和一个选择结构组成,这就是M22模块最细的流程表示。然后,按照细化M22模块的方法,分别将M1、M21和M3的算法用流程图表示出来,再分别按图1-15和图1-14的模块结构组装,最终将得到细化后完整的流程图。
可见,编制程序与建大楼一样,首先要考虑大楼的整体结构而忽略一些细节问题,待把整体框架搭起来后,再逐步解决每个房间的细节问题。在程序设计中就是首先考虑问题的顶层设计,然后再逐步细化,完成底层设计。使用自顶向下、逐步细化的设计方法符合人们解决复杂问题的一般规律,是人们习惯接受的方法,可以显著地提高程序设计的效率。在这种自顶而下、分而治之的方法的指导下,实现了先全局后局部,先整体后细节,先抽象后具体的逐步细化过程。这样编写的程序具有结构清晰的特点,提高程序的可读性和可维护性。
3 程序设计的风格
程序设计风格从一定意义上讲就是一种个人编写程序时的习惯。而风格问题不象方法问题那样涉及一套比较完善的理论和规则,程序设计风格是一种编写程序的经验和教训的提炼,不同程度和不同应用角度的程序设计人员对此问题也各有所见。正因为如此,程序设计风格很容易被人们忽视,尤其是初学者。结构化程序设计强调对程序设计风格的要求。因为,程序设计风格主要影响程序的可读性。一个具有良好风格的程序应当注意以下几点:
(1) 语句形式化。程序语言是形式化语言,需要准确,无二义性。所以,形式呆板、内容活泼是软件行业的风范;
(2) 程序一致性。保持程序中的各部分风格一致,文档格式一致;
(3) 结构规范化。程序结构、数据结构、甚至软件的体系结构要符合结构化程序设计原则;
(4) 适当使用注释。注释是帮助程序员理解程序,提高程序可读性的重要手段,对某段程序或某行程序可适当加上注释;
(5) 标识符贴近实际。程序中数据、变量和函数等的命名原则是:选择有实际意义标识符,以易于识别和理解。要避免使用意义不明确的缩写和标识符。例如:表示电压和电流的变量名尽量使用v和i,而不要用a和b。要避免使用类似aa、bb等无直观意义的变量名。
(1)下面叙述正确的是________。
A)算法的执行效率与数据的存储结构无关
B)算法的空间复杂度是指算法程序中指令(或语句)的条数
C)算法的有穷性是指算法必须能在执行有限个步骤之后终止
D)算法的时间复杂度是指执行算法程序所需要的时间
(1)C
知识点:算法的基本概念;算法复杂度的概念和意义(时间复杂度与空间复杂度)
评 析:算法的设计可以避开具体的计算机程序设计语言,但算法的实现必须借助程序设计语言中提供的数据类型及其算法。数据结构和算法是计算机科学的两个重要支柱。它们是一个不可分割的整体。算法在运行过程中需辅助存储空间的大小称为算法的空间复杂度。算法的有穷性是指一个算法必须在执行有限的步骤以后结束。算法的时间复杂度是指执行算法所需要的计算工作量,即算法执行过程中所需要的基本运算次数。
(2)以下数据结构属于非线性数据结构的是________。
A)队列 B)线性表 C)二叉树 D)栈
(2)C
知识点:栈和队列的定义;栈和队列的顺序存储结构及其基本运算
评 析:线性表、栈和队列等数据结构所表达和处理的数据以线性结构为组织形式。栈是一种特殊的线性表,这种线性表只能在固定的一端进行插入和删除 *** 作,允许插入和删除的一端称为栈顶,另一端称为栈底。一个新元素只能从栈顶一端进入,删除时,只能删除栈顶的元素,即刚刚被插入的元素。所以栈又称后进先出表(Last In First Out)。队列可看作是插入在一端进行,删除在另一端进行的线性表,允许插入的一端称为队尾,允许删除的一端称为队头。在队列中,只能删除队头元素,队列的最后一个元素一定是最新入队的元素。因此队列又称先进先出表(First In First Out)。二叉树的数据结构是树型结构,结构中数据元素之间存在着一对多的关系,因此它是一种非线性数据结构。
(3)在一棵二叉树上第8层的结点数最多是________。
A)8 B)16 C)128 D)256
(3)C
知识点:二叉树的定义及其存储结构
评 析:根据二叉树的性质:二叉树第i(I>1)层上至多有2i-1个结点。得到第8层的结点数最多是128。
(4)下面描述中,不符合结构化程序设计风格的是________。
A)使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑
B)自顶向下
C)注重提高程序的执行效率
D)限制使用goto语句
(4)C
知识点:结构化程序设计
评 析:结构化程序设计方法的四条原则是:1.自顶向下:2.逐步求精;3.模块化;4.限制使用goto语句。“自顶向下”是说,程序设计时,应先考虑总体,后考虑细节,先考虑全局目标,后考虑局部目标;“逐步求精’’是说,对复杂问题,应设计一些子目标作过渡,逐步细节化;“模块化”是说,一个复杂问题肯定是由若干稍简单的问题构成,解决这个复杂问题的程序,也应对应若干稍简单的问题,分解成若干稍小的部分。
(5)下面概念中,不属于面向对象方法的是________。
A)对象、消息 B)继承、多态 C)类、封装 D)过程调用
(5)D
知识点:面向对象的程序设计方法、对象、方法、属性及继承与多态性
评 析:面向对象方法是一种运用对象、类、封装、继承、多态和消息等概念来构造、测试、重构软件的方法。面向对象方法从对象出发,发展出对象、类、消息、继承等概念。
(6)在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是________。
A)可行性分析 B)需求分析 C)详细设计 D)程序编码
(6)B
知识点:结构化设计方法
评 析:软件开发阶段包括需求分析、总体设计、详细设计、编码和测试五个阶段。其中需求分析阶段常用的工具是数据流程图和数据字典。
(7)软件生命周期中所花费用最多的阶段是________。
A)详细设计 B)软件编码 C)软件测试 D)软件维护
(7)D
知识点:软件工程基本概念,软件生命周期概念,软件工具与软件开发环境
评 析:软件生命周期分为软件定义、软件开发及软件运行维护3个阶段。本题中详细设计、软件编码和软件测试都属于软件开发阶段;维护是软件生命周期的最后一个阶段,也是持续时间最长,花费代价最大的一个阶段,软件工程学的一个目的就是提高软件的可维护性,降低维护的代价。
(8)数据库系统的核心是________。
A)数据模型 B)DBMS C)软件工具 D)数据库
(8)B
知识点:数据库的基本概念:数据库,数据库管理系统,数据库系统
评 析:数据库管理系统DBMS是数据库系统的核心。DBMS是负责数据库的建立、使用和维护的软件。DBMS建立在 *** 作系统之上,实施对数据库的统一管理和控制。用户使用的各种数据库命令以及应用程序的执行,最终都必须通过DBMS。另外,DBMS还承担着数据库的安全保护工作,按照DBA所规定的要求,保证数据库的完整性和安全性。
(9)下列叙述中正确的是________。
A)数据处理是将信息转化为数据的过程
B)数据库设计是指设计数据库管理系统
C)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键
字,则称其为本关系的外关键字
D)关系中的每列称为元组,一个元组就是一个字段
(9)C
知识点:数据模型,实体联系模型及E-R图,从E-R图导出关系数据模型
评 析:数据处理是指将数据转换成信息的过程,故选项A叙述错误;设计数据库的目的实质上是设计出满足实际应用需求的实际关系模型,故选项B叙述错误;关系中的行称为元组,对应存储文件中的记录,关系中的列称为属性。对应存储文件中的字段,故D选项叙述错误。
(10)下列模式中,_______是用户模式。
A)内模式 B)外模式 C)概念模式 D)逻辑模式
(10)B
知识点:数据库的基本概念:数据库,数据库管理系统,数据库系统
评 析:数据库管理系统的三级模式结构由外模式、模式和内模式组成。外模式,或称子模式,或称用户模式,是指数据库用户所看到的数据结构,是用户看到的数据视图。模式,或称逻辑模式,是数据库中对全体数据的逻辑结构和特性的描述,是所有用户所见到的数据视图的总和。外模式是模式的一部分。内模式,或称存储模式,或称物理模式,是指数据在数据库系统内的存储介质上的表示。即对数据的物理结构和存取方式的描述。
36)算法的时间复杂度是指_______。
A)执行算法程序所需要的时间
B)算法程序的长度
C)算法执行过程中所需要的基本运算次数
D)算法程序中的指令条数
(36)C
知识点:算法复杂度的概念和意义(时问复杂度与空间复杂度)
评析:所谓算法的时间复杂度,是指执行算法所需要的计算工作量。为了能够比较客观地反映出一个算法的效率,在度量一个算法的工作量时,不仅应该与所使用的计算机、程序设计语言以及程序编制者无关,而且还应该与算法实现过程中的许多细节无关。为此,可以用算法在执行过程中所需基本运算的执行次数来度量算法的工作量。
(37)下列叙述中正确的是_______。
A)线性表是线性结构 B)栈与队列是非线性结构
C)线性链表是非线性结构 D)二叉树是线性结构
(37)A
知识点:线性结构与非线性结构的概念
评析:根据数据结构中各数据元素之间相关联关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。如果一个非空的数据结构满足下列两个条件: (1)有且只有一个根结点; (2)每一个结点最多有一个前件,也最多有一个后件。则称该数据结构为线性结构,又称线性表。所以线性表、栈与队列、线性链表都是线性结构,而二叉树是非线性结构。
(38)下面关于完全二叉树的叙述中,错误的是_______。
A)除了最后一层外,每一层上的结点数均达到最大值
B)可能缺少若干个左右叶子结点
C)完全二叉树一般不是满二叉树
D)具有结点的完全二叉树的深度为[log2n]+l
(38)B
知识点:二叉树的定义及其存储结构
评析:这里考察完全二又树与满二叉树的定义及二叉树的性质。满二叉树指除最后一层外每一层上所有结点都有两个子结点的二叉树。完全二叉树指除最后一层外,每一层上的结点数均达到最大值,在最后一层上只缺少右边的若干子结点(叶子结点)的二叉树。因此选项A是正确的,而选项B是错误的。由定义可知,满二叉树肯定是完全二又树,而完全二又树一般不是满二叉树,因此选项c是正确的叙述。选项D即二又树性质(5),也是正确的。
(39)结构化程序设计主要强调的是_______。
A)程序的规模 B)程序的易读性
C)程序的执行效率 D)程序的可移植性
(39)B
知识点:结构化程序设计
评析:结构化程序设计主要强调的足结构化程序清晰易读,可理解性好,程序员能够进行逐步求精、程序证明和测试.以保证程序的正确性。
(40)在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是_______。
A)概要设计 B)详细设计 C)可行性分析 D)需求分析
(40)D
知识点:软件工程基本概念,软件生命周期概念,软件工具与软件开发环境
评析:通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。软件生命周期的主要活动阶段为:
① 可行性研究和计划制定。确定待开发软件系统的开发目标和总的要求,给出它的功能、性能、可靠性以及接口等方面的可行方案,制定完成开发任务的实施计划。
②需求分析。对待开发软件提出的需求进行分析并给出详细定义,即准确地确定软件系统的功能。编写软件规格说明书及初步的用户手册,提交评审。
③软件设计。系统设计人员和程序设计人员应该在反复理解软件需求的基础上,给出软件的结构、模块的划分、功能的分配以及处理流程。
④软件实现。把软件设计转换成计算机可以接受的程序代码。即完成源程序的编码,编写用户手册、 *** 作手册等面向用户的文档,编写单元测试计划。
⑤软件测试。在设计测试用例的基础上,检验软件的各个组成部分。编写测试分析报告。
⑥运行和维护。将已交付的软件投入运行,并存运行使用中不断地维护,根据新提出的需求进行必要而且可能的扩充和删改。
(41)数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是_______。
A)控制流 B)加工 C)数据存储 D)源和潭
(41)A
知识点:结构化分析方法,数据流图,数据字典,软件需求规格说明书
评析:数据流图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。数据流图中的主要图形元素有:加工(转换)、数据流、存储文件(数据源)、源和潭。
(42)软件需求分析一般应确定的是用户对软件的_______。
A)功能需求 B)非功能需求 C)性能需求 D)功能需求和非功能需求
(42)D
知识点:结构化设计方法
评析:软件需求分析中需要构造一个完全的系统逻辑模型,理解用户提出的每一功能与性能要求,是用户明确自己的任务。因此,需求分析应确定用户对软件的功能需求和非功能需求。
(43)下述关于数据库系统的叙述中正确的是_______。
A)数据库系统减少了数据冗余
B)数据库系统避免了一切冗余
C)数据库系统中数据的一致性是指数据类型的一致
D)数据库系统比文件系统能管理更多的数据
(43)A
知识点:数据库的基本概念:数据库,数据库管理系统,数据库系统
评析:由于数据的集成性使得数据可为多个应JH=j所共享,特别是在网络发达的今天,数据库与网络的结合扩大了数据关系的应用范围。数据的共享自身义可极大地减少数据冗余性,不仅减少了不必要的存储空间,更为重要的是可以避免数据的不一致性。所谓数据的一致性是指在系统中同一数据的不同出现应保持相同的值,而数据的不一致性指的是同一个数据在系统的不同拷贝处有不同的值。
(44)关系表中的每一横行称为一个_______。
A)元组 B)字段 C)属性 D)码
(44)A
知识点:数据库的基本概念:数据库.数据库管理系统,数据库系统
评析:在关系数据库中,关系模型采用二维表来表示,简称“表”。二维表是由表框架及表元组组成。在表框架中,按行可以存放数据,每行数据称为元组。
(45)数据库设计包括两个方面的设计内容,它们是_______。
A)概念设计和逻辑设计 B)模式设计和内模式设计
C)内模式设计和物理设计 D)结构特性设计和行为特性设计
(45)A
知识点:数据库设计方法和步骤:需求分析、概念设计、逻辑设计和物理设计的相关策略
评析:数据库设计可分为概念设计与逻辑设计。数据库概念设计的目的是分析数据问内存语义关联,在此基础上建立一个数据的抽象模型。数据库逻辑设计的主要工作是将E-R图转换为指定的RDBMS中的关系模型。
(61)字符(char)型数据在微机内存中的存储形式是________。
A)反码 B)补码
C)EBCDIC码 D)ASCII码
(61)D
知识点:字符数据在内存中的存储形式
评析:将一个字符常量放到一个字符变量中,实际上并不是把该字符本身放到内存单元中去,而是将该字符的ASCII码值放到存储单元中。
71)算法的空间复杂度是指_______。
A)算法程序的长度 B)算法程序中的指令条数
C)算法程序所占的存储空间 D)算法执行过程中所需要的存储空间
(71)D
知识点:算法的复杂度
评析:一个算法的空间复杂度,一般是指执行这个算法所需的内存空间。
一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。
(72)下列关于栈的叙述中正确的是_______。
A)在栈中只能插入数据 B)在栈中只能删除数据
C)栈是先进先出的线性表 D)栈是先进后出的线性表
(72)D
知识点:栈的输入输出 *** 作
评析:栈是限定在一端进行插入与删除的线性表。
栈是按照“先进后出”的或“后进先出”的原则组织数据的,因此,栈也被称为“先进后出”表或“后进先出”表。
(73)在深度为5的满二叉树中,叶子结点的个数为_______。
A)32 B)31 C)16 D)15
(73)C
知识点:二叉树的概念
评析:所谓满二叉树是指除最后一层外,每层上的所有结点都有两个子结点。也就是说,在满二又树中,每一层上的结点数都达到最大值,即在满二叉树的第K层上有2k-1个结点,且深度为m的满二叉树有2m个结点。
在满二叉树中,最后一层的结点个数就是叶子结点的个数,本题中深度为5,故叶子结点数为25-1=24==16。
(74)对建立良好的程序设计风格,下面描述正确的是_______。
A)程序应简单、清晰、可读性好 B)符号名的命名要符合语法
C)充分考虑程序的执行效率 D)程序的注释可有可无
(74)A
知识点:程序设计风格
评析:要形成良好的程序设计风格,主要应注重和考虑下述一些因素:符号名的命名应具有一定的实际含义,以便于对程序功能的理解;正确的注释能够帮助读者理解程序;程序编写应优先考虑清晰性,除非对效率有特殊要求,程序编写要做到清晰第一,效率第二。
(75)下面对对象概念描述错误的是_______。
A)任何对象都必须有继承性 B)对象是属性和方法的封装体
C)对象问的通讯靠消息传递 D) *** 作是对象的动态性属性
(75)A
知识点:对象的概念
评析:对象是由数据和容许的 *** 作组成的封装体,与客观实体有直接的对应关系。对象之间通过传递消息互相联系,以模拟现实世界中不同事物彼此之间的联系。
(76)下面不属于软件工程的3个要素的是_______。
A)工具 B)过程 C)方法 D)环境
(76)D
知识点:软件:[程的要素
评析:软件工程包括3个要素,即方法、工具和过程。
(77)程序流程图(PFD)中的箭头代表的是_______。
A)数据流 B)控制流 C)调用关系 D)组成关系
(77)B
知识点:软件设计工具
评析:程序流程图(PFD)是一种传统的、应用广泛的软件过程设计表示工具,通常也称为程序框图,其箭头代表的是控制流。
(78)在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是_______。
A)数据库系统 B)文件系统 C)人工管理 D)数据项管理
(78)A
知识点:数据管理技术的发展
评析:在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是数据库系统。
以上就是关于简述结构化设计的特点全部的内容,包括:简述结构化设计的特点、结构化设计方法及编程语言有何特点它们有哪几种基本控制结构、求2011年九月以及以前的计算机二级考试C语言试题及答案、以及考试内容分析和解题技巧。记住只要C的。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)