
2.2 习题解答
1.选择题
(1)~(5)B、B、D、C、D
2.填空题
(1)127。
解读与点评:由程序框图知循环体被执行后a的值依次为3、7、15、31、63、127,故输出的结果是127。
(2)30。
解析:按照程序框图依次执行为S=5,n=2,T=2;S=10,n=4,T=2+4=6;S=15,n=6,T=6+6=12;S=20,n=8,T=12+8=20;S=25,n=10,T=20+10=30>S,输出T=30。
解读与点评:本题主要考查循环结构的程序框图,一般可以反复执行运算直到满足条件结束。本题中涉及3个变量,注意每个变量的运行结果和执行情况。
3.解答题
(1)数据结构是一门研究非数值计算的程序设计中计算机的操作对象及其之间关系和操作等的学科。数据的逻辑结构是指数据元素之间的逻辑关系,它只抽象地反映数据元素间的相互关系,而不考虑数据在计算机中的具体存储方式,是独立于计算机的。逻辑结构的4种基本结构是集合结构、线性结构、树形结构和图状结构。
数据的存储结构是指数据在存储器中的存储方式,也可以说是逻辑结构在计算机存储设备中的物理实现,有时也被称为“数据的物理结构”。数据存储结构的基本组织方式有顺序存储结构和链式存储结构。
(2)解答如下。
· 输入:一个算法必须有零个或一个以上输入量。
· 输出:一个算法应有一个或多个输出量,输出量是算法计算的结果。
· 明确性:算法的描述必须无歧义,以保证算法的实际执行结果精确地符合要求或期望,通常要求实际运行结果是确定的。
· 有限性:依据图灵的定义,一个算法是能够被任何图灵设备系统模拟的一串运算。而图灵机只有有限个状态、有限个输入符号和有限个转移函数(指令),而一些定义更规定算法必须在有限个步骤内完成任务。
· 有效性:又称“可行性”,能够实现算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现。
(3)可以构成5种二叉树,如图2-1所示。

图2-1 二叉树
(4)解答如下。
· 自然语言描述步骤如下。
输入正整数n,赋值变量k等于2。
变量k自加1。
当k不能整除n时,返回执行上一步。
判断k是否等于n,如果是,执行下一步;否则执行最后一步。
输出n是素数。
输出n不是素数。
· 伪代码描述如下:

传统流程图描述如图2-2所示。

图2-2 传统流程图描述
N-S流程图描述如图2-3所示。

图2-3 N-S流程图描述
C语言代码描述如下。
C源程序(文件名xt2-1.c):
