考研数据结构及程序设计在线题库每日一练(一十三)
以下是希赛网给大家分享考研数据结构及程序设计在线题库每日一练,希望通过刷题可以帮助大家巩固重要知识点,对知识点查漏补缺,祝愿大家能顺利通过考试!
本文提供考研数据结构及程序设计在线题库每日一练,以下为具体内容
1、下列数据中,( )是非线性数据结构。
A、栈
B、队列
C、完全二叉树
D、堆
2、判定一个循环队列qu(最多元素为MaxSize)为空的条件是( )。
A、qu→rear-qu→front==MaxSize
B、qu→rear-qu→front-1==MaxSize
C、qu→rear==qu→front
D、qu→rear=qu→front-1
3、设有说明double(*p1)[N];其中标识符p1是( )。
A、N个指向double型变量的指针。
B、指向N个double型变量的函数指针。
C、一个指向由N个double型元素组成的一维数组的指针。
D、具有N个指针元素的一维指针数组,每个元素都只能指向double型量。
4、下列程序段的输出结果是_____。void main(){int k;for(k=1; k<5; k++){if(k%2!=0)prinft(“#”);elseprintf(“*”);}}
A、#*#*;
B、*#*#
C、##
D、以上都不对
1、试题答案:C
试题解析:
线性结构是一个有序数据元素的集合,其特点是数据元素之间存在一对一的线性关系。栈和队列是线性数据结构,堆也可以看作是线性结构,一般存储在数组中。而完全二叉树根结点与子结点存在一对多的关系,一定是非线性结构。故本题选C。
2、试题答案:C
试题解析:
【考点】本题考查判定一个循环队列的队空条件。
【解析】为了方便起见,约定初始化建空队时,令front=rear=0。但是,当队空时:front=rear;当队满时:front=rear亦成立。因此只凭等式front=rear无法判断队空还是队满。有两种方法处理上述问题:
(1)另设一个标志位以区别队列是空还是满。
(2)牺牲一个存储空间,约定以“队列头指针front在队尾指针rear的下一个位置上”作为队列“满”状态的标志(front指向队首元素,rear指向队尾元素的下一个元素)。即:
① 队空时:front=rear;
② 队满时:(rear+1)%maxsize=front。
综上所述,本题选C。
3、试题答案:C
试题解析:
【考点】本题考查数组指针。
【解析】p1是一个指针,此指针指向一个数组,此数组具有N个元素,并且每个元素都是double类型的,所以p1是一个指向具有N个double类型元素的数组的指针。故本题选C。
4、试题答案:A
试题解析:
【考点】本题考查程序分析。
【解析】当k=1时,k%2!=0,输出“#”;当k=2时,k%2=0,输出“*”;当k=3时,k%2!=0,输出“#”;当k=4时,k%2=0,输出“*”;当k=5时,for循环结束。因此,整个程序的输出结果为“#*#*”。

