当前位置:文档之家› 计算机导论课后习题答案

计算机导论课后习题答案

计算机科学导论第七章1应用程序和操作系统的不同点是什么?操作系统是一个程序,有利于应用程序的执行。

2操作系统的组成是什么?内存管理器,进程管理器,设备管理器,文件管理器。

3单道程序和多道程序之间有何区别?单道程序,只有一个程序在内存中。

多道程序,多个程序同时在内存中,但是计算机的资源只分配给正在运行的程序。

4分页调度和分区调度有什么区别?分区调度把内存分为若干个区,把程序整个的放入区中。

分页调度提高了分区调度的效率,在分页调度下,内存被分为大小相等的若干部分,程序也被分为大小相等的部分。

分区调度需要把程序装载到连续的内存上。

分页调度可以吧把程序装载到不连续的内存当中。

5为什么请求分页调度比常规页面调度具有更高的效率?在常规的分页调度中,整个程序必须同时在内存中,以便为程序执行。

但是在请求分页调度中,有部分页面的程序可以在内存中。

这意味着,在请求分页调度中,在给定的时间中,更多的程序可以使用计算机的资源。

6程序和作业之间有何联系?作业和进程之间有何联系?程序和进程之间有何联系?从一个程序被选中执行,到其运行结束并再次成为一个程序的这段过程中,该程序称为作业。

7程序驻留在哪里?作业驻留在哪里?进程驻留在哪里?程序和作业驻留在磁盘上,进程驻留在内存中。

8作业调度器和进程调度器有什么区别?作业调度器负责从作业中创建一个进程和终止一个进程。

进程调度器将一个进程从一个状态转入另一个状态。

9为什么操作系统需要队列?一个操作系统需要使用队列,因为在同一时间可以有许多作业和进程同时活跃。

为了共享所有的资源,队列是必要的,以确保作业和进程都得到他们需要的资源。

31一个计算机装有一个单道程序的操作系统。

如果内存容量为64MB,操作系统需要4MB的内存,那么该计算机执行一个程序可用的最大内存为多少?64-4=60MB33 70/(70+10)=87.5%34一个多道程序的操作系统用一个适当的分配计划把60MB内存分为10MB,12MB,18MB,20MB。

第一个程序运行需要17MB内存,使用了第三分区,第二个程序运行需要8MB内存,使用了第一分区。

第三个程序运行需要10.5MB,使用了第二分区。

最后第四个程序要20MB,使用了第四分区。

那么总共使用了多少内存?浪费了多少内存?内存的浪费率是多少?总共使用17+8+10.5+20=55.5MB浪费4.5MB。

36一个多道程序的操作系统使用分页调度。

可用内存为60MB,分为15帧。

A 4,B 3,C 7,D 1,E 4MB,F 1/1537 (100+1000)/10=110 100MB可以驻留在内存中,1000MB必须留在磁盘里。

39 是死锁的四个条件都满足互斥资源占有,抢先循环等待。

40 不是死锁。

11-20 AABCA AAADC 21-30 CCADA BDADC第八章1算法的正式定义是什么?算法定义为一组明确步骤的有序集合,它产生结果并在有限的时间内终结。

2给出用于结构化程序设计中的三种结构定义?顺序,判断,循环。

3UML图与算法有什么关系?通用建模语言(UML)是一种算法的图形表示。

它隐藏了一个算法的所有细节,试图给出一个大的图片,它显示了如何从开始到结束的算法流程。

4伪代码与算法有什么关系?伪代码是算法的一种类似英语的表示法。

5排序算法的用途是什么?一种排序算法根据其值排列数据.6本章有哪三种基本的排序算法?选择排序,冒泡排序,插入排序。

7查找算法的基本用途是什么?一个数据列表中找到一个特定的项目(目标)。

8本章讨论的基本查找算法主要有哪两种?顺序查找,折半查找。

9给出迭代过程的定义和一个例子? 算法的定义没有包括算法本身。

10给出递归过程的定义和一个例子?算法的定义包括算法的本身。

293133353739 firstlast mid 1 2 3 4 5 6 7 8431 8 4 5 8 6 7 8 711-20 DCBBC ACABB 21-28DBACB ABC第九章1汇编语言和机器语言有哪些区别?机器语言只使用0和1的指令和地址。

汇编语言使用符号来表示指令和地址。

2汇编语言和高级语言有哪些区别?高级语言能使程序员能够集中精力在应用程序上。

高级语言的设计目标就是使程序员拜托汇编语言繁缛的细节。

3哪种语言和机器语言直接相关,并被计算机制及识别?机器语言是计算机硬件所理解的唯一语言。

4区分编译和解释。

编译在执行前把整个源程序翻译成目标程序。

解释一次只翻译和执行源代码中的一行。

5列出编译语言翻译中的四个步骤这四个步骤是词法分析,语法分析,语义分析和代码生成。

6列出四种常见的计算机语言模式。

过程式,面向对象,函数式,说明式。

7比较和对照过程模式和面向对象模式。

在过程模式,程序是一种活性剂,操纵被动对象(数据)。

面向对象的范例中,数据被设计为活动对象。

对这些对象进行的操作包括在对象中。

8定义面向对象语言中的类和方法,这两个概念的联系是什么?他们对于对象概念间的联系是什么?相同类型的对象需要一组方法,这些方法显示了这类对象对来自对象领地外的刺激的反应。

???9定义函数模式。

在函数模式中,程序设计成了一个数学函数。

它允许程序员将预定义的原始函数结合起来,创建新的函数。

10定义说明式模式。

说明式模式使用逻辑推理原则去回答问题。

23 int a,int b,int c24double a=0 double b=0 doublec=025 const char name=”a” const int a=0 const float b=0.327 2次29语句执行八次(i= 5,7,9,13,15,11,17,19)。

值得注意的是,在每次迭代中i的值是递增的两次:第一次在头(i+ +),在循环体中第二次(i=i+ 1)。

30 5次。

31A = 5; do{ statement;A = A − 2;}while (A < 8);32i=5 do{statement;i=i+2;}while(i<20)33.i = 5;while (i < 20){statement; i = i + 2;}34 for(i=5;i<10;i++){Statement;}35.for (int A = 5; A < 8; A = A − 2){ statement;}11-15 ACBAA 16-20DBACD BC第十章1定义软件的生命周期。

软件,像许多其他的产品,经过一个周期的重复阶段,直到它变得过时。

2区分瀑布模型和增量开发模型。

瀑布模型开发过程只有一个方向流动。

在增量模型中,软件的开发要经历一系列步骤,开发者首先完成整个系统的简化版本,这个版本表示了整个系统,但不包括具体的细节。

3软件开发的四个阶段是什么?分析,设计,实现,测试。

4说明分析阶段的目标是什么,描述此阶段的两种趋势。

这个阶段产生了规格说明文档,这个文档说明了软件要做什么而没有说怎么做。

面向过程分析,面向对象分析。

5说明设计阶段的目标,描述此阶段的两种趋势。

设计阶段定义了系统将如何完成在分析阶段所定义的。

在设计阶段,所有组件的系统被定义。

在这个阶段的发展趋势是面向过程的设计,面向对象的设计。

6描述模块化,说出与模块化有关的两个问题。

模块化是将大程序分解成容易理解和容易处理的小程序。

耦合和内聚。

7描述耦合和内聚之间的区别。

内聚是衡量一个程序中程序的紧密程度的一个度量。

耦合是一种度量,如何将两个模块互相绑定在一个模块中。

8说明实现阶段的目标,描述此阶段中的质量问题。

程序员为面向过程设计中的模块编写程序或程序单元,实现面向对象设计中的类。

可操作性,可维护性,可迁移性。

9说明测试阶段的目标,列出两类测试。

测试阶段的目标是找到错误。

有2种类型的测试:玻璃箱(或白盒)和黑盒10描述白盒测试和黑盒测试间的区别。

白盒测试是基于知道软件的内部内部结构。

黑盒测试不知道内部是什么,也不知道他是如何工作的情况下的测试软件。

23通过参考提供了两个模块之间的衔接。

11-15 DBCBD 16-20 DBDAB第十一章1给出数据结构的三种类型的名称。

数组记录和链表。

2数组元素和记录元素的区别。

数组是元素的顺序集合,通常这些元素具有相同的数据类型。

记录是一组相关元素集合,它们可能是不同的类型。

3数组元素和链表元素的区别。

数组的元素在内存中是连续的,并且可以使用一个索引来访问数组元素。

链表的元素被存储在可能分散在整个内存中的节点中,并且只能通过访问列表(即搜索功能返回的特定节点的地址)访问该功能。

4为什么用索引而不是下表来标注数组元素。

索引表示元素在数组中的顺序号,顺序号从数组开始处计数。

5数组元素在内存中是如何储存的。

数组是连续存储在内存中。

大多数计算机使用行存储来存储二维数组。

6记录中域的定义是什么。

记录中每个元素称为域。

域是具有含义的最小命名数据。

7在链表中节点的域是什么?在链表中的节点的域是数据和一个指向下一个节点的指针(地址)。

8链表中指针的功能是什么?指明链表中的下一个元素。

9如何指向链表中的第一个节点?我们用头指针指向链表中的第一个节点。

10链表中最后一个节点的指针指向什么?最后一个指针为空指针。

11-15 DBCBC 16-20 DAADB第十二章1什么是抽象数据类型?,在抽象数据类型中什么是已知的,什么是隐藏的?一个抽象数据类型(ADT)是一种数据申报与数据类型有意义的操作封装在一起。

在ADT,访问数据的操作是已知的,但操作的实现是隐藏的。

2什么是栈?栈的四种基本操作是什么?栈是一种限制性线性列表。

建栈,入栈,出栈,和空。

3什么是队列?队列的四种基本操作是什么?队列是一个线性表,数据只能在一个末端被插入,称为后,并从另一端删除,称为前。

这些限制确保数据被处理通过在它们被接收的顺序中的队列中。

换句话说,一个队列是一个先入先出(FIFO)结构。

在这一章中定义了四种基本的队列操作队列的入队、出队,和空。

4什么是广义线性表?他的六种基本操作是什么?广义线性表是像插入和删除等操作可以再其中任何地方进行的表,可以在表头表中间或表尾。

5定义一棵树,区分树和二叉树。

区分二叉树和二叉搜索树。

棵树由一组有限的元素,称为节点(或顶点),和一组有限的有向线,称为弧,连接对节点。

如果树不是空的,一个节点,称为根,没有传入的弧。

在一个树上的其他节点可以从一个独特的路径,这是一个序列的连续弧的根。

二叉树是在没有节点可以有两个以上的子树的树。

二进制搜索树(BST)是与一个额外的属性的二进制树:每个节点的关键值大于左子树的所有节点都小于所有节点的右子树中每个值的关键值。

6二叉树的深度优先遍历和广度优先遍历有何不同?深度优先遍历有前序中序和后序遍历,分别是根左右,左根右,左右根。

广度优先遍历先处理节点的所有子节点,然后进行下一层。

相关主题