《国开数据结构复习题及答案.docx》由会员分享,可在线阅读,更多相关《国开数据结构复习题及答案.docx(73页珍藏版)》请在第一文库网上搜索。
1、数据结构复习题2020秋季第一章绪论一、选择题1、把数据存储到计算机中,并具体体现数据元素间的逻辑结构称为()oA.给相关变量分配存储单元B.物理结构C.算法的具体实现D.逻辑结构2、下列说法中,不正确的是()oA.数据项是数据中不可分割的最小可标识单位B.数据元素是数据的基本单位C.数据可有若干个数据元素构成D.数据项可由若干个数据元素构成3、一个存储结点存储一个()oA.数据元素B.数据结构C.数据项D.数据类型4、数据结构中,与所使用的计算机无关的是数据的()oA.存储结构B.物理和存储结构C.物理结构D.逻辑结构5、下列的叙述中,不属于算法特性的是()oA.可行性B.输入性C.可读性D
2、.有穷性6、算法的时间复杂度与()有关。A.计算机的操作系统B.算法本身C.数据结构D.所使用的计算机。7、下面程序段的时间复杂度是()oi=s=0;while (sn)i+;)D.O(1)A.O(n0.5)B. O(log2n) C. 0(n)8、下面程序段的时间复杂度是()。int f(unsigned int n)if (n=0 In=l) return 1;else return n*f(n-l);)A.O(1)B. O(log2n) C. O(n!) D. O(n)10、在数据结构中,从逻辑上可以把数据结构分为( )oA.动态结构和静态结构B .紧凑结构和非紧凑结构C.内部结构和外部
3、结构D.线性结构和非线性结构IK执行下面程序段时,执行S语句的次数为( )ofor (int i=l;i=n;i+)for (int j=l;i=i;j+)S;A.n2B.n% C.n(n+1)D.n(n+1)/12、数据的存储结构包括数据元素的表示和( )oA.数据元素间的关系的表示B.数据处理的方法C.数据元素的类型D.相关算法13、树状结构中数据元素的位置之间存在()的关系。A. 一对一B.多对多C.每一个元素都有一个直接前驱和一个直接后继D. 一对多14、一种逻辑结构( )oA.与存储该逻辑结构的计算机相关B.只能有唯一的存储结构C.可以有不同的存储结构D.是指某一种数据元素的性质15
4、、把数据存储到计算机中,并具体体现数据元素间的逻辑结构称为( )oA.逻辑结构B.数据元素的存储C.存储结构D.给数据元素分配存储空间二、判断题1 .数据元素是数据的最小单位。()2 .数据的逻辑结构是指各数据元素之间的逻辑关系,是用户根据应用需要建立 的。()3 .算法和程序原则上没有区别,在讨论数据结构时二者是通用的。()4 .数据的逻辑结构与数据元素本身的内容和形式无关。()5 .算法和程序都应具有下面一些特征:有输入,有输出,确定性,有穷性,有 效性。()6 .只有用面向对象的计算机语言才能描述数据结构算法。()7 .数据元素可以有一个或多个数据项组成。()8 .数据元素之间的抽象关系
5、称为物理结构。()9 .数据的逻辑结构在计算机中的表示称为逻辑结构。()10 .数据的逻辑结构是与存储该结构的计算机相关的。()11 .数据结构中,元素之间存在多对多的关系称为树状结构。()12 .通常可以把某城市中各公交站点间的线路图抽象成树型结构。()13 .通常可以把一本含有不同章节的书的目录结构抽象成线性结构。()14 .结构中的数据元素存在多对多的关系称为图形结构。()15 .数据结构中,数据可以由一个或多个数据项组成。()三、程序题指出下列各算法的时间复杂度。1、int prime(int n)(int i=l;int x=(int) sqrt(n);while (+ix) ret
6、urn 1;else return 0;)2、int suml(int n)(int p=l7s=0;for (int i=l; i=n; i+) P*=i;s+=p;)return s;)3、 int sum2(int n)int s=0;for (int 1=1; l=n; 1+) int p=l;for (int j=l; j=l; j+)P*=j;s+=p;)return s;)4、 int fun (int n)(int 1=1, s=l;while (snext=NULLB. p-next=q-nextC. p=q-nextD. p-next=q4、在一个单链表中P所指结点之后插入
7、一个S所指的结点时,可执行()。A. p-next= s; s-next= p-next B. p-next=s-next;C. s-next=p-next; p-next=s; D. p=s-next5、非空的单向循环链表的尾结点满足()(设头指针为head,指针P指向尾结 点)。A. p-next=headB. p=NULLC. P= headD. p-next=NULL6、链表不具有的特点是()oA.不必事先估计存储空间B.可随机访问任一元素C.逻辑上相邻的元素在物理位置上不一定相邻D.插入删除不需要移动元素7、带头结点的链表为空的判断条件是()(设头指针为head)。A. head-n
8、ext=headB. head=NULLC. head-next=NULLD. head!=NULL8、在一个长度为n的顺序表中为了删除第5个元素,由第6个元素开始从后到 前依次移动了 15个元素。则原顺序表的长度为()oA. 19B. 21C. 20D. 259、有关线性表的正确说法是()oA.线性表至少要求一个元素B.每个元素都有一个直接前驱和一个直接后继C.表中的元素必须按由小到大或由大到下排序D.除了一个和最后一个元素外,其余元素都有一个且仅有一个直接前驱和一个 直接后继10、向一个有127个元素的顺序表中插入一个新元素,并保持原来的顺序不变, 平均要移动()个元素。A. 63.5B.
9、 7C. 63D. 8IK 一个顺序表第一个元素的存储地址是90,每个元素的长度为2,则第6个元 素的地址是()oA. 106B. 98C. 102D. 10012、在一个不带头结点的单循环链表中,p、q分别指向表中第一个结点和尾结 点,现要删除第一个结点,且p、q仍然分别指向新表中第一个结点和尾结点。可用的语句是P=P-next;和( )oA. q-next=pB. p-next=qC. q=pD. p=q-next13、在线性表的顺序结构中,以下说法正确的是( )oA.逻辑上相邻的元素在物理位置上不一定相邻B.数据元素是不能随机访问的C.进行数据元素的插入、删除效率较高D.逻辑上相邻的元素
10、在物理位置上也相邻)o14、对链表,以下叙述中正确的是(A.不能随机访问任一结点B.插入删除元素的操作一定要要移动结点C.结点占用的存储空间是连续的D.可以通过下标对链表进行直接访问15、设有一个长度为n的顺序表,要在第i个元素之前(也就是插入元素作为新 表的第i个元素),插入一个元素,则移动元素个数为()oA. n-i+1B. iC. n-i-1D. n-i16、在一个单链表HL中,若要向表头插入一个由指针P指向的结点,则执行A. HL=p;p-next=HL;B. p-next=HL;HL=p;C. p-next=HL;p=HL;D. p-next=HL-next;HL-next=p;17
11、、在一个单链表中,已知q所指结点是P所指结点的前驱结点,若在q和P 之间插入S结点,则以下操作哪个是正确的()oA. s-next=p-next; p-next=s;B. p-next=s-next; s-next=p;C. p-next=s; s-next=q;D. q-next=s; s-next=p;18、在循环双链表的p所指结点之后插入s所指结点的操作是( )oA.p-right=s; s-left=p; p-right-left=s; s-right=p-right;B. p-right=s; p-right-left=s; s-left=p; s-right=p-right;C.
12、s-left=p; s-right=p-right; p-right=s; p-right-left=s;D. s-left=p; s-right=p-right; p-right-left=s; p-right=s;19、若HL为一个不带表头结点的循环单链表的表头指针,若有HL-neXt=HL 条件存在,则该循环单链表是()oA.空表B.只有1个元素;C.空表或只有一个元素D.非空表 20、若HL为一个带表头结点的单链表的表头指针,则该表为空表的条件是)oA.HL=NULLB.HL-next=NULLC.HL-next=HLD.HL!=NULL21、设头指针为head的非空的单向链表,指针P
13、指向尾结点,则通过以下操作()可使其成为单向循环链表。选择一项:A. head = p;B. p=head;C. p-next = NULL;D. p-next=head;二、判断题1、设有一个不带头结点的单向循环链表,结点的指针域为next,指针P指向尾 结点,现要使P指向第一个结点,可用语句p=p-next;。()2、设有一个单向链表,结点的指针域为next,头指针为head, P指向尾结点, 为了使该单向链表改为单向循环链表,可用语句p-next=head 。()3、设有一个单向循环链表,结点的指针域为next,头指针为head,指针P指向 表中某结点,若逻辑表达式p-next=head;的结果为真,则P所指结点为尾结点。()4、要在一个单向链表中P所指向的结点之后插入一个S所指向的新结点,若链 表中结点的指针域为next,可执行p-next=s; s-next= p-next;的操作。() 5、要在一个单向链表中删除P所指向的结点,已知q指向P所指结点的直接前 驱结点,若链表中结点的指针域为next,则可执行q-next= p-next0 ()6、要在一个带头结点的单向循环链表中删除头结点,得到一个新的不带头结点 的单向循环链表,若结点的指针域为next,头