《计算机软件技术基础》试题答案
- 格式:docx
- 大小:129.42 KB
- 文档页数:39
数据结构习题答案 2 第一节概论 2 第二节线性表 5 第三节栈和队列16 第五节树19 第七节查找25 第八节排序29 操作系统练习题参考答案32数据结构习题答案第一节概论一、选择题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答案1. 什么是软件工程?软件工程是指应用计算机科学、数学、逻辑学等学科的原理和方法,以工程化的方式开发和维护软件的过程。
2. 软件开发生命周期包括哪些阶段?软件开发生命周期包括需求分析、设计、编码、测试和维护五个阶段。
3. 什么是模块化设计?模块化设计是指将软件系统分解成若干个相对独立的、具有特定功能的模块,以便于管理和维护。
4. 面向对象编程的主要特点是什么?面向对象编程的主要特点包括封装性、继承性和多态性。
5. 什么是软件测试?软件测试是指通过人工或自动化的方式,对软件系统进行验证和确认,以发现和修复软件缺陷的过程。
6. 软件维护包括哪些类型?软件维护包括改正性维护、适应性维护、完善性维护和预防性维护。
7. 什么是数据库管理系统?数据库管理系统是一种用于创建和管理数据库的软件系统,它允许用户存储、检索和管理数据。
8. 什么是算法?算法是解决特定问题的一系列定义明确的计算步骤。
9. 什么是数据结构?数据结构是数据元素及其之间的关系的组织方式。
10. 什么是操作系统?操作系统是计算机系统中负责管理计算机硬件与软件资源的系统软件,它提供了用户与计算机硬件之间的接口。
11. 什么是网络协议?网络协议是一组规则和标准,用于在网络中进行数据传输和通信。
12. 什么是编译器?编译器是一种计算机程序,它将高级编程语言编写的源代码转换成计算机可以执行的机器代码。
13. 什么是解释器?解释器是一种计算机程序,它逐行读取源代码并直接执行,不需要将源代码转换成机器代码。
14. 什么是软件架构?软件架构是指软件系统的结构和组织,包括软件组件、它们之间的关系以及它们与环境的交互。
15. 什么是软件需求?软件需求是指软件系统应该满足的功能和非功能需求,包括用户需求和系统需求。
数据结构习题答案2第一节概论2第二节线性表10第三节栈和队列44第五节树53第七节查找67第八节排序80操作系统练习题参考答案87数据结构习题答案第一节概论一、选择题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.线性表的链式存储结构与顺序存储结构相比优点是一CD2. 线性表是具有n 个C 的有限序列。
A.表元索B.字符C.数据元索E.信息项3. 若长度为n 的线性表采用顺序存储结构,在其第I 个位置插入一个新元索的算法的时间复杂度为 C (lWIWn+1)A. 0(0)B. 0(1)C. 0(n)D. 0(n 2)4. 设A 是一个线性表(g 弧…,弘),采用顺序存储结构,则在等概率的前提下,平均每插入一个元素需耍移动的元素个数为 B ,平均每删除一•个元素需要移动的元索个数为A ;若元索插在eh 与茹】之间(OWTWn-1)的概率为"匸",则平均每插入一个 n(n +1)元素所要移动的元索个数为C5•下列函数屮,按它们在 ms 时的无穷人阶数,最大的是—D6•将卜•图所示的s 所指结点加到p 所指的结点之后,其语句应为:DA.所有的操作算法实现简单B.便于随机存取C.便于插入和删除 1).便于利川零散的存储器空间D.数据项C.2n + \D ・3n +14A . C. 10g/7n/2 B. nlog/7 D. n! nextnextnextA. 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. n B. 2n~l C. n~lD. 2n8. 卜面的程序段是合并两个无头结点链表(ha 和hb)为一个无头结点链表ha 的过程,作为 参数的两个链表都是按结点的data 域由人到小链接的。
第1章习题部分答案1. 操作系统的发展分为那几个阶段?解:操作系统的发展经历了三个阶段:操作系统的酝酿阶段、操作系统的形成阶段、操作系统的理论化和标准化阶段。
2. 计算机软件技术开发系统包括那几个阶段?解:计算机软件开发系统的发展经历了四个阶段:机器语言阶段、汇编语言阶段、高级语言阶段、面向对象语言和可视化语言阶段。
3. 计算机软件技术的主要范畴是什么?解:计算机软件技术的主要范畴包括软件工程技术、程序设计技术、软件工具环境技术、系统软件技术、数据库技术、实时软件技术、网络软件技术、与实际工作相关的软件技术等八个领域的内容。
4. 从软件技术的发展现状来看有哪些值得我们注意的问题?解:从软件技术的发展现状来看有以下几个值得我们注意的问题:1)软件危机2)软件技术标准,软件版权和软件价值评估3)软件技术的基础研究。
1第2章习题部分答案1. 什么是软件危机?软件危机的表现有哪些?解:软件开发技术的进步为能满足发展的要求,在软件开发中遇到的问题找不到解决的方法,问题积累起来形成了尖锐的矛盾,导致了软件危机。
2. 软件危机产生的原因是什么?解:造成软件危机的原因是由于软件产品本身的特点以及开发软件的方式、方法、技术和人员引起的。
1)软件规模越来越大,结构越来越复杂。
2)软件开发管理困难而复杂。
3)软件开发费用不断增加。
4)软件开发技术落后。
5)生产方式落后。
6)开发工具落后,生产率提高缓慢。
3. 常见的软件过程模型有哪些?解:常见的软件过程模型有瀑布模型、增量模型、演化过程模型、敏捷开发4. 如何对软件质量进行评价?解:软件质量的评价主要围绕可维护性、可靠性、可理解性和效率这几个方面进行。
2第3章习题部分答案1. 软件可行性研究的目的是什么?软件可行性研究的任务又是什么?解:软件可行性研究的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。
可行性研究的任务首先需要进行概要的分析研究,初步确定项目的规模和目标,确定项目的约束和限制,把他们清楚地列举出来。
《计算机软件技术基础》试题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(n 2)4.设A 是一个线性表(a 1,a 2,…,a n ),采用顺序存储结构,则在等概率的前提下,平均每插入一个元素需要移动的元素个数为 B ,平均每删除一个元素需要移动的元素个数为A ;若元素插在a i 与a i+1之间(0≤I ≤n-1)的概率为)1()(2+-n n i n ,则平均每插入一个元素所要移动的元素个数为 C ; A. 21-n B.2n C. 312+n D. 413+n 5.下列函数中,按它们在∞→n 时的无穷大阶数,最大的是 D 。
A. log nB. nlog nC. 2n/2D. n!6.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. 2n13.用单链表表示的链式队列的队头在链表的 A 位置。
A. 链头B. 链尾C. 链中14.若用单链表表示队列,则应该选用 B 。
A. 带尾指针的非循环链表B. 带尾指针的循环链表C. 带头指针的非循环链表D. 带头指针的循环链表15.在解决计算机主机与打印机之间速度不匹配问题时,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则从该缓冲区中取出数据打印,先放入打印缓冲区的数据先被打印。
1数据库的三级模式和两级映像体系结构中,模式/内模式映像存在于概念级和内部级之间,用于定义概念模式和内模式间的对应性,其主要作用是什么。
答:作用是保证了数据与程序的物理独立性,模式/内模式之间的映像是数据的全局逻辑结构和数据的存储结构之间的映像,当数据库的存储结构发生了变化,由于模式/内模式之间的映像使数据的逻辑结构可以保持不变,因此应用程序可以不必修改。
2简述逻辑数据的独立性答:逻辑数据独立性是指应用程序与数据库的逻辑结构之间的相互独立性。
当数据的逻辑结构改变时,通过修改外模式——模式映像,保持数据的局部逻辑结构不变,应用程序是依据数据的局部逻辑结构编写的,所以应用程序不必修改。
即模式变,应用程序不变。
3何谓算法?它与程序有何区别?答:算法是一系列解决问题的清晰指令,也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。
算法可以理解为有基本运算及规定的运算顺序所构成的完整的解题步骤。
它与程序的区别⑴一个程序不一定满足有穷性,但算法是有穷性的。
⑵程序中指令必须是机器可以执行的,而算法中的指令则无此限制。
⑶算法代表了对问题的解,而程序是算法在机器上的特定实现。
4试说明栈和队列的异同。
答:相同:从数据结构的角度看,都是线性结构,都可以通过顺序表,列表实现。
不同点:⑴队列先进先出,栈先进后出。
⑵对插入和删除操作的"限定"。
栈是限定只能在表的一端进行插入和删除操作的线性表。
队列是限定只能在表的一端进行插入和在另一端进行删除操作的线性表。
⑶遍历数据速度不同。
栈只能从头部取数据也就最先放入的需要遍历整个栈最后才能取出来,而且在遍历数据的时候还得为数据开辟临时空间,保持数据在遍历前的一致性队列怎不同,他基于地址指针进行遍历,而且可以从头或尾部开始遍历,但不能同时遍历,无需开辟临时空间,因为在遍历的过程中不影像数据结构,速度要快的多。
5何谓进程?请图示具有基本进程状态的状态转移图,并指出转移原因。
《计算机软件技术基础》试题1.线性表的链式存储结构与顺序存储结构相比优点是一CD2. 线性表是具有n 个 C的有限序列。
A.表元索B.字符C.数据元索E.信息项3. 若长度为n 的线性表采用顺序存储结构,在其第I 个位置插入一个新元索的算法的时间复杂度为 C (lWIWn+1)A. 0(0)B. 0(1)C. 0(n)D. 0(n 2)4. 设A 是一个线性表(g 弧…,弘),采用顺序存储结构,则在等概率的前提下,平均每插入一个元素需耍移动的元素个数为 B ,平均每删除一•个元素需要移动的元索个数为A ;若元索插在eh 与茹】之间(OWTWn-1)的概率为"匸",则平均每插入一个 n(n +1)元素所要移动的元索个数为C5•下列函数屮,按它们在 ms 时的无穷人阶数,最大的是—D 6•将卜•图所示的s 所指结点加到p 所指的结点之后,其语句应为:DA.所有的操作算法实现简单B.便于随机存取C.便于插入和删除 1).便于利川零散的存储器空间D.数据项C.2n + \3D ・3n +14A . C. 10g/7n/2 B. nlog/7 D. n! nextnextnextA. 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. n B. 2n~l C. n~lD. 2n8. 卜面的程序段是合并两个无头结点链表(ha 和hb)为一个无头结点链表ha 的过程,作为 参数的两个链表都是按结点的data 域由人到小链接的。
合并后新链表的结点仍按此方式链 接。
数据结构习题答案第一节概论一、选择题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. 软件项目管理工具主要包括______、______、______和______。
《计算机软件技术基础》参考答案及评分标准一、单项选择题(每空1分,共50分)评分标准:每空1分,错选、多选、漏选均不得分。
51.(本题共10分)评分标准:每空2分,如果答案比较接近正确答案给1分。
52.(本题共10分)缺页中断率f= 9/12=75%缺页中断率f= 7/12=58.3%评分标准:每小题5分,共10分。
其中缺页中断行1分,每出现一处错误扣0.5分,出现两处或以上错误,本 项得0分。
中断率计算1分,写对公式得0.5分。
如果未写计算公式结果正确,不扣分; 如果未写公式但结果有误,则本项得0分。
页面调试3分。
每当有一列中有错误则扣0・5分,至本项扣至0分为止。
53 .(本题共10分)对11个元素进行折半查找的判定树如下图所示:第i 层的元素的查找长度为i,所以平均查找长度为jffi = ^Q+2x2÷3x4⅞4x <) = 3LRU评分标准:判定树6分,当有一个元素的位置错误时扣0・5分。
平均查找长度4分。
如果直接写结果,则结果正确得4分,结果为5、5.5 或6得2分,结果为2至4间某数得1分。
如果写有过程,正确指明查找每个元素的概率得1分,给出每个元素的查找长度得1分,计算公式正确得1分,结果正确得1分。
54.(本题共10分)进行堆排序的过程如下:初始记录: 46 24 53 34 36 58 86 75 37 44第1趟排序: 36 75 58 37 44 46 53 34 24 [86]第2趟排序: 24 44 58 37 36 46 53 34 [75 86]第3趟排序: 34 44 53 37 36 46 24 [58 75 86]第4趟排序: 24 44 46 37 36 34 [53 58 75 86]第5趟排序: 24 44 34 37 36 [46 53 58 75 86]第6趟排序: 36 37 34 24 [44 46 53 58 75 86]第7趟排序: 24 36 34 E37 44 46 53 58 75 86]第8趟排序: 34 24 E36 37 44 46 53 58 75 86]第9趟排序: 24 E34 36 37 44 46 53 58 75 86]即最终排序结果为:24 34 36 37 44 46 53 58 75 86o评分标准:每趟排序结果和最终排序结果正确得1分,如果该行有错,则出现一处错误扣0.5分,出现两处或以上错误本行得。
《计算机软件技术基础》试题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中。
《计算机软件技术基础》参考答案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)若不越界,则绝对地址=该段的主存起始地址+段内地址。
计算机软件技术基础课后答案【篇一:《计算机软件技术基础》复习题(含答案)】txt>1.线性表的链式存储结构与顺序存储结构相比优点是a. 所有的操作算法实现简单c. 便于插入和删除 b. 便于随机存取d. 便于利用零散的存储器空间2.线性表是具有n个的有限序列。
a. 表元素d. 数据项 b. 字符 c. 数据元素e. 信息项3.若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为c 。
(1≤i≤n+1)a. o(0)b. o(1)2c. o(n) d. o(n)4.设a是一个线性表(a1,a2,?,an),采用顺序存储结构,则在等概率的前提下,平均每插入一个元素需要移动的元素个数为 b,平均每删除一个元素需要移动的元素个数为 a;若元素插在ai与ai+1之间(0≤i≤n-1)的概率为元素所要移动的元素个数为 c; 2(n?i),则平均每插入一个n(n?1) n?1 22n?1c.3a. n 23n?1d. 4b.5.下列函数中,按它们在n??时的无穷大阶数,最大的是 d。
a. lognb. nlognn/2c. 2 d. n!6.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. nc. n-1b. 2n-1 d. 2n13.用单链表表示的链式队列的队头在链表的a 位置。
a. 链头b. 链尾c. 链中14.若用单链表表示队列,则应该选用。
a. 带尾指针的非循环链表b. 带尾指针的循环链表c. 带头指针的非循环链表d. 带头指针的循环链表15.在解决计算机主机与打印机之间速度不匹配问题时,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则从该缓冲区中取出数据打印,先放入打印缓冲区的数据先被打印。
数据结构习题答案 2 第一节概论 2 第二节线性表 5 第三节栈和队列16 第五节树19 第七节查找25 第八节排序29 操作系统练习题参考答案32数据结构习题答案第一节概论一、选择题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.要求同一逻辑结构的所有数据元素具有相同的特性,这意味着( )。
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.根据数据元素之间关系的不同特性,以下四类基本的逻辑结构反映了四类基本的数据组织形式,其中解释错误的是( )。
计算机软件技术基础》试题1. 线性表的链式存储结构与顺序存储结构相比优点是 CD B. 便于随机存取D. 便于利用零散的存储器空间的有限序列。
A. 表元素B. 字符C. 数据元素D. 数据项E. 信息项3.若长度为 n 的线性表采用顺序存储结构, 在其第 I 个位置插入一个新元素的算法的时间复杂度为 C。
(1≤I ≤n+1)A. O(0)B. O(1)2C. O(n)D. O(n 2)4.设 A 是一个线性表 (a 1,a 2, ⋯,a n ),采用顺序存储结构,则在等概率的前提下,平均每插入一个元素需要移动的元素个数为 B ,平均每删除一个元素需要移动的元素个数为;若元素插在 a i 与 a i+1 之间(0 ≤I ≤n-1) 的概率为 2(n i) ,则平均每插入一个 n(n 1)元素所要移动的元素个数为C ;n1nA. B.2 2 2n 1 3n 1C.D.345. 下列函数中,按它们在 n时的无穷大阶数,最大的是A. log nB. nlog nA. 所有的操作算法实现简单 C. 便于插入和删除 2.线性表是具有 n 个 CC. 2 n/2D. n!next nextnext6. 将下图所示的 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 B. 2n-1C. n-1D. 2n8. 下面的程序段是合并两个无头结点链表 (ha 和 hb) 为一个无头结点链表 ha 的过程,作为参数的两个链表都是按结点的 data 域由大到小链接的。
合并后新链表的结点仍按此方式链 接。
请填写下述空框,使程序能正确运行。
1.#define NULL 0 typedef 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;A. n swhile(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 1,a 2, ⋯,a n) 与表B 的一个顺序子表(b k,b k+1, ⋯b k+n-1) 完全相同(即a1=b k,a2=b k+1,⋯a n=b k+n-1),则称表A包含在表B中。
设ha,hb 为带头结点的单链表,分别表示有序表A和B,下面的函数用于判别表 A 是否包含在表B中,若是,则返回true ,否则返回false 。
(提示:用递归实现)#define true 1 #define false 0 #define NULL 0 typedef struct node{int data;struct node *next;}node, linklisttype;int inclusion(linklisttype *ha, linklisttype *hb){linklisttype *pa, *pb;pa = ha->next;pb = hb->next;(1) ;while( (2) )if(pa->data=pb->data) (3) ;else (4) ;(5) ;}参考答案:(1) if(pa==NULL) return(true)(2) pb!=NULL && pa->data>=pb->data(3) return(inclusion(pa, pb))(4) pb = pb->next;(5) return(false)10. 在本题的程序中,函数create_link_list(n) 建立一个具有n 个结点的循环链表;函数josephus(n,I,m) 对由create_link_list(n) 所建立的具有n 个结点的循环链表按一定的次序逐个输出,并删除链表中的所有结点。
参数n(n>0) 指明循环链表的结点个数,参数I(1 ≤I ≤n) 指明起始结点,参数m( m>0是步长),指明从起始结点或前次被删除并输出的结点之后的第m个结点作为本次被输出并删除的结点。
例如,对于下图所示的具有 6 个结点的循环链表,在调用josephus(6,3,2) 后,将输出5,1,3,6,4,2 。
请在空框处填上适当内容,每框只填一个语句。
#define NULL 0typedef struct node{int data;struct node *next;}node, linklisttype;linklisttype *create_link_list(int n){ linklisttype *head, *p, *q; int I;head = NULL;if(n>0){head = (linklisttype *)malloc(sizeof(linklisttype));p = head;1至n-1*/ for(I=1;I<=n-1;I++){ /* 此循环用于建立一个链表,链表的内容从p->data =I;q = (linklisttype *)malloc(sizeof(linklistttype));(1) ;(2) ;}p->data = n;(3) ; /* 建立从尾链到首的环形结构*/}return(head);}void Josephus(int n, int j, int m){ linklisttype *p, *q;int j;p = create_link_list(n);for(;I>1;I--) p = p->next;(4) ;while(j<n){for(I=1;I<=m-1;I++) p = p->next;(5) ;printf( “ %8d” ,q ->data);(6) ;free(q);j=j+1;}}参考答案:(1) p->next = q;(2) p = q;(3) p->next = head(4) j=0(5) q=p->next;(6) p->next = q->next11. 在下列程序中,函数difference(A,B) 用于求两集合之差C=A-B,即当且仅当 e 是A中的一个元素,且不是B中的元素时, e 是C中的一个元素。
集合用有序链表实现,用一个空链表表示一个空集合,表示非空集合的链表根据元素之值按递增排列,执行C=A-B之后,表示集合A和B的链表不变,若结果集合C非空,则表示它的链表应根据元素之值按递增序排列。
函数append() 用于在链表中添加结点。
#include <>#define NULL 0typedef struct node{int data;struct node *next;}NODE;NODE *append(NODE *last, int x){last->next=(NODE *)malloc(sizeof(NODE));last->next->data=x;return(last->next);}NODE *difference(NODE *A ,NODE *B){NODE *C,*last;C=last=(NODE *)malloc(sizeof(NODE));while( (1) )if(A->data < B->data){ last=append(last,A->data); A=A->next;}elseif( (2) ){A=A->next;B=B->next;}else(3) ;while( (4) ){last=append(last,A->data);A=A->next;}(5) ;last=C;C=C->next;free(last);return(C);}参考答案:(1) A!=NULL & B!=NULL(2) A->data==B->data(3) B=B->next;(4) A!=NULL(5) last->next=NULL;12. 阅读以下算法,填充空格,使其成为完整的算法。
其功能是在一个非递减的顺序存储线性表中(从下标 1 处开始存储) ,删除所有值相等的多余元素。
#define MAXSIZE 30typedef struct{int elem[MAXSIZE];int length;/* 表长*/}sqlisttype;void exam21(sqlisttype *L){int I,j; I=2,j=1;while( (1) ){ if(L->elem[I]<>L->elem[j]){(2) ; (3);}I++;}(4);}参考答案:(1) i<=L->length (2) (3) j++; (4)13. 用单链表表示的链式队列的队头在链表的 A 位置。
A. 链头B. 链尾C. 链中14. 若用单链表表示队列,则应该选用 B 。
A. 带尾指针的非循环链表B. 带尾指针的循环链表C. 带头指针的非循环链表D. 带头指针的循环链表15. 在解决计算机主机与打印机之间速度不匹配问题时,通常设置一个打印数据缓冲区, 机将要输出的数据依次写入该缓冲区, 而打印机则从该缓冲区中取出数据打印, 缓冲区的数据先被打印。