计算机软件技术基础教程(第二版)习题及答案
- 格式:docx
- 大小:53.63 KB
- 文档页数:8
二级等级考试软件技术基础试题及答案一、选择填空题:1.栈和队列是两种特殊的线性表,栈的特点是(D ),队列的特点是(C),二者的共同特点是只能在它们的(A)处添加和删除结点。
A.端点B.中间点 C.先进先出D.后进先出2.线性表结构的查找方法有顺序查找法,二分查找法等。
顺序查找法适用于查找(A或B)或(B或A)的线性表,二分查找法只适用于查找顺序存储的( C )的线性表。
A.顺序存储B.链接存储 C.索引存储D.已排序E.未排序3.下图所示的二叉树中的分支结点有(A);按前序法遍历该二叉树得到的结点序列是(C);按中序遍历该二叉树得到的结点序列是(B);按后序法遍历得到的结点序列是(D)。
AB DC EI H FJ GA.A、B、C、D、E、F B.BICAHEJFGDC.ABCIDEHFJG D.ICBHJGFEDA4.在一棵二叉树中,如果所有分支结点都存在左子树和右子树,并且所有叶结点都在同一层上,这样的二叉树称为( C );如果一棵二叉树至多只有最下面的两层上的结点度数可以小于2,并且最下一层上的结点都集中在该层最左边的若干位置上,此二叉树称为(A);二叉排序树左子树上所有结点的关键字均( D )根结点的关键字;右子树上所有结点的关键字均(G )根结点的关键字。
A.完全二叉树B.非完全二叉树 C.满二叉树D.小于E.大于F.小于等于G.大于等于5.(B )查找要求查找表中的数据是有序的,而(A)查找不要求查找表中的数据是有序的。
( C )排序是顺序地把待排序列中的各个元素按其排序码的大小,插入到已排序的适当位置上;( E )排序是不断从待排序的序列中选取排序码最小的数据元素放到已排序的元素列的后面,直到序列中所有记录都已排序为止;( F )排序是每次对相邻两个元素的排序码进行比较,当不符合次序即交换位置,直到所有相邻两元素的次序合理为止。
A.顺序B.二分C.简单插入D.快速E.简单选择F.冒泡 G.归并6.SA法的SD法是软件开发过程常用的方法,人们使用SA法可以得到( D ),这种方法采用的基本手段同(A);使用SD法时可以得到(C ),并可实现( B )。
目录习题一 (2)习题二 (6)习题三 (13)习题四 (17)习题五 (22)习题六 (24)习题七 (26)习题八 (29)习题九 (31)习题十 (32)习题一选择题(1) 最早的计算机是用来进行______A_____的。
A.科学计算B.系统仿真C.自动控制D.信息处理(2) D(3) 下面有关计算机的叙述中,______B_____是正确的。
A.计算机的主机包括CPU、内存储器和硬盘三部分B.计算机程序必须装载到内存中才能执行C.计算机必须具有硬盘才能工作D.计算机键盘上字母键的排列方式是随机的(4) Pentium IV 2.8微机型号中的2.8与_____B______有关。
A.显示器的类型B.CPU的速度C.内存容量D.磁盘容量(5) 内存储器的基本存储单位是____B_______。
A.比特(bit) B.字节(byte) C.字(word) D.字符(character)(6) 内存储器中的每个存储单元都被赋予一个唯一的序号,称为_____D______。
A.单元号B.下标C.编号D.地址(7) 下列数中最小的一个是_____A______。
A.(1000)2B.(9)10 C.(12)16D.(11)8(8) 已知小写字母的ASCII码值比大写字母大32,而大写字母A的ASCII码为十进制数65,则小写字母d的ASCII码对应的二进制表示是____B_______。
A.1100100 B.1000100 C.1000111 D.1110111(9) 下面有关计算机操作系统的叙述中,____B_______是不正确的。
A.操作系统属于系统软件B.操作系统只负责管理内存储器,而不管理外存储器C.UNIX、Windows 2000属于操作系统D.计算机的内存、I/O设备等硬件资源也由操作系统管理。
(10) 计算机能直接执行的程序设计语言是_____D______。
A.C B.BASIC C.汇编语言D.机器语言二、填空题(1) 计算机发展主要经历了电子管、晶体管、集成电路和大规模、超大规模集成电路四代。
《计算机软件技术基础》参考答案A一、单项选择题(每空1分,共50分)1-5 CBCBD 6-10 ADDCB11-15 ACABB 16-20 BLJCI21-25 CCABC 26-30 BADAB31-35 BCDBA 36-40 DDCDA41-45 DDCAC 46-50 BBCAB评分标准:本题每空1分,多选、少选、错选均不得分。
二、本题10分(1) v != NULL或v(2) x > v->val 或x != v->val(3) p->next(4) u->next(5) head->next评分标准:本题10分,每空2分,在(3)-(5)中未写出next扣1分三、本题10分(1) A!=NULL && B!=NULL(2) A->data==B->data(3) B=B->next;(4) A!=NULL(5) last->next=NULL;评分标准:本题10分,每空2分,在(2)中未写出data扣1分,在(3)和(5)中未写出next扣1分四、本题10分解:(1) A、B、C三个进程之间存在互斥的制约关系。
因为打印机属于临界资源,必须一个进程使用完之后另一个进程才能使用。
(2)mutex:用于互斥的信号量,初值为1。
各进程的代码如下:进程A 进程B 进程C... … ...... … ...P(mutex) P(mutex) P(mutex)申请打印机申请打印机申请打印机使用打印机使用打印机使用打印机V(mutex) V(mutex) V(mutex)… … …评分标准:本题10分,(1)题3分,(2)题7分,其中给出信号量含义和初值1分,三个进程代码各2分五、本题10分解:FIFO淘汰算法:内存块为3时,缺页中断(或称缺页次数、页面故障)为9;内存块为4时,缺页中断为10。
LRU淘汰算法:内存块为3时,缺页中断为10评分标准:本题10分,FIFO淘汰算法两种情况各3分,LRU淘汰算法1分,要求有分析过程六、本题10分解:段式存储管理的地址转换过程为:(1)根据逻辑地址中的段号查段表的相应栏目;(2)根据段内地址<段长度,检查地址是否越界;(3)若不越界,则绝对地址=该段的主存起始地址+段内地址。
数据结构习题答案第一节概论一、选择题1.要求同一逻辑结构的所有数据元素具有相同的特性,这意味着( )。
A.数据元素具有同一的特点 *B.不仅数据元素包含的数据项的个数要相同,而且对应数据项的类型要一致 C.每个数据元素都一样 D.数据元素所包含的数据项的个数要相等2.数据结构是一门研究非数值计算的程序设计问题中计算机的( (1) )以及它们之间的( (2) )和运算的学科。
(1) A.操作对象 B.计算方法 *C.物理存储 D.数据映像(2) A.结构 *B.关系 C.运算 D.算法3.数据结构被形式地定义为(D,R),其中D是( (1) )的有限集合,R是D上( (2) )的有限集合。
(1) A.算法 *B.数据元素 C.数据操作 D.逻辑结构(2)A.操作 B.映像 C.存储 *D.关系4.在数据结构中,从逻辑上可以把数据结构分为( )。
A.动态结构和静态结构 B.紧凑结构和非紧凑结构 *C.线性结构和非线性结构 D.内部结构和外部结构5.线性表的顺序存储结构是一种( )的存储结构。
*A.随机存取 B.顺序存取 C.索引存取 D.Hash存取6.算法分析的目的是( )。
A.找出数据结构的合理性 B.研究算法中的输入和输出的关系 *C.分析算法的效率以求改进 D.分析算法的易懂性和文档性7.计算机算法指的是( (1) ),它必须具备输入、输出和( (2) )等五个特征。
(1) A.计算方法 B.排序方法 *C.解决某一问题的有限运算序列D.调度方法(2) A.可行性、可移植性和可扩充性 *B.可行性、确定性和有穷性 C.确定性,有穷性和稳定性 D.易读性、稳定性和安全性8.线性表若采用链表存储结构,要求内存中可用存储单元的地址( )。
A.必须是连续的 B.部分必须是连续的 C.一定是不连续的 *D.连续不连续都可以9.在以下的叙述中,正确的是( )。
A.线性表的线性存储结构优于链式存储结构 *B.二维数组是它的每个数据元素为一个线性表的线性表 C.栈的操作方式是先进先出 D.队列的操作方式是先进后出10.根据数据元素之间关系的不同特性,以下四类基本的逻辑结构反映了四类基本的数据组织形式,其中解释错误的是( )。
《计算机软件技术基础》试题答案一、选择题(每题5分,共30分)1. 下列关于软件工程的描述,错误的是(D)。
A. 软件工程是计算机科学的一个分支B. 软件工程的目标是提高软件质量和生产率C. 软件工程包括软件开发、维护和管理等方面D. 软件工程只关注大型软件的开发2. 下列哪种编程范式主要用于描述程序逻辑和数据的结构?(B)A. 面向过程编程B. 面向对象编程C. 函数式编程D. 逻辑编程3. 下列关于软件测试的描述,错误的是(C)。
A. 软件测试是软件开发过程中的重要环节B. 软件测试的目的是发现和修正软件中的错误C. 软件测试无需考虑软件的性能和稳定性D. 软件测试分为单元测试、集成测试和系统测试等阶段4. 下列关于软件维护的描述,正确的是(B)。
A. 软件维护是指对软件进行升级和优化B. 软件维护包括纠正软件错误、改进软件性能和增加新功能等C. 软件维护不需要考虑软件的可维护性D. 软件维护仅限于软件开发完成后5. 下列关于软件项目管理工具的描述,错误的是(D)。
A. 软件项目管理工具可以协助项目经理进行项目规划B. 软件项目管理工具可以协助项目经理进行项目监控C. 软件项目管理工具可以协助项目经理进行项目沟通D. 软件项目管理工具无法协助项目经理进行项目风险管理二、填空题(每题5分,共30分)1. 软件生命周期可以分为______、______、______、______和______五个阶段。
答案:需求分析、设计、实现、测试、维护2. 在面向对象编程中,一个对象通常包括______和______两部分。
答案:属性、方法3. 软件测试的目的是______、______和______。
答案:发现错误、修正错误、提高软件质量4. 软件维护的类型包括______、______、______和______。
答案:纠错性维护、适应性维护、完善性维护、预防性维护5. 软件项目管理工具主要包括______、______、______和______。
B. 便于随机存取 D.便于利用零散的存的有限序列。
数据元索 应为: DA. s->next二p+1; p->next=s;if (ha二二NULL)(7)《计算机软件技术基础》复习题及答案1. 线性表的链式存储结构与顺序存储结构相比优点是 CD _____ oA. 所有的操作算法实现简单 C. 便于插入和删除储器空间2. __________________ 线性表是具有n 个 ___________ A. 表元素 B.字符D.数据项 E.信息项3. 若长度为n 的线性表采用顺序存储结构,在其第I 个位宜 插入一个新元索的算法的时间复杂度为 C 。
(1WI Wn+1) A. 0(0) B. 0(1)C. 0(n)D. 0(n 2)4. 设A 是一个线性表(g a 2,…,an),采用顺序存储结构,则在等概率的前提F,平均每插入一个元索需要移动的元索个 数为 B ,平均每删除一个元索需要移动的元索个 数为A ;若元索插在$与 如Z 间(OWI0-1)的概率为""二",则平均每插入一个元索所要移动的元索个数为 n(n +1)厂2刃 +1f 3n +1C. ---------D. ----------------------------------------------------3 45•下列函数屮,按它们在/1 -> oo 时的无穷人阶数,最人的是D _____ o A. log 刃 B. nlog/7 C. 2,,/zD. n!6. 将卜•图所示的s 所指结点加到p 所指的结点之后,其语句 B. (*p). next 二s; (*s). next 二(*p). next; C ・ s->next=p->next; p->next z:s->next; D. s->next=p->next; p->next=s;7. 将两个各有n 个元索的有序表归并为一个有序表时,其最少的比较次数是八 。
《计算机软件技术基础》试题1.线性表的链式储存结构与次序储存结构对比优点是CD 。
A.所有的操作算法实现简单B.便于随机存取C.便于插入和删除D.便于利用零落的储存器空间2.线性表是拥有n个 C 的有限序列。
A.表元素B.字符C.数据元素D.数据项E.信息项3.若长度为n的线性表采纳次序储存结构, 在其第I个地点插入一个新元素的算法的时间复杂度为 C 。
(1≤I≤n+1)A.O(0)B.O(1)C.O(n)D.O(n2)4.设A是一个线性表(a1,a2,…,an), 采纳次序储存结构, 则在等概率的前提下, 均匀每插入一个元素需要挪动的元素个数为 B , 均匀每删除一个元素需要挪动的元素个数为A ;若元素插在ai与ai+1之间(0≤I≤n-1)的概率为, 则均匀每插入一个元素所要挪动的元素个数为 C ;A. B.C. D.5.以下函数中, 按它们在时的无量大阶数, 最大的是 D 。
A.lognB.nlognC.2n/2D.n!6.将以下图所示的s所指结点加到p所指的结点以后, 其语句应为: D 。
A.s->next=p+1.p->next=s;B.(*p).next=s.(*s).next=(*p).next;C.s->next=p->next.p->next=s->next;D.s->next=p->next.p->next=s;7.将两个各有n个元素的有序表合并为一个有序表时, 其最少的比较次数是A 。
A.nB.2n-1C.n-1D.2n8.下边的程序段是合并两个无头结点链表(ha和hb)为一个无头结点链表ha的过程, 作为参数的两个链表都是按结点的data域由大到小链接的。
合并后新链表的结点仍按此方式链接。
请填写下述空框, 使程序能正确运转。
#define NULL 0typedef struct node{int data;struct node *next;}node, linklisttype;void combine(linklisttype *ha, linklisttype *hb){linklisttype *h, *p;h = (linklisttype *)malloc(sizeof(linklisttype));h->next = NULL;p = h;while(ha != NULL && hb != NULL)if(ha->data>=hb->data){ /*较大的元素先插入*/p->next = (1) ;p = (2) ;(3) ;}else{p->next = (4) ;p = (5) ;(6) ;}if(ha==NULL) (7) ;if(hb==NULL) (8) ;ha = h->next;free(h);}参照答案: (1) ha (2) p->next (3) ha=ha->next(4) hb (5) p->next (6) hb=hb->next(7) p->next=hb (8) p->next=ha9.假如表A中所有元素(a1,a2,…,an)与表B的一个次序子表(bk,bk+1,…bk+n-1)完好同样(即a1=bk,a2=bk+1,…an=bk+n-1), 则称表A包含在表B中。
数据结构习题答案 2 第一节概论 2 第二节线性表 5 第三节栈和队列15 第五节树18 第七节查找24 第八节排序28 操作系统练习题参考答案31数据结构习题答案第一节概论一、选择题1.要求同一逻辑结构的所有数据元素具有相同的特性,这意味着( )。
A.数据元素具有同一的特点~B.不仅数据元素包含的数据项的个数要相同,而且对应数据项的类型要一致 C.每个数据元素都一样 D.数据元素所包含的数据项的个数要相等2.数据结构是一门研究非数值计算的程序设计问题中计算机的( (1) )以及它们之间的( (2) )和运算的学科。
(1) ~A.操作对象 B.计算方法 C.逻辑存储 D.数据映像(2) A.结构~B.关系 C.运算 D.算法3.数据结构被形式地定义为(D,R),其中D是( (1) )的有限集合,R是D上( (2) )的有限集合。
(1) A.算法~B.数据元素 C.数据操作 D.逻辑结构(2)A.操作 B.映像 C.存储~D.关系4.在数据结构中,从逻辑上可以把数据结构分为( )。
A.动态结构和静态结构 B.紧凑结构和非紧凑结构~C.线性结构和非线性结构 D.内部结构和外部结构5.线性表的顺序存储结构是一种( )的存储结构。
~A.随机存取 B.顺序存取 C.索引存取 D.Hash存取6.算法分析的目的是( )。
A.找出数据结构的合理性 B.研究算法中的输入和输出的关系~C.分析算法的效率以求改进D.分析算法的易懂性和文档性7.计算机算法指的是( (1) ),它必须具备输入、输出和( (2) )等五个特征。
(1) A.计算方法 B.排序方法~C.解决某一问题的有限运算序列 D.调度方法(2) A.可行性、可移植性和可扩充性~B.可行性、确定性和有穷性 C.确定性,有穷性和稳定性 D.易读性、稳定性和安全性8.线性表若采用链表存储结构,要求内存中可用存储单元的地址( )。
A.必须是连续的 B.部分必须是连续的 C.一定是不连续的~D.连续不连续都可以9.在以下的叙述中,正确的是( )。
数据结构习题答案 2 第一节概论 2 第二节线性表 5 第三节栈和队列15 第五节树18 第七节查找24 第八节排序28 操作系统练习题参考答案31数据结构习题答案第一节概论一、选择题1.要求同一逻辑结构的所有数据元素具有相同的特性,这意味着( )。
A.数据元素具有同一的特点~B.不仅数据元素包含的数据项的个数要相同,而且对应数据项的类型要一致 C.每个数据元素都一样 D.数据元素所包含的数据项的个数要相等2.数据结构是一门研究非数值计算的程序设计问题中计算机的( (1) )以及它们之间的( (2) )和运算的学科。
(1) ~A.操作对象 B.计算方法 C.逻辑存储 D.数据映像(2) A.结构~B.关系 C.运算 D.算法3.数据结构被形式地定义为(D,R),其中D是( (1) )的有限集合,R是D上( (2) )的有限集合。
(1) A.算法~B.数据元素 C.数据操作 D.逻辑结构(2)A.操作 B.映像 C.存储~D.关系4.在数据结构中,从逻辑上可以把数据结构分为( )。
A.动态结构和静态结构 B.紧凑结构和非紧凑结构~C.线性结构和非线性结构 D.内部结构和外部结构5.线性表的顺序存储结构是一种( )的存储结构。
~A.随机存取 B.顺序存取 C.索引存取 D.Hash存取6.算法分析的目的是( )。
A.找出数据结构的合理性 B.研究算法中的输入和输出的关系~C.分析算法的效率以求改进D.分析算法的易懂性和文档性7.计算机算法指的是( (1) ),它必须具备输入、输出和( (2) )等五个特征。
(1) A.计算方法 B.排序方法~C.解决某一问题的有限运算序列 D.调度方法(2) A.可行性、可移植性和可扩充性~B.可行性、确定性和有穷性 C.确定性,有穷性和稳定性 D.易读性、稳定性和安全性8.线性表若采用链表存储结构,要求内存中可用存储单元的地址( )。
A.必须是连续的 B.部分必须是连续的 C.一定是不连续的~D.连续不连续都可以9.在以下的叙述中,正确的是( )。
第1章计算机与信息社会思考与习题一、单选题二、多选题第2章计算机系统结构思考与习题一、单选题四、回答问题1. 计算机硬件系统由哪几个部分组成?各部分的主要功能是什么?答:计算机硬件系统由运算器、控制器、存储器、输入设备和输出设备五个基本部分组成,也称计算机的五大功能部件。
运算器是计算机对信息或数据进行加工和处理的部件。
控制器是整个计算机的指挥控制中心,它根据指令的要求向计算机各个部件发出操作控制信号,使计算机的各个部件能高速、协调、有条不紊地工作。
存储器是计算机的记忆和存储部件,用来存放信息。
输入输出设备简称I/O设备,通常又称为外部设备或外围设备。
I/O设备是人与计算机直接对话的设备,是人-机相互通信的桥梁。
2. 计算机软件系统分为哪两大类?各自包括哪些组成部分?答:计算机的软件系统通常分为系统软件和应用软件两大类。
系统软件通常包括操作系统、语言处理程序、各种服务性程序和数据库管理系统等。
应用软件是指计算机用户利用计算机的软、硬件资源为某一专门的应用目的而开发的软件。
应用软件包括的范围是极其广泛的,可以这样说,哪里有计算机应用,哪里就有应用软件。
如文字处理软件、表格处理软件、辅助设计软件、实时控制软件等。
3. 汇编语言和高级语言能直接被计算机识别和执行吗?为什么?答:不能。
因为在所有的程序设计语言中,除了用机器语言编制的程序能够被计算机直接理解和执行外,其他的程序设计语言编写的程序都必须经过一个翻译过程才能转换为计算机所能识别的机器语言程序。
4. 什么是BCD码?什么是ASCII码?请查出“B”、“a”的ASCII码值。
答:BCD编码即所谓的“二~十进制编码”,就是将十进制数的每一位数字分别用二进制的形式表示。
具体地说,就是用四位二进制数来表示一位十进制数字。
ASCII码是美国信息交换标准代码,是西文领域的符号处理普遍采用的编码,虽然ASCII码是美国国家标准,但它已被国际标准化组织(ISO)认定为国际标准,在世界范围内通用。
《计算机软件基础(二)》习题解答第1章概论复习题答案1.怎样的计算机被称为裸机?什么是虚拟计算机?【解答】:对于一台只有硬件构成(通常包括:中央处理器cpu,储存器,输入和输出设备),而没有安装任何软件的计算机被称为裸机。
而虚拟计算机则是指以硬件为物质基础,加装软件后的扩充后的计算机系统。
2.计算机软件资源的作用如何?在你使用的计算机上有那些软件资源?【解答】:计算机软件资源的作用是只有在软件资源的支持下,用户所使用的计算机才能极大程度上满足用户需要的虚拟计算机。
软件资源有:汇编程序;各种高级语言;各种语言的解释或编译程序;各种标准程序库;操作系统;数据库系统软件;计算机网络软件;各种应用软件等。
3.汇编语言和高级语言有什么不同?【解答】:汇编语言是面向机器的语言,即不同型号的计算机的汇编语言是各不相同的,进行程序设计时必须了解所使用的计算机的结构性能和指令系统,而且编好的程序也只是针对一类机器,不能通用。
高级语言是面对过程的语言,用户不必了解具体机器的细节就能编写程序,方便了程序的设计,提高了效率,同时也便于人们的交流。
4.我们知道计算机只能执行机器指令,为什么它能运行汇编语言和高级语言编写的程序?【解答】:计算机之所以能运行汇编语言编写的程序是因为计算机系统中装有汇编程序,汇编程序的作用是将源程序翻译成用机器语言组成的目标程序,从而计算机能运行汇编语言编写的程序。
计算机之所以能运行高级语言编写的程序是因为计算机系统中装有解释程序或编译程序,它们将用高级语言编写的程序翻译成用机器语言组成的目标程序,从而计算机能运行高级语言编写的程序。
5.你学习过那些高级语言?试分析它们的特点和适用的范围?【解答】:fortran语言主要用于科学和工程计算;pascal语言则具有良好的程序结构,cobol 语言则是面向事务处理的;lisp语言是人工智能语言;c语言则是通用的程序设计语言;c++语言是面向对象的程序设计语言。
第1章习题部分答案1. 操作系统的发展分为那几个阶段?解:操作系统的发展经历了三个阶段:操作系统的酝酿阶段、操作系统的形成阶段、操作系统的理论化和标准化阶段。
2. 计算机软件技术开发系统包括那几个阶段?解:计算机软件开发系统的发展经历了四个阶段:机器语言阶段、汇编语言阶段、高级语言阶段、面向对象语言和可视化语言阶段。
3. 计算机软件技术的主要范畴是什么?解:计算机软件技术的主要范畴包括软件工程技术、程序设计技术、软件工具环境技术、系统软件技术、数据库技术、实时软件技术、网络软件技术、与实际工作相关的软件技术等八个领域的内容。
4. 从软件技术的发展现状来看有哪些值得我们注意的问题?解:从软件技术的发展现状来看有以下几个值得我们注意的问题:1)软件危机2)软件技术标准,软件版权和软件价值评估3)软件技术的基础研究。
1第2章习题部分答案1. 什么是软件危机?软件危机的表现有哪些?解:软件开发技术的进步为能满足发展的要求,在软件开发中遇到的问题找不到解决的方法,问题积累起来形成了尖锐的矛盾,导致了软件危机。
2. 软件危机产生的原因是什么?解:造成软件危机的原因是由于软件产品本身的特点以及开发软件的方式、方法、技术和人员引起的。
1)软件规模越来越大,结构越来越复杂。
2)软件开发管理困难而复杂。
3)软件开发费用不断增加。
4)软件开发技术落后。
5)生产方式落后。
6)开发工具落后,生产率提高缓慢。
3. 常见的软件过程模型有哪些?解:常见的软件过程模型有瀑布模型、增量模型、演化过程模型、敏捷开发4. 如何对软件质量进行评价?解:软件质量的评价主要围绕可维护性、可靠性、可理解性和效率这几个方面进行。
2第3章习题部分答案1. 软件可行性研究的目的是什么?软件可行性研究的任务又是什么?解:软件可行性研究的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。
可行性研究的任务首先需要进行概要的分析研究,初步确定项目的规模和目标,确定项目的约束和限制,把他们清楚地列举出来。
分析员进行简要的需求分析,抽象出该项目逻辑结构,建立逻辑模型。
从逻辑模型出发,经过压缩的设计,找出若干种可供选择的主要解决办法,对每种办法都要研究它的可行性。
主要从技术可行性、经济可行性2个方面来分析每种方法的可行性。
2. 什么是数据流图?解:数据流图简称DFD,是SA方法中用于表示系统逻辑模型的一种工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。
3. 什么是模块化?4. 结构化程序设计方法的基本要点是什么?解:结构化设计方法是软件分析中公认的、有效的、技术成熟的、适用广泛的一种方法,它较适合于开发数据处理类型软件的需求分析。
该方法利用图形等半形式化工具表达需求,特点是简明、易读,也易于使用,为后阶段的设计、测试、评价提供了有利条件。
但SA方法也暴露出它自身的弱点,在解决需求分析过程中的诸多难点方面能力不足,主要表现在:1)它仅是一个静态模型,没有反映处理的顺序,即控制流程。
因此,不适合描述实时控制系统。
2)SA方法使用DFD在分析与描述“数据要求”方面是有局限的,DFD应与数据库技术中的实体联系图(ER图)结合起来,这样才能较完整地描述用户对系统的需求。
3)DFD不适合描述人机界面的系统需求。
SA方法往往对这一部分用自然语言作补充,对这类系统可采用其他的分析方法。
4)为了更精确地描述软件需求,提高软件系统的可靠性、安全性,也便于实现自动化,SA方法可与形式化方法结合起来。
5)借助于需求分析工具,提高需求分析的质量和效率5. 简述黑盒测试法和白盒测试法。
解:黑盒法是指测试人员将程序看成一个“黑盒”,也就是说,他不关心程序内部是怎样做的,而只想检查程序是否符合它的“功能说明”。
所以黑盒法测试时,测试用例都是完全根据程序的功能说明来设计的。
如果想用黑盒法发现程序中的所有错误,则必须用输入数据的所有可能值来检查程序是否都能产生正确的结果。
白盒法是指测试人员必须了解程序的内部结构,此时,测试用例是根据程序的内部逻辑结构来设计的。
如果想用白盒法发现程序中的所有错误,则至少必须使程序中每种可能的执行路径都执行一次。
6. 软件测试过程要经过那些步骤?这些测试与软件开发各阶段有什么关系?解:测试过程应该与分析、设计、编程的过程具有类似的结构,以便针对每一阶段可能产生的错误,采用某些特殊的测试技术,所以测试过程通常可以分三步进行:3(1) 模块测试(Module Testing);(2) 联合测试(Integration Testing);(3) 系统测试(System Testing)。
4第4章习题部分答案5. 举例说明类与对象的关系,并画出类的层次图。
解:类(class)是对象的抽象及描述,是具有共同属性和操作的多个对象的相似特性的统一描述体。
类也是对象,是一种集合对象,我们称之为对象类(object class),简称为类,它有别于基本的实例对象(object instance)。
在类的描述中,每个类要有一个名字,要表示一组对象的共同特征,还必须给出一个生成对象实例的具体方法。
类中的每个对象都是该类的对象实例,也就是说,系统运行时通过类定义属性初始化可以生成该类的对象实例。
实例对象是自描述数据结构,每个对象都保存自己的内部状态,一个类的各个实例对象都能理解该所属类发来的消息。
8. 什么是面向对象的系统分析和设计? 面向对象的系统分析和设计的主要目的和应完成的主要工作是什么? 系统分析和设计应遵循的原则是什么?解:面向对象的系统分析和设计是将面向对象的方法运用到软件工程的分析和设计阶段。
面向对象的系统分析和设计的主要目的是完成对某个特定应用论域(application domain)的分析和对系统的建模。
具体来说,在该阶段需要完成的任务是描述系统中的对象、对象的属性和操作、对象的动态特性、对象间的构造关系及通信关系等,从而建立系统的静态结构和动态活动模型。
在系统分析阶段,需要解决的问题集中在确定系统所需要完成的工作上;而在系统设计阶段,则需要决策如何完成系统预定的功能。
系统分析和设计应该遵循的原则有:(1) 系统的开发是面向客户的,应从客户的角度考虑。
(2) 诸如系统开发生命周期之类的产品更新换代机构应该在所有的信息系统开发项目中建立起来。
(3) 信息系统开发的过程并不是一个顺序的过程,它允许步骤的重叠、倒转等。
(4) 如果系统的成功可能性受到很大限制时,应取消整个项目。
(5) 文档材料是系统开发生命周期各阶段中重要的可递交成果,应加以重视。
9. 简述面向对象系统分析的基本任务,并描述该阶段的主要成果——OOA模型的组成及结构。
解:OOA的任务是采用面向对象方法,把对问题论域和系统的认识理解,正确地抽象为规范的对象(包括类、继承层次)和消息传递联系,形成面向对象模型,为后续的面向对象设计(object-oriented design,简称OOD)和面向对象编程(object-oriented program, 简称OOP)提供指导。
10. 如何建立系统模型? 系统模型的组成及各组成部分之间的关系如何?解:为了认清问题的真实面目,抓住问题的本质,我们可以通过系统分析,对真实系统进行简化,建立系统模型。
系统模型一般包括以下六个组成部分:系统输入、处理过程、系统输出、系统控制、系统响应和系统界面,如下图所示。
5系统响应图系统的基本组成部分及相互间的关系11. 简述系统分析的步骤,并说明系统分析应提交的成果。
解:对于系统分析,可以分为以下步骤:(1) 系统计划:寻求可以对事务产生更大利益的同等的或更优的技术和事务应用。
(2) 可行性研究(可选):从技术、操作和经济等各方面综合考虑,确定开发一个信息系统的优点,并分析其目标、客观情况及限制条件,确定该项目是否可行。
有时,若项目是由于内部或外部的因素而带有强制性的性质时,该步骤可以省略。
(3) 需求分析:是系统分析过程中最重要且最困难的步骤,也是整个系统分析和设计过程中最重要和最困难的步骤。
在该阶段,系统分析员和客户一起确定信息系统的需求并进行归档。
(4) 客户接受:客户对需求文档的正式或非正式批准。
(5) 原型设计(可选):为了更好地理解客户的要求或增加客户接受预期系统的可能性而开发信息系统原型。
6第5章习题部分答案1.多道程序设计技术的主要特征?解:多道程序设计技术的主要特征是并发性、共享性、独立性、相互制约性。
2.实现线程互斥的基本模型?解:保证互斥的一个基本模型是,一个线程在使用一个资源之前必须首先发出对这个资源的使用请求(也被称为加锁),而在使用完之后释放这个资源(被称为解锁)。
这样,一个线程只能依据下列的顺序使用一个资源:(1) 请求。
如果请求不能被立即满足(例如,这种资源正在被其他线程使用),那么,提出请求的线程必须等待,直到它的请求被满足为止。
(2) 使用。
线程可以对资源进行处理(例如,向文件中写数据)。
(3) 释放。
线程将它所请求得到的资源释放掉。
3.典型同步问题有哪些?解:典型同步问题包括互斥问题、多读者/作者问题和生产者/消费者问题。
4.产生死锁的必要条件?解:一般来说,造成死锁的情况虽然比较复杂,但归纳起来死锁的产生有以下四种必要条件:(1) 互斥条件:至少一个资源被以非共享(互斥)的方式所拥有,即在一个时刻,只能有一个线程使用这个资源。
如果另一个线程请求这个资源,正进行请求的线程必须等待,直到资源被释放。
(2) 请求和保持条件:必须存在一个线程,这个线程至少拥有一个资源,同时正在请求获得当前正被另一个线程所拥有的其他资源。
(3) 不剥夺条件:线程已获得的资源,在未使用完以前,不能被剥夺,只能在使用完后由自己释放。
(4) 循环等待条件:必须存在一组正等待的线程{p0, p1, p2, …, pn},p0正等待p1所拥有的资源,p1正等待p2所拥有的资源,……,pn-1正等待pn所拥有的资源,pn正等待p0所拥有的资源。
7第6章习题部分答案1. 简述下列概念:数据数据元素数据结构逻辑结构存储结构线性结构非线性结构算法2. 试举一个数据结构的例子,叙述其逻辑结构、存储结构、运算这三个方面的内容。
3. 判断以下说法的正误:解:(1)错;数据元素是数据的基本单位,数据项是数据的基本单位。
(2)对。
(3)错;数据的逻辑结构是指数据元素之间的逻辑关系,是独立于具体计算机的。
(4)对。
(5)错;算法的时间复杂度取决于问题的规模。
(6)错;程序往往是指用某种机器语言书写的一个算法或一组算法的有机组合,可以是有穷也可以是无穷的。
算法并不一定表现为一个程序,它可以采用多种语言和方式描述,算法必须是有穷的。