logo资料库

计算机软件技术基础(第三版)沈被娜-课后习题答案较全.doc

第1页 / 共37页
第2页 / 共37页
第3页 / 共37页
第4页 / 共37页
第5页 / 共37页
第6页 / 共37页
第7页 / 共37页
第8页 / 共37页
资料共37页,剩余部分请下载后查看
第一章 信息与计算机 1.1 什么是信息?信息与数据的区别和联系在何处? 信息定义之一:信息是现实世界中存在的客观实体、现象、关系 进行描述的数据。 信息定义之二:信息是经过加工后并对实体的行 为产生影响的数据。 与数据的区别和联系: 数据定义:数据是现实世界客观存在的 实体或事物的属性值,即指人们听到的事实和看到的景象。 我们把 这些数据收集起来,经过处理后,即得到人们需要的信息。信息和数 据的关系可以归结为: 1. 信息是有一定含义的数据。 2. 信息是 经过加工(处理)后的数据。 3. 信息是对决策有价值的数据。 1.2 信息有哪些基本属性? 信息的基本属性有: 1. 事实性。 2. 等级性。 3. 可压缩性。 4. 可扩散性。 5. 可传输性。 6. 共享性。 7. 增值性和再生性。 8. 转换性。 1.3 计算机的主要特点是什么? 计算机最主要的特点是: 1. 高速自动的操作功能。 2. 具有记 忆的能力。 3. 可以进行各种逻辑判断。 4. 精确高速的计算能力。 1.5 完整的计算机系统应该包括哪几部分? 目前最完整的计算机系统学说认为由五部分组成: 1. 人员 2. 数据 3. 设备 4. 程序 5. 规程 1.6 什么是计算机硬件?什么是计算机软件? 硬件:泛指实际存在的物理设备,包括计算机本身及其外围设备。
微型计算机的硬件系统:主机、外存储器、输入设备、输出设备、微 机的系统总线。 软件:是指计算机程序、方法、规则的文档以及在计算机上运 行它时所必须的数据。 计算机软件一般分为系统软件和应用软件。 1.8 软件技术发展的几个阶段各有什么特点?它与硬件的关系如 何? 第一阶段:高级语言阶段 特点:这一时期,编译技术代 表了整个软件技术,软件工作者追求的主要 目的是设计和实现在控 制结构和数据结构方面表现能力强的高级语言。但在这一时期内,编 译系统主要是靠手工编制,自动化程度很低。 硬件关系:此时 期计算机的硬件要求仅能用机器指令来编制可运行的程序。 第二阶段:结构程序设计阶段 特点:在程序的正确性方 面 , 提 出 了 结 构 化 程 序 设 计 思 想 使 程 序 的 可 靠 性 提 高 了 。 程序设计方法论方面,提出由顶向下法和自底向上法。使程序模块 化,使问题的复杂性和人的思维统一起来了。 出现了 软件生产管理。 硬件关系:磁盘问世,操作系统发展,非数 值计算应用发展,通信设备完 善,网络发展,集成电路发展等使软 件复杂性增加产生软件危机,在此背景下发展了软件技术。 第三阶段:自动程序设计阶段 特点:向集成化、一体化 发展。出现了软件开发环境。程序设计基本方法 进一步改进。 硬件关系:集成电路迅速发展以及高分辨率终端的出现,为个人计算 机发 展提供了条件,再加上人工智能、专家系统研究的发展,使程
序设计进入成熟期。 1.9 什么是多媒体计算机? 多媒体计算机包含那几项? 什么是多媒体计算机? 1. “媒体”的概念分为两部分,其一是信息存储的实体,其二是 表现信息形式的载体; 2. 多媒体计算机是以计算机为核心,可以综合处理数值计算、文 本文件、图形图像、声音视频等多种信息的计算机系统。 3. 多媒体是 20 世纪 90 年代计算机发展的新领域,它是计算机技 术与图形图像、动画、声音和视频等领域顶尖技术结合的产物, 它将人机交互的信息从单纯的视觉(文字、图形)扩大到两个 以上的媒体信息 B: 多媒体的基本要素: 文本,图形,图像,动画,音频,视频, 可以看出,它是电脑, 电视机,游戏机,录放机,传真机和电话机的综合体 第二章 常用数据结构及其运算 2.1 什么是数据结构?它对算法有什么影响? 数据结构是指同一数据对象中各数据元素间存在的关系。 数据结构对算法的影响:算法的实现必须借助程序设计语言中 提供的数据类型及其运算。一个算法的效率往往与数据的表达 形式有关,因此数据结构的选择对数据处理的效率起着至关重
要的作用。它是算法和程序设计的基本部分,它对程序的质量 影响很大。 2.2 何谓算法?它与程序有何区别? 广义地说,为解决一个问题而采取的方法和步骤,就称为“算 法”。计算机算法是通过计算机能执行的算法语言来表达的。 和程序的区别:一个程序包括两个方面的内容: (1)对数据的描述,即数据结构。 (2)对操作的描述,即算法。 所以算法是程序的一个要素。 2.3 何谓频度,时间复杂度,空间复杂度?说明其含义。 频度:在某个算法中某个语句被重复执行的次数就是此语句的频 度。时间复杂度:是用来估算一个算法的执行时间的量,以算法中频 度最大的语句来度量。空间复杂度:指在算法中所需的辅助空间的单 元,而不包括问题的原始数据占用的空间。 2.4 试编写一个求多项式 Pn =anxn +an-1 xn-1+……+a1x+a0 的值 Pn(x0) 的算法,要求用乘法次数最少,并说明算法中主要语句的执行次数及 整个算法的时间复杂度。 A=(a0, a1 ……an) mul = 1 // sum=a0 for i=1 to n mul = mul * x // x
sum = A[i]*mul + sum //求和 end(i) 进行了 n 次 时间复杂度为:2n 2.5 计算下列各片段程序中 X←X+1 执行次数 (1) for i=1 to n for j=1 to i for k=1 to j x←x+1 end(k) end(j) end(i) 执行次数:n*n*n (2) i←1 while i
for i=1 to n j←1 for k=j+1 to n x← x+1 end(k) end(i) 执行次数:n*(n-1) 2.6 数据的存储结构主要有哪两种?它们之间的本质区别是什么? 数据的存储结构:向量和链表。 本质区别: 向量是连续存放的,其存储空间是静态分配的,以存放顺序来表达 元素的前后件的关系。 链式存储结果不需要一组连续的存储单元,其数据元素可以分散存 放在存储空间中,其元素关系由指针来指向。
2.8 已知线性表 L(a1, a2, … , an ) 元素按递增有序排列。用向量作为存储结构,试编写算法: 删除表中值在 c 与 d 之间(c<=d)的元素 大于等于 c 序号 4 大于 d 序号 11 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 找到第 1 个大于等于 c 的元素,序号为 s 找到第一个大于 d 的元素,序号为 t L[s] ← L[t] L[s+1] ← L[t+1]… L[s+m] ← L[t+m] L[s + i ] ← L[t + i ] // s+m = t -1 i = 0 to t-s-1 // m = t – s - 1 // i 从 1 循环到 n i=1; s = -1; // 第 1 个大于等于 c 的元素序号 t = -1; // 第 1 个大于 d 的元素序号 for i = 1 to n step -1 if s ==-1 and L[i]>=c s = i t == -1 and L[i] >d t = i ; // 找到第 1 个大于等于 c 的元素 // 找到第 1 个大于 d 的元素 if end (i) if s != -1 and t !=-1 i = s while i < t and i + t – s <=n L[i] = L [i + t – s ] i++ end(while) else return(错误 没有找到 元素在 c 和 d 之间) end(if) for j=c to n-d+c L[j]<--L[j+d-c]//把 j+d-c 项给 j End(j) N<--n-d+c//所有项数减少 Return
2.9 线性表 A,B 中的元素为字符串类型,用向量结构存储,试编写算法,判断 B 是否为 A 的子序列(例如 A=ENGLISH ,B=LIS ,则 B 为 A 的子序列) A[m] B[n] A: B: a1 b1 a2 b2 a3 b3 a4 b4 a5 b5 a6 b6 a7 a8 a9 a10 a11 a12 a13 a14 a15 i=1 检查 A 中第 1 个元素开始的字符串是否与 B 匹配 i=2 检查 A 中第 2 个元素开始的字符串是否与 B 匹配 … … i= m – n + 1 检查 A 中 第(m-n+1)个元素开始的字符串是否与 B 匹配 A[m] B[n] if ( mn then return( A 字符串中第 i 个字符开始的子串与 B 匹配 ) end(i) renturn (找不到匹配的子串) 设 A,B 两个线性表的元素个数为 m,n If (m<=n)then{return} For i=0 to n-1 a=A[i] for j=0 to m-1 if(a=B[j])then{b++} end(j) end(i) if(b=m)then{B 为 A 的子集} return
分享到:
收藏