第7章算法程序与计算系统之灵魂练习题答案解析 下载本文

(D)上述说法都不正确。

答案:C 解释:

本题考查对TSP问题抽象的理解

I就是对最原始的TSP问题的抽象描述。II也是对TSP问题的描述,只是将城市换成了电子元件。III和IV是对同一问题的不同表述罢了,都是TSP问题,只是将城市换为了图。四个数学抽象都可以被认为是TSP问题。故选项(C)正确。

详细内容请参考第七章视频“算法,程序与计算系统之灵魂”与第七章课件。

5、数据结构是算法设计的重要步骤,针对不同问题的算法设计应该选择适当的数据结构,不同的数据结构会使得解决问题的算法的性能有所不同。回答下列问题。 (1)关于数据结构,下列说法不正确的是_____。

(A)数据结构是问题域数学模型中各种数据的存储结构; (B)数据结构是将逻辑上有一定语义关系的数据,转换成计算机可以存储和处理的变量,便于算法和程序进行处理; (C)数据结构是将具有一定语义关系的变量进行命名,以便隐藏数据结构内部的操作细节,便于算法按逻辑语义通过操控该名字来操控该数据结构; (D)数据结构包含了数据的逻辑结构、存储结构及其操作; (E)上述说法有不正确的。

答案:E 解释:

本题考查对数据结构的理解

数据结构是数据的逻辑结构、存储结构及其操作的总称,它提供了问题求解/算法的数据操纵机制。(A) (B) (C)(D)的说法都没有问题。所以(E)是不正确的。

详细内容请参考第七章视频“算法,程序与计算系统之灵魂”与第七章课件。

(2)关于数据结构,下列说法不正确的是______________?

(A) 数据结构由逻辑结构、存储结构及运算3部分组成; (B) 存储结构定义了数据在存储器中的存储方式; (C) 向量使用顺序存储结构,并借助元素在存储器中的相对位置来表示数据元素的逻辑关系;

(D) 在树结构中,指针用于表达元素之间的逻辑关系——父子关系,每个元素的指针指向其父节点,因此一个元素可以有一个或多个指针。

答案:D 解释:

本题考查对数据结构的理解 数据结构是数据的逻辑结构、存储结构及其操作的总称。(A)正确。数据的存储结构

也就是在反映数据逻辑关系的原则下,数据在存储器中的存储方式。(B)正确。向量确实是使用顺序存储结构,并且借助元素在存储器中的相对位置来表示数据元素的逻辑关系的,(C)正确。在树结构中,如果每个元素的指针都指向其父节点,那么每个元素只能有一个指针。因为每个元素只有一个父亲。故(D)错误。 详细内容请参考第七章视频“算法,程序与计算系统之灵魂”与第七章课件。

6. 数据通常要存储在存储器中,存储器是按地址访问的存储单元的集合,因此存储器可被认为是按线性方式组织数据。数组是高级语言中经常使用的一种数据结构,其按照不同的下标可访问数组的不同的元素。如下图所示:

(1)关于数组和存储器,下列说法不正确的是_____。

(A)和存储器一样,数组是按线性方式组织数据; (B)和存储器一样,一维数组是按线性方式组织数据,一个数据元素需要一个存储单元来存储,一个下标即相当于一个存储单元的地址; (C)和存储器一样,一维数组是按线性方式组织数据,一个数据元素需要一个或多个存储单元来存储,一个下标即相当于一个存储单元的地址;

(D)和存储器一样,一维数组是按线性方式组织数据,一个数据元素需要一个或多个存储单元来存储,一个下标即相当于一个或多个存储单元的地址;

答案:C 解释:

本题考查对存储器和数组的理解。 数组是按照线性方式组织数据的。当一个数据元素需要多个存储单元存储时,一个下标代表的就是多个存储单元的地址,所以(C)的说法不准确。其余说法都对。

详细内容请参考第七章视频“算法,程序与计算系统之灵魂”与第七章课件。

(2)请对照上图的左子图和右子图来观察,右子图的二维数组是按左图的形式存储在存储器中。则D[4][2]元素所对应的存储单元的存储地址为_____。

(A)00000000 00000101; (B)00000000 00001000; (C)00000000 00001010;

(D)上述都不正确;

答案:B 解释:

本题考查对存储器和数组的理解。 图中,二维数组中,D[4][2]对应的元素是80,而且是第二个80.在存储器中,找到第二个80的位置,其所对应的地址为:00000000 00001000;(B)正确。

详细内容请参考第七章视频“算法,程序与计算系统之灵魂”与第七章课件。

(3)请参照上图的左子图和右子图来观察,右子图的二维数组是按左图的形式存储在存储器中。则D[i][j]元素,与对应存储单元的存储地址的转换关系正确的为_____。

(A)D[i][j]元素的存储地址=数组的起始地址+((i-1)*每行的列数+j-1)*单一元素占用存储单元的数目; (B)D[i][j]元素的存储地址=数组的起始地址+(i-1)*每行的列数+j-1;此公式在任何情况下都正确; (C)D[i][j]元素的存储地址=数组的起始地址+((j-1)*每行的列数+i-1)*单一元素占用存储单元的数目;

(D)D[i][j]元素的存储地址=数组的起始地址+(j-1)*每行的列数+i-1;此公式在任何情况下都正确;

答案:A 解释:

本题考查对存储器和二维数组的理解。 记住数组的下标是从0开始编号的。((i-1)*每行的列数+j-1)得到二维数组中,所求的元素的下标偏移量。((i-1)*每行的列数+j-1) *单一元素占用存储单元的数目得到地址的偏移量。再加上数组的起始地址,便可得到所求元素的地址。(A)正确。 详细内容请参考第七章视频“算法,程序与计算系统之灵魂”与第七章课件。

7.“树”是一种典型的数据结构,在很多算法中都应用树来组织相关的数据。树是组织层次型数据的一种存储结构,它将每一个数据称为一个数据元素。见下图I.示意,采用三个数组来存储树型数据,一个数组TreeElement[]存放数据元素本身,一个数组LeftPointer[]存放该数据元素的左侧子元素的存放地址(简称为左指针),另一个数组RightPointer[]存放该数据元素的右侧子元素的存放地址(简称为右指针)。参照图I.,回答下列问题。

图I.

(1)关于“树”这种数据结构,下列说法不正确的是_____。

(A)“树”既需要存储数据元素本身即数据,还需要存储数据元素之间的关系;

(B)“树”可以采用两个数组来组织树型数据,其中一个数组用于存储数据元素本身,另一个数组用于存储与该数据元素发生某种关系的另一个数据元素的存储位置; (C)“树”可以采用三个数组来组织树型数据,其中一个数组用于存储数据元素本身,另外两个数组用于存储与该数据元素发生某种关系的另外两个数据元素的存储位置; (D)不仅可以采用(B)(C)的方式组织树型数据,还有其他的方式; (E)上述说法有不正确的。

答案:E 解释: