当前位置:文档之家› (完整word版)《数据结构》第二章线性表习题

(完整word版)《数据结构》第二章线性表习题

(完整word版)《数据结构》第二章线性表习题
(完整word版)《数据结构》第二章线性表习题

《数据结构》

第二章线性表习题

一、单项选择题

1. 线性表是________。

A.一个有限序列,可以为空B.一个有限序列,不可以为空

C.一个无限序列,可以为空D.一个无限序列,不可以为空

2. 在一个长度为n的顺序表中删除第i个元素(0<=i<=n)时,需向前移动个元素。

A.n-i B.n-i+l C.n-i-1 D.i

3. 线性表采用链式存储时,其地址________。

A.必须是连续的B.一定是不连续的

C.部分地址必须是连续的D.连续与否均可以

4. 从一个具有n个结点的单链表中查找其值等于x的结点时,在查找成功的情况下,需平均比较________个元素结点。

A.n/2 B.n C.(n+1)/2 D.(n-1)/2

5. 在双向循环链表中,在p所指的结点之后插入s指针所指的结点,其操作是____。

A. p->next=s; s->prior=p;

p->next->prior=s; s->next=p->next;

B. s->prior=p; s->next=p->next;

p->next=s; p->next->prior=s;

C. p->next=s; p->next->prior=s;

s->prior=p; s->next=p->next;

D. s->prior=p; s->next=p->next;

p->next->prior=s; p->next=s;

6. 设单链表中指针p指向结点m,若要删除m之后的结点(若存在),则需修改指针的操作为________。A.p->next=p->next->next; B.p=p->next; C.p=p->next->next; D.p->next=p;

7. 在一个长度为n的顺序表中向第i个元素(0< i

A.n-i B.n-i+l C.n-i-1 D.i

8. 在一个单链表中,已知q结点是p结点的前趋结点,若在q和p之间插入s结点,则须执行

A.s->next=p->next; p->next=s B.q->next=s; s->next=p

C.p->next=s->next; s->next=p D.p->next=s; s->next=q

9. 以下关于线性表的说法不正确的是______。

A.线性表中的数据元素可以是数字、字符、记录等不同类型。

B.线性表中包含的数据元素个数不是任意的。

C.线性表中的每个结点都有且只有一个直接前趋和直接后继。

D.存在这样的线性表:表中各结点都没有直接前趋和直接后继。

10. 线性表的顺序存储结构是一种_______的存储结构。

A.随机存取B.顺序存取C.索引存取D.散列存取

11. 在顺序表中,只要知道_______,就可在相同时间内求出任一结点的存储地址。

A.基地址 B.结点大小 C.向量大小 D.基地址和结点大小

12. 在等概率情况下,顺序表的插入操作要移动______结点。

A.全部 B.一半 C.三分之一 D.四分之一

13. 在______运算中,使用顺序表比链表好。

A.插入 B.删除 C.根据序号查找 D.根据元素值查找

14. 在一个具有n个结点的有序单链表中插入一个新结点并保持该表有序的时间复杂度是_______。A.O(1) B.O(n) C.O(n2) D.O(log2n)

15. 设有一个栈,元素的进栈次序为A, B, C, D, E,下列是不可能的出栈序列__________。

A.A, B, C, D, E B.B, C, D, E, A C.E, A, B, C, D D.E, D, C, B, A 16. 在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以top作为栈顶指针,当做出栈处理时,top变化为______。

A.top不变B.top=0 C.top-- D.top++

17. 向一个栈顶指针为hs的链栈中插入一个s结点时,应执行______。

A.hs->next=s; B.s->next=hs; hs=s;

C.s->next=hs->next;hs->next=s; D.s->next=hs; hs=hs->next;

18. 在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队头指针和队尾指针,则判断队满的条件为________。

A.rear%n= = front B.(front+l)%n= = rear

C.rear%n -1= = front D.(rear+l)%n= = front

19. 在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队头指针和队尾指针,则判断队空的条件为________。

A.rear%n= = front B.front+l= rear C.rear= = front D.(rear+l)%n= front 20. 在一个链队列中,假定front和rear分别为队首和队尾指针,则删除一个结点的操作为________。A.front=front->next B.rear=rear->next

C.rear=front->next D.front=rear->next

二、填空题

1. 线性表是一种典型的_________结构。

2. 在一个长度为n的顺序表的第i个元素之前插入一个元素,需要后移____个元素。

3. 顺序表中逻辑上相邻的元素的物理位置________。

4. 要从一个顺序表删除一个元素时,被删除元素之后的所有元素均需_______一个位置,移动过程是从_______向_______依次移动每一个元素。

5. 在线性表的顺序存储中,元素之间的逻辑关系是通过_______决定的;在线性表的链接存储中,元素之间的逻辑关系是通过_______决定的。

6. 在双向链表中,每个结点含有两个指针域,一个指向_______结点,另一个指向_______结点。

7. 当对一个线性表经常进行存取操作,而很少进行插入和删除操作时,则采用_______存储结构为宜。

相反,当经常进行的是插入和删除操作时,则采用_______存储结构为宜。

8. 顺序表中逻辑上相邻的元素,物理位置____相邻,单链表中逻辑上相邻的元素,物理位置____相邻。

9. 线性表、栈和队列都是_______结构,可以在线性表的______位置插入和删除元素;对于栈只能在_______位置插入和删除元素;对于队列只能在_______位置插入元素和在_______位置删除元素。10. 根据线性表的链式存储结构中每个结点所含指针的个数,链表可分为_________和_______;而根据指针的联接方式,链表又可分为________和_________。

11. 在单链表中设置头结点的作用是________。

12. 对于一个具有n个结点的单链表,在已知的结点p后插入一个新结点的时间复杂度为______,在给定值为x的结点后插入一个新结点的时间复杂度为_______。

13. 对于一个栈作进栈运算时,应先判别栈是否为_______,作退栈运算时,应先判别栈是否为_______,当栈中元素为m时,作进栈运算时发生上溢,则说明栈的可用最大容量为_______。为了增加内存空间的利用率和减少发生上溢的可能性,由两个栈共享一片连续的内存空间时,应将两栈的_______分别设在这片内存空间的两端,这样只有当_______时才产生上溢。

14. 设有一空栈,现有输入序列1,2,3,4,5,经过push, push, pop, push, pop, push, push后,输出序列是_________。

15. 无论对于顺序存储还是链式存储的栈和队列来说,进行插入或删除运算的时间复杂度均相同为__________。

三、简答题

1. 描述以下三个概念的区别:头指针,头结点,表头结点。

2. 线性表的两种存储结构各有哪些优缺点?

3. 对于线性表的两种存储结构,如果有n个线性表同时并存,而且在处理过程中各表的长度会动态发生变化,线性表的总数也会自动改变,在此情况下,应选用哪一种存储结构?为什么?

4. 对于线性表的两种存储结构,若线性表的总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表中的元素,应选用何种存储结构?试说明理由。

5. 在单循环链表中设置尾指针比设置头指针好吗?为什么?

6. 假定有四个元素A, B, C, D依次进栈,进栈过程中允许出栈,试写出所有可能的出栈序列。

7. 什么是队列的上溢现象?一般有几种解决方法,试简述之。

8. 下述算法的功能是什么?

LinkList *Demo(LinkList *L)

{ // L是无头结点的单链表

LinkList *q,*p;

if(L&&L->next)

{ q=L; L=L->next; p=L;

while (p->next) p=p->next;

p->next=q; q->next=NULL;

}

return (L);

}

四、算法设计题

1. 设计在无头结点的单链表中删除第i个结点的算法。

2. 在单链表上实现线性表的求表长ListLength(L)运算。

3. 设计将带表头的链表逆置算法。

4. 假设有一个带表头结点的链表,表头指针为head,每个结点含三个域:data, next和prior。其中data为整型数域,next和prior均为指针域。现在所有结点已经由next域连接起来,试编一个算法,利用prior域(此域初值为NULL)把所有结点按照其值从小到大的顺序链接起来。

5. 已知线性表的元素按递增顺序排列,并以带头结点的单链表作存储结构。试编写一个删除表中所有值大于min且小于max的元素(若表中存在这样的元素)的算法。

6. 已知线性表的元素是无序的,且以带头结点的单链表作为存储结构。设计一个删除表中所有值小于max但大于min的元素的算法。

7. 假定用一个单循环链表来表示队列(也称为循环队列),该队列只设一个队尾指针,不设队首指针,试编写下列各种运算的算法:

(1)向循环链队列插入一个元素值为x的结点;

(2)从循环链队列中删除一个结点。

8. 设顺序表L是一个递减有序表,试写一算法,将x插入其后仍保持L的有序性。

习题2参考答案

一、单项选择题

1.A 2.A 3.D 4.C 5.D 6.A 7.B 8.B 9.C 10.A 11.D 12.B 13.C 14.B 15.C 16.C 17.B 18.D 19.C 20.A

二、填空题

1.线性 2.n-i+1 3.相邻 4.前移,前,后 5.物理存储位置,链域的指针值6.前趋,后继 7.顺序,链接 8.一定,不一定 9.线性,任何,栈顶,队尾,队头10.单链表,双链表,非循环链表,循环链表

11.使空表和非空表统一;算法处理一致

12.O(1),O(n)

13.栈满,栈空,m,栈底,两个栈的栈顶在栈空间的某一位置相遇

14.2、3 15.O(1)

三、简答题

1.头指针是指向链表中第一个结点(即表头结点)的指针;在表头结点之前附设的结点称为头结点;

表头结点为链表中存储线性表中第一个数据元素的结点。若链表中附设头结点,则不管线性表是否为空表,头指针均不为空,否则表示空表的链表的头指针为空。

2.线性表具有两种存储结构即顺序存储结构和链接存储结构。线性表的顺序存储结构可以直接存取数据元素,方便灵活、效率高,但插入、删除操作时将会引起元素的大量移动,因而降低效率:而在链接存储结构中内存采用动态分配,利用率高,但需增设指示结点之间关系的指针域,存取数据元素不如顺序存储方便,但结点的插入、删除操作较简单。

3.应选用链接存储结构,因为链式存储结构是用一组任意的存储单元依次存储线性表中的各元素,这里存储单元可以是连续的,也可以是不连续的:这种存储结构对于元素的删除或插入运算是不需要移动元素的,只需修改指针即可,所以很容易实现表的容量的扩充。

4.应选用顺序存储结构,因为每个数据元素的存储位置和线性表的起始位置相差一个和数据元素在线性表中的序号成正比的常数。因此,只要确定了其起始位置,线性表中的任一个数据元素都可随机存取,因此,线性表的顺序存储结构是一种随机存取的存储结构,而链表则是一种顺序存取的存储结构。

5.设尾指针比设头指针好。尾指针是指向终端结点的指针,用它来表示单循环链表可以使得查找链表的开始结点和终端结点都很方便,设一带头结点的单循环链表,其尾指针为rear,则开始结点和终端结点的位置分别是rear->next->next 和 rear, 查找时间都是O(1)。若用头指针来表示该链表,则查找终端结点的时间为O(n)。

6.共有14种可能的出栈序列,即为:

ABCD, ABDC,ACBD, ACDB,BACD,ADCB,BADC,BCAD, BCDA,BDCA,CBAD, CBDA,CDBA, DCBA

7.在队列的顺序存储结构中,设队头指针为front,队尾指针为rear,队列的容量(即存储的空间大小)为maxnum。当有元素要加入队列(即入队)时,若rear=maxnum,则会发生队列的上溢现象,此时就不能将该元素加入队列。对于队列,还有一种“假溢出”现象,队列中尚余有足够的空间,

但元素却不能入队,一般是由于队列的存储结构或操作方式的选择不当所致,可以用循环队列解决。

一般地,要解决队列的上溢现象可有以下几种方法:

(1)可建立一个足够大的存储空间以避免溢出,但这样做往往会造成空间使用率低,浪费存储空间。(2)要避免出现“假溢出”现象可用以下方法解决:

第一种:采用移动元素的方法。每当有一个新元素入队,就将队列中已有的元素向队头移动一个位置,假定空余空间足够。

第二种:每当删去一个队头元素,则可依次移动队列中的元素总是使front指针指向队列中的第一个位置。

第三种:采用循环队列方式。将队头、队尾看作是一个首尾相接的循环队列,即用循环数组实现,此时队首仍在队尾之前,作插入和删除运算时仍遵循“先进先出”的原则。

8.该算法的功能是:将开始结点摘下链接到终端结点之后成为新的终端结点,而原来的第二个结点成为新的开始结点,返回新链表的头指针。

四、算法设计题

1.算法思想为:

(1)应判断删除位置的合法性,当i<0或i>n-1时,不允许进行删除操作;

(2)当i=0时,删除第一个结点:

(3)当0

delete(LinkList *q,int i)

{ //在无头结点的单链表中删除第i个结点

LinkList *p,*s;

int j;

if(i<0) printf("Can't delete");

else if(i= =0)

{ s=q; q=q->next; free(s); }

else

{ j=0; s=q;

while((j

{ p=s; s=s->next; j++; }

if (s= =NULL) printf("Cant't delete");

else

{ p->next=s->next; free(s); }

}

}

2.由于在单链表中只给出一个头指针,所以只能用遍历的方法来数单链表中的结点个数了。

算法描述如下:

int ListLength ( LinkList *L )

{ //求带头结点的单链表的表长

int len=0;

ListList *p;

p=L;

while ( p->next!=NULL )

{ p=p->next; len++; }

return (len);

}

3.设单循环链表的头指针为head,类型为LinkList。逆置时需将每一个结点的指针域作以修改,使其原前趋结点成为后继。如要更改q结点的指针域时,设s指向其原前趋结点,p指向其原后继结点,则只需进行q->next=s;操作即可,算法描述如下:

void invert(LinkList *head)

{ //逆置head指针所指向的单循环链表

linklist *p, *q, *s;

q=head; p=head->next;

while (p!=head) //当表不为空时,逐个结点逆置

{ s=q; q=p; p=p->next; q->next=s; }

p->next=q;

}

4.定义类型LinkList如下:

typedef struct node

{ int data;

struct node *next,*prior;

}LinkList;

此题可采用插入排序的方法,设p指向待插入的结点,用q搜索已由prior域链接的有序表找到合适位置将p结点链入。算法描述如下:

insert (LinkList *head)

{ LinkList *p,*s,*q;

p=head->next; //p指向待插入的结点,初始时指向第一个结点

while(p!=NULL)

{ s=head; // s指向q结点的前趋结点

q=head->prior; //q指向由prior域构成的链表中待比较的结点

while((q!=NULL) && (p->data>q->data)) //查找插入结点p的合适插入位置{ s=q; q=q->prior; }

s->prior=p;

p->prior=q; //结点p插入到结点s和结点q之间

p=p->next;

}

}

5.算法描述如下:

delete(LinkList *head, int max, int min)

{ linklist *p, *q;

if (head!=NULL)

{ q=head;

p=head->next;

while((p!=NULL) && (p->data<=min))

{ q=p; p=p->next;}

while((p!=NULL) && (p->datanext;

q->next=p;

}

}

6.算法描述如下:

delete(LinkList *head, int max, int min)

{ LinkList *p,*q;

q=head;

p=head->next;

while (p!=NULL)

if((p->data<=min) || (p->data>=max))

{ q=p;

p=p->next;

}

else

{ q->next=p->next;

free(p);

p=q->next;

}

}

7.本题是对一个循环链队列做插入和删除运算,假设不需要保留被删结点的值和不需要回收结点,算法描述如下:

(1)插入(即入队)算法:

insert(LinkList *rear, elemtype x)

{ //设循环链队列的队尾指针为rear,x为待插入的元素

LinkList *p;

p=(LinkList *)malloc(sizeof(LinkList));

if(rear= =NULL) //如为空队,建立循环链队列的第一个结点

{ rear=p;

rear->next=p; //链接成循环链表

}

else //否则在队尾插入p结点

{ p->next=rear->next;

rear->next=p;

rear=p;

}

}

(2)删除(即出队)算法:

delete(LinkList *rear)

{ //设循环链队列的队尾指针为rear

if (rear= =NULL) //空队

printf("underflow\n");

if(rear->next= =rear) //队中只有一个结点

rear=NULL;

else

rear->next=rear->next->next; //rear->next指向的结点为循环链队列的队头结点

}

8.只要从终端结点开始往前找到第一个比x大(或相等)的结点数据,在这个位置插入就可以了。算法描述如下:

int InsertDecreaseList( SqList *L, elemtype x )

{ int i;

if ( (*L).len>= maxlen)

{ printf(“overflow");

return(0);

}

for ( i=(*L).len ; i>0 && (*L).elem[ i-1 ] < x ; i--)

(*L).elem[ i ]=(*L).elem[ i-1 ] ; // 比较并移动元素

(*L).elem[ i ] =x;

(*L).len++;

return(1);

}

组成原理复习题目

填空题: 1.计算机的硬件包括(运算器)、(存储器)、(控制器)、适配器、输入输出设备。 2.按IEEE754标准,一个浮点数由(符号位S)、(阶码E)、(尾数M)三个域组成。 3.计算机采用多级存储体系结构,即(cache)、(主存)和(外存)。 4.形成指令地址的方式,称为(指令寻址方式)。有(顺序寻址)和(跳跃寻址)两种,由指令计数器来跟踪。 5.CPU是计算机的中央处理器部件,具有(指令控制)、(操作控制)、时间控制、(数据加工)的基本功能。 6.为了解决(多个)主设备同时竞争总线(控制权)的问题,必须具有总线(仲裁部件)。 7.磁表面存储器由于存储容量大,(位成本低),在计算机系统中作为(辅助)大容量存储器使用,用以存放系统软件、大型文件、数据库等大量程序与数据信息。 (2) 1.早期将(运算器)和(控制器)合在一起称为Cpu(中央处理器)。 2.数的真值变成机器码时有四种表示方法:原码表示法,(反码表示法),(补码表示法),(移码表示法)。 3.Cache是一种(高速缓冲)存储器,是为了解决CPU和主存之间(速度)不匹配而采用的一项重要的(硬件)技术 4.形成操作数地址的方式,称为(数据寻址方式)。操作数可放在专用寄存器、(通用寄存器)、内存和(指令)中。 5.CPU中至少要有如下六类寄存器:(指令寄存器)、(程序计数器)、(地址寄存器)、数据缓冲器、通用寄存器、状态条件寄存器。 6.接口部件在它动态联结的两个功能部件间起着(缓冲器)和(转换器)的作用,以便实现彼此之间的(信息传送)。 7.外围设备的功能是在计算机和(其他机器)之间,以及计算机与(用户)之间提供联系。 (3) 1.(存储)程序并按(地址)顺序执行是冯·诺依曼型计算机的(工作原理)。 2.移码主要用于表示浮点数的(阶码E),以利于比较两个指数的(大小)和(对阶)操作。 3.存储器的技术指标有(存储容量)、(存取时间)、(存储周期)、存储器带宽。 4.RISC指令系统的最大特点是:①(指令条数少);②指令长度固定,指令格式和寻址方式种类少;③只有取数/存数指令访问(存储器),其余指令的操作均在(寄存器)之间进行 5.互斥的微操作,是指不能(同时)或不能在(同一个节拍内)并行执行的微操作。可以(编码)。 6.当代流行的标准总线内部结构包含:①(数据传送总线)(由地址线、数据线、控制线组成);②(仲裁总线);③中断和同步总线;④(公用线)(电源、地线、时钟、复位灯信号线)。 7.中断系统是计算机实现中断功能的(软硬件)总称。一般在CPU中设置中断机构,在外设接口中设置中断控制器,在软件上设置相应的(中断服务程序)。 选择题

计算机组成原理考试题库

计算机原理考试题库 一、选择题 1、电子计算机的算术/逻辑单元、控制单元及主存储器合称为C。 A、CPU B、ALU C、主机 D、UP 2、用以指定待执行指令所在地址的是C。 A、指令寄存器 B、数据计数器 C、程序计数器 D、累加器 3、完整的计算机系统应包括D。 A、运算器、存储器、控制器 B、外部设备和主机 C、主机和实用程序 D、配套的硬件设备和软件系统 4、计算机存储数据的基本单位为A。 A、比特Bit B、字节Byte C、字组Word D、以上都不对 5、计算机中有关ALU的描述,D是正确的。 A、只做算术运算,不做逻辑运算 B、只做加法 C、能存放运算结果 D、以上答案都不对 6、计算机系统中的存储系统是指D。 A、RAM存储器 B、ROM存储器 C、主存 D、主存和辅存 7、下列语句中是C正确的。 A、1KB=1024 1024B B、1KB=1024MB C、1MB=1024 1024B D、1MB=1024B 8、用以指定待执行指令所在地址的是C。 A、指令寄存器 B、数据计数器 C、程序计数器 D、累加器 9、计算机系统中的存储系统是指D。 A、RAM存储器 B、ROM存储器 C、主存 D、主存和辅存 10、电子计算机的算术/逻辑单元、控制单元及主存储器合称为C。 A、CPU B、ALU C、主机 D、UP 11、计算机中有关ALU的描述,D是正确的。 A、只做算术运算,不做逻辑运算 B、只做加法 C、能存放运算结果 D、以上答案都不对 12、下列D属于应用软件。 A、操作系统 B、编译程序 C、连接程序 D、文本处理 13、下列语句中是C正确的。 A、1KB=1024 1024B B、1KB=1024MB C、1MB=1024 1024B D、1MB=1024B 14、计算机系统中的存储系统是指D。 A、RAM存储器 B、ROM存储器 C、主存 D、主存和辅存 15、下列D属于应用软件。 A、操作系统 B、编译程序 C、连接程序 D、文本处理 16、存放欲执行指令的寄存器是D。 A、MAE B、PC C、MDR D、IR 17、用以指定待执行指令所在地址的是C。

第二章线性表答案

第2章线性表 一选择题 1.下述哪一条是顺序存储结构的优点?( A ) A.存储密度大 B.插入运算方便 C.删除运算方 便 D.可方便地用于各种逻辑结构的存储表示 2.下面关于线性表的叙述中,错误的是哪一个?( B )A.线性表采用顺序存储,必须占用一片连续的存储单元。B.线性表采用顺序存储,便于进行插入和删除操作。 C.线性表采用链接存储,不必占用一片连续的存储单元。D.线性表采用链接存储,便于插入和删除操作。 3.线性表是具有n个( C )的有限序列(n>0)。 A.表元素 B.字符 C.数据元 素 D.数据项 E.信息项 4.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用( A )存储方式最节省时间。 AHA12GAGGAGAGGAFFFFAFAF

A.顺序表 B.双链表 C.带头结点的双循环链表 D.单循环链表 5.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( D )存储方式最节省运算时间。 A.单链表 B.仅有头指针的单循环链 表 C.双链表D.仅有尾指针的单循环链表 6.设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用( D )最节省时间。 A. 单链表 B.单循环链表 C. 带尾指针的单循环链表 D.带头结点的双循环链表 7.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。则采用( D )存储方式最节省运算时间。 AHA12GAGGAGAGGAFFFFAFAF

A.单链表 B.双链表 C.单循环链 表 D.带头结点的双循环链表 8. 静态链表中指针表示的是( BC ). A.内存地址 B.数组下标 C.下一元素地址D.左、右孩子地址 9. 链表不具有的特点是( C ) A.插入、删除不需要移动元素 B.可随机访问任一元素C.不必事先估计存储空间 D.所需空间与线性长度成正比 10. 下面的叙述不正确的是( BC ) A.线性表在链式存储时,查找第i个元素的时间同i的值成正比 AHA12GAGGAGAGGAFFFFAFAF

数据结构线性表答案

第一章线性表 2.1 描述以下三个概念的区别:头指针,头结点,首元结点(第一个元素结点)。 解:头指针是指向链表中第一个结点的指针。首元结点是指链表中存储第一个数据元素的结点。头结点是在首元结点之前附设的一个结点,该结点不存储数据元素,其指针域指向首元结点,其作用主要是为了方便对链表的操作。它可以对空表、非空表以及首元结点的操作进行统一处理。 2.2 填空题。 解:(1) 在顺序表中插入或删除一个元素,需要平均移动表中一半元素,具体移动的元素个数与元素在表中的位置有关。 (2) 顺序表中逻辑上相邻的元素的物理位置必定紧邻。单链表中逻辑上相邻的元素的物理位置不一定紧邻。 (3) 在单链表中,除了首元结点外,任一结点的存储位置由其前驱结点的链域的值指示。 (4) 在单链表中设置头结点的作用是插入和删除首元结点时不用进行特殊处理。 2.3 在什么情况下用顺序表比链表好?

解:当线性表的数据元素在物理位置上是连续存储的时候,用顺序表比用链表好,其特点是可以进行随机存取。 2.4 对以下单链表分别执行下列各程序段,并画出结果示意图。 解:

2.5 画出执行下列各行语句后各指针及链表的示意图。 L=(LinkList)malloc(sizeof(LNode)); P=L; for(i=1;i<=4;i++){ P->next=(LinkList)malloc(sizeof(LNode)); P=P->next; P->data=i*2-1; } P->next=NULL; for(i=4;i>=1;i--) Ins_LinkList(L,i+1,i*2); for(i=1;i<=3;i++) Del_LinkList(L,i); 解: 2.6 已知L是无表头结点的单链表,且P结点既不是

同济大学线性代数教案第一章线性方程组与矩阵

线性代数教学教案 第一章线性方程组与矩阵 授课序号01 1112121 2 n n m m mn a a a a a a ?? ?? ??? ,有时为了强调矩阵的行数和列数,也记为

n a ???. 212 n n n nn a a a ? ??? . 1112 00n n nn a a a a ?? ?? ? ? ?与上三角矩阵200 n nn a ? ??? . 000 0n a ??? ??? ,或记为100 1? ???? . 负矩阵的定义:对于矩阵()ij m n a ?=A ,称矩阵21 22 n m m m mn mn b a b a b ?? +++? ,

a b+

21 2 n m m mn a a a ????,转置矩阵212.m n n nm a ? ??? 矩阵的转置满足的运算规律(这里k 为常数,A 与B 为同型矩阵)阶方阵()ij a =A 如果满足222n n m mn n a x +21 2 n m m mn a a a ????称为该线性方程组的系数矩阵n x ???,m b = ? ??? β,有:

2221122221 21122n n n m m mn n m m mn n a a a x a x a x a x ??? ? =??? ???? ? ++ +????? . 再根据矩阵相等的定义,该线性方程组可以用矩阵形式来表示:=Ax β.

授课序号02 21 2 t s s st ????A A A ,21 2 t s s st ? = ? ??? B B B B ,的行数相同、列数相同,则有 21 22 t s s s st st ?? ±±±? B A B A B . 111221 2 t s s st ? ? ??? A A A A A ,都有21 2 t s s st k k ? ??? A A A .

计算机组成原理试题及答案

二、填空题 1 字符信息是符号数据,属于处理(非数值)领域的问题,国际上采用的字符系统是七单位的(ASCII)码。P23 2 按IEEE754标准,一个32位浮点数由符号位S(1位)、阶码E(8位)、尾数M(23位)三个域组成。其中阶码E的值等于指数的真值(e)加上一个固定的偏移值(127)。P17 3 双端口存储器和多模块交叉存储器属于并行存储器结构,其中前者采用(空间)并行技术,后者采用(时间)并行技术。P86 4 衡量总线性能的重要指标是(总线带宽),它定义为总线本身所能达到的最高传输速率,单位是(MB/s)。P185 5 在计算机术语中,将ALU控制器和()存储器合在一起称为()。 6 数的真值变成机器码可采用原码表示法,反码表示法,(补码)表示法,(移码)表示法。P19-P21 7 广泛使用的(SRAM)和(DRAM)都是半导体随机读写存储器。前者的速度比后者快,但集成度不如后者高。P67 8 反映主存速度指标的三个术语是存取时间、(存储周期)和(存储器带宽)。P67 9 形成指令地址的方法称为指令寻址,通常是(顺序)寻址,遇到转移指令时(跳跃)寻址。P112 10 CPU从(主存中)取出一条指令并执行这条指令的时间和称为(指令周期)。 11 定点32位字长的字,采用2的补码形式表示时,一个字所能表示

的整数范围是(-2的31次方到2的31次方减1 )。P20 12 IEEE754标准规定的64位浮点数格式中,符号位为1位,阶码为11位,尾数为52位,则它能表示的最大规格化正数为(+[1+(1-2 )]×2 )。 13 浮点加、减法运算的步骤是(0操作处理)、(比较阶码大小并完成对阶)、(尾数进行加或减运算)、(结果规格化并进行舍入处理)、(溢出处理)。P54 14 某计算机字长32位,其存储容量为64MB,若按字编址,它的存储系统的地址线至少需要(14)条。64×1024KB=2048KB(寻址范32围)=2048×8(化为字的形式)=214 15一个组相联映射的Cache,有128块,每组4块,主存共有16384块,每块64个字,则主存地址共(20)位,其中主存字块标记应为(9)位,组地址应为(5)位,Cache地址共(13)位。 16 CPU存取出一条指令并执行该指令的时间叫(指令周期),它通常包含若干个(CPU周期),而后者又包含若干个(时钟周期)。P131 17 计算机系统的层次结构从下至上可分为五级,即微程序设计级(或逻辑电路级)、一般机器级、操作系统级、(汇编语言)级、(高级语言)级。P13 18十进制数在计算机内有两种表示形式:(字符串)形式和(压缩的十进制数串)形式。前者主要用在非数值计算的应用领域,后者用于直接完成十进制数的算术运算。P19 19一个定点数由符号位和数值域两部分组成。按小数点位置不同,

第2章线性表习题解答

第2章线性表习题解答

第2章习题 (2) 第2章习题 2.1若将顺序表中记录其长度的分量listlen改为指向最后一个元素的位置last,在实现各基本运算时需要做那些修改? 【解】 //用线性表最后一个元素的下标last代替listLen实现顺序表 #define MAXLEN 100 typedef int elementType; typedef struct sllLast { elementType data[MAXLEN]; int last; }seqList; //初始化 void initialList(seqList &S)

{ https://www.doczj.com/doc/4117120655.html,st=-1; } //求表长度 int listLength(seqList S) { return https://www.doczj.com/doc/4117120655.html,st+1; } //按序号取元素 bool getElement(seqList S,int i,elementType &x) { if(i<1 || i>https://www.doczj.com/doc/4117120655.html,st+1) //i为元素编号,有效范围在https://www.doczj.com/doc/4117120655.html,st+1之间 return false; else { x=S.data[i-1];

return true; } } //查找元素x,成功:返回元素编号;失败:返回0 int listLocate(seqList S,elementType x) { int i; for(i=0;i<=https://www.doczj.com/doc/4117120655.html,st;i++) { if(S.data[i]==x) return i+1; //找到,转换为元素编号输出 } return 0; } //插入元素 int listInsert(seqList &S,elementType x, int i)

计算机组成原理试题库集及答案

计算机组成原理试题库集及答案

第一章计算机系统概论 1. 什么是计算机系统、计算机硬件和计算机软件?硬件和软件哪个更重要? 解:P3 计算机系统:由计算机硬件系统和软件系统组成的综合体。 计算机硬件:指计算机中的电子线路和物理装置。 计算机软件:计算机运行所需的程序及相关资料。 硬件和软件在计算机系统中相互依存,缺一不可,因此同样重要。 5. 冯?诺依曼计算机的特点是什么? 解:冯?诺依曼计算机的特点是:P8 计算机由运算器、控制器、存储器、输入设备、输出设备五大部件组成; 指令和数据以同同等地位存放于存储器内,并可以按地址访问; 指令和数据均用二进制表示; 指令由操作码、地址码两大部分组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置; 指令在存储器中顺序存放,通常自动顺序取出执行; 机器以运算器为中心(原始冯?诺依曼机)。 7. 解释下列概念: 主机、CPU、主存、存储单元、存储元件、存储基元、存储元、存储字、存储字长、存储容量、机器字长、指令字长。 解:P9-10 主机:是计算机硬件的主体部分,由CPU和主存储器MM合成为主机。 CPU:中央处理器,是计算机硬件的核心部件,由运算器和控制器组成;(早期的运算器和控制器不在同一芯片上,现在的CPU内除含有运算器和控制器外还集成了CACHE)。 主存:计算机中存放正在运行的程序和数据的存储器,为计算机的主要工作存储器,可随机存取;由存储体、各种逻辑部件及控制电路组成。 存储单元:可存放一个机器字并具有特定存储地址的存储单位。 存储元件:存储一位二进制信息的物理元件,是存储器中最小的存储单位,又叫存储基元或存储元,不能单独存取。 存储字:一个存储单元所存二进制代码的逻辑单位。 存储字长:一个存储单元所存二进制代码的位数。 存储容量:存储器中可存二进制代码的总量;(通常主、辅存容量分开描述)。 机器字长:指CPU一次能处理的二进制数据的位数,通常与CPU的寄存器位数有关。 指令字长:一条指令的二进制代码位数。 8. 解释下列英文缩写的中文含义:

计算机组成原理试题库(含答案)

计算机组成原理试题 一、单项选择题(从下列各题四个备选答案中选出一个正确答案,并将其代号写在题干前面的括号内。) 1.为了缩短指令中某个地址段的位数,有效的方法是采取(C)。 A、立即寻址 B、变址寻址 C、间接寻址 D、寄存器寻址 2.某计算机字长是16位它的存储容量是64KB,按字编址,它们寻址范围是(C)。 A.64K B.32KB C.32K D.16KB 3.某一RAM芯片其容量为512*8位,除电源和接地端外该芯片引线的最少数目是(C)。 A.21 B.17 C.19 D.20 4.指令系统中采用不同寻址方式的目的主要是(C)。 A.实现存储程序和程序控制 B.可以直接访问外存 C.缩短指令长度,扩大寻址空间,提高编程灵活性 D.提供扩展操作码的可能并降低指令译码难度

5.寄存器间接寻址方式中,操作数处在(B)。 A.通用寄存器 B.贮存单元 C.程序计数器 D.堆栈 6.RISC是(A)的简称。 A.精简指令系统计算机 B.大规模集成电路 C.复杂指令计算机 D.超大规模集成电路 7.CPU响应中断的时间是_C_____。 A.中断源提出请求;B.取指周期结束;C.执行周期结束;D.间址周期结束。8.常用的虚拟存储器寻址系统由____A__两级存储器组成。 A.主存-辅存;B.Cache-主存;C.Cache-辅存;D.主存—硬盘。 9.DMA访问主存时,让CPU处于等待状态,等DMA的一批数据访问结束后,CPU再恢复工作,这种情况称作__A____。 A.停止CPU访问主存;B.周期挪用;C.DMA与CPU交替访问;D.DMA。10.浮点数的表示范围和精度取决于__C____。 A.阶码的位数和尾数的机器数形式;B.阶码的机器数形式和尾数的位数;

(完整版)数据结构第二章线性表1答案

(A )需经常修改L 中的结点值 (E )需不断对L 进行删除插入 第二部分线性表 、选择题 1 ?关于顺序存储的叙述中,哪一条是不正确的 (B ) A. 存储密度大 B. 逻辑上相邻的结点物理上不必邻接 C. 可以通过计算直接确定第 i 个结点的位置 D. 插入、删除操作不方便 2.长度为n 的单链表连接在长度为 m 的单链表后的算法的时间复杂度为 (C ) A 0( n ) B 0(1) C 0(m ) D 0(m+n ) 3 .在n 个结点的顺序表中,算法的时间复杂度是 0(1)的操作是:(A ) A 访问第i 个结点(1<=i<=n )和求第i 个结点的直接前趋(2<=i<=n ) B 在第i 个结点(1<=i<=n )后插入一个新结点 C 删除第i 个结点(1<=i<=n ) D 将n 个结点从小到大排序 4.一个向量第一个兀素的存储地址是 100 ,每个兀素的长度为 2 ,则第5 个兀素的地址是 (B ) ( A ) 110 ( B ) 108 (C ) 100 ( D ) 120 5 .已知一个顺序存储的线性表, 设每个结点需要占 m 个存储单元,若第一个结点的地址为 da , 则第i 个结点的地址为:(A ) 7 .链表是一种采用( B )存储结构存储的线性表。 (A )顺序 (B )链式 (C )星式 (D )网状 8 .线性表若采用链式存储结构时,要求内存中可用存储单兀的地址: (D ) (A )必须是连续的 (B )部分地址必须是连续的 (C )一定是不连续的 (D )连续或不连续都可以 9 .线性表L 在_ ( B )情况下适用于使用链式结构实现。 A ) da+(i-1)*m B ) da+i*m 6.在具有n 个结点的单链表中,实现( A )遍历链表和求链表的第 i 个结点 C )删除开始结点 C ) da-i*m D ) da+(i+1)*m A )的操作,其算法的时间复杂度为 0(n )。 B )在地址为p 的结点之后插入一个结点 D ) 删除地址为p 的结点的后继结点

数据结构线性表的主要程序代码

数据结构顺序表的主要代码(LIZHULIN) 1./***有头结点的单链表的初始化、建立(表头插入、表尾插入)、求长度、插入、删除、输出***/ /***********单链表的初始化、建立、输出*****************/ #include #include typedef struct Lnode { /*定义线性表的单链表存储结构*/ int data; struct Lnode *next; }LinkList; /****************单链表的初始化*************************/ Initlist(LinkList *L) { /*动态申请存储空间*/ L = (LinkList *)malloc(sizeof(struct Lnode));/*建立头结点*/ L->next = NULL; } /*************建立一个带头结点的单链表,在表尾插入***************/ Create_L(LinkList *L,int n) { LinkList *p,*q; int i; Initlist(L); /*单链表初始化*/ q=L; printf("input the value\n"); for(i = n;i>0;--i) { p = (LinkList*)malloc(sizeof(struct Lnode)); scanf("%d",&p->data); /*输入元素值*/ q->next = p; p->next = NULL; q=p; /*插入到表尾*/ } } /* Create_L */ /*************建立一个带头结点的单链表,在表头插入************** Create_L(LinkList *L,int n) { LinkList *p; int i;

组成原理试题库 有答案版

《计算机组成原理》试题库 选择题 1.一张3.5英寸软盘的存储容量为______,每个扇区存储的固 定数据是______。 A.1.44MB,512B B.1MB,1024BC.2MB,256BD.1.44MB,512KB 2.机器数______中,零的表示形式是唯一的。 A.原码 B.补码 C.校验码 D.反码 3.在计算机中,普遍采用的字符编码是______。 A.BCD码 B.16进制 C.格雷码 D.ASCⅡ码 4.______表示法主要用于表示浮点数中的阶码。 A.原码 B.补码 C.反码 D.移码 5.程序控制类指令的功能是______。 A.改变程序执行的顺序 B.进行主存和CPU之间的数据传送 C.进行CPU和I/O设备之间的数据传送 D.进行算术运算和 逻辑运算 6.EPROM是指______。 A.读写存储器 B.只读存储器 C.光擦除可编程的只读存储器 D.可编程的只读存储器 7.Intel80486是32位微处理器,Pentium是______位微处理器。 A.16 B.32 C.48 D.64 8.CPU主要包括______。

A.控制器 B.控制器、运算器、cache C.运算器和主存 D.控制器、ALU和主存 9.下列数中最大的数是______。 2B.(227)8 C.(98)16D.(152)10 10.以下四种类型指令中,执行时间最长的是______。 A.寄存器—存储器型 B.寄存器—寄存器型 C.存储器-存储器型 D.程序控制指令 11.下列______属于应用软件。 A.操作系统 B.编译系统 C.连接程序 D.文本处理 12.在主存和CPU之间增加cache存储器的目的是______。 A.增加内存容量 B.解决CPU和主存之间的速度匹配问题 C.提高内存可靠性 D.增加内存容量,同时加快存取速度 13.信息只用一条传输线,且采用脉冲传输的方式称为 ______。 A.串行传输 B.并行传输 C.并串行传输 D.分时传输 14.扩展操作码是_____。 A、操作码字段外辅助操作字段的代码 B、指令格式中不同字段设置的操作码 C、操作码的长度随地址数的减少而增加 D、指令系统新增加的操作码 15.下述I/O控制方式中,主要由程序实现的是______。 A.PPU(外围处理机)方式 B.中断方式 C.DMA方式 D.通道方式

第二章线性表习题及答案

第二章线性表习题及答案 一、基础知识题 2.1 试描述头指针、头结点、开始结点的区别、并说明头指针和头结点的作用。 答:始结点是指链表中的第一个结点,也就是没有直接前趋的那个结点。 链表的头指针是一指向链表开始结点的指针(没有头结点时),单链表由头指针唯一确定,因此单链表可以用头指针的名字来命名。 头结点是我们人为地在链表的开始结点之前附加的一个结点。有了头结点之后,头指针指向头结点,不论链表否为空,头指针总是非空。而且头指针的设置使得对链表的第一个位置上的操作与在表其他位置上的操作一致(都是在某一结点之后)。 2.2 何时选用顺序表、何时选用链表作为线性表的存储结构为宜? 答:在实际应用中,应根据具体问题的要求和性质来选择顺序表或链表作为线性表的存储结构,通常有以下几方面的考虑: 1.基于空间的考虑。当要求存储的线性表长度变化不大,易于事先确定其大小时,为了节约存储空间,宜采用顺序表;反之,当线性表长度变化大,难以估计其存储规模时,采用动态链表作为存储结构为好。 2.基于时间的考虑。若线性表的操作主要是进行查找,很少做插入和删除操作时,采用顺序表做存储结构为宜;反之,若需要对线性表进行频繁地插入或删除等的操作时,宜采用链表做存储结构。并且,若链表的插入和删除主要发生在表的首尾两端,则采用尾指针表示的单循环链表为宜。 2.3 在顺序表中插入和删除一个结点需平均移动多少个结点?具体的移动次数取决于哪两个因素? 答:在等概率情况下,顺序表中插入一个结点需平均移动n/2个结点。删除一个结点需平均移动(n-1)/2个结点。具体的移动次数取决于顺序表的长度n以及需插入或删除的位置i。i 越接近n则所需移动的结点数越少。 2.4 为什么在单循环链表中设置尾指针比设置头指针更好? 答:尾指针是指向终端结点的指针,用它来表示单循环链表可以使得查找链表的开始结点和终端结点都很方便,设一带头结点的单循环链表,其尾指针为rear,则开始结点和终端结点的位置分别是rear->next->next 和rear, 查找时间都是O(1)。 若用头指针来表示该链表,则查找终端结点的时间为O(n)。 2.5 在单链表、双链表和单循环链表中,若仅知道指针p指向某结点,不知道头指针,能否将结点*p从相应的链表中删去?若可以,其时间复杂度各为多少? 答:我们分别讨论三种链表的情况。 1. 单链表。当我们知道指针p指向某结点时,能够根据该指针找到其直接后继,但是由于不知道其头指针,所以无法访问到p指针指向的结点的直接前趋。因此无法删去该结点。 2. 双链表。由于这样的链表提供双向链接,因此根据已知结点可以查找到其直接前趋和直接后继,从而可以删除该结点。其时间复杂度为O(1)。 3. 单循环链表。根据已知结点位置,我们可以直接得到其后相邻的结点位置(直接后继),又因为是循环链表,所以我们可以通过查找,得到p结点的直接前趋。因此可以删去p所指结点。其时间复杂度应为O(n)。 2.6 下述算法的功能是什么? LinkList Demo(LinkList L){ // L 是无头结点单链表 ListNode *Q,*P; if(L&&L->next){ Q=L;L=L->next;P=L;

数据结构 线性表 课后答案

第2章线性表 1.选择题 (1)顺序表中第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是()。 A.110 B.108 C.100 D.120 答案:B 解释:顺序表中的数据连续存储,所以第5个元素的地址为:100+2*4=108。 (2)在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是()。 A.访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n) B.在第i个结点后插入一个新结点(1≤i≤n) C.删除第i个结点(1≤i≤n) D.将n个结点从小到大排序 答案:A 解释:在顺序表中插入一个结点的时间复杂度都是O(n2),排序的时间复杂度为O(n2)或O(nlog2n)。顺序表是一种随机存取结构,访问第i个结点和求第i个结点的直接前驱都可以直接通过数组的下标直接定位,时间复杂度是O(1)。 (3)向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动的元素个数为()。 A.8 B.63.5 C.63 D.7 答案:B 解释:平均要移动的元素个数为:n/2。 (4)链接存储的存储结构所占存储空间()。 A.分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针 B.只有一部分,存放结点值 C.只有一部分,存储表示结点间关系的指针 D.分两部分,一部分存放结点值,另一部分存放结点所占单元数 答案:A (5)线性表若采用链式存储结构时,要求内存中可用存储单元的地址()。 A.必须是连续的B.部分地址必须是连续的 C.一定是不连续的D.连续或不连续都可以 答案:D (6)线性表L在()情况下适用于使用链式结构实现。 A.需经常修改L中的结点值B.需不断对L进行删除插入 C.L中含有大量的结点D.L中结点结构复杂 答案:B

计算机组成原理习题及答案54686word版本

计算机组成原理习题及答案54686

概论 一、选择题: 1.1946年研制成功的第一台电子数字计算机称为_B_。A.EDVAC B.ENIAC C.EVNAC D.EINAC 2.完整的计算机系统应包括__D_____.A..运算器、存储器、控制器 B.外部设备和主机 C.主机和存储器 D.配套的硬件和软件设备 3.计算机系统中的存储器系统是指__D____.A.RAM存储器 B.ROM存储器 C.内存储器 D.内存储器和外存储器 4.至今为止,计算机中的所有信息仍以二进制方式表示的理由是_C_____. A..节约元件 B.运算速度快 C.物理器件性能所致 D.信息处理方便 5.计算机硬件能直接执行的只有_B___. A.符号语言 B.机器语言 C.机器语言和汇编语言 D.汇编语言 二、填空题: 1.计算机的硬件包括__运算器_._控制器_._存储器_._输入设备_._输出设备__. 2.在计算机术语中,将运算器和控制器合在一起称为_CPU__,而将_CPU__和存储器合在一起称为__主机__. 3.计算机的软件一般分为两大类:一类叫_系统__软件,一类叫_应用__软件,其中,数据库管理系统属于_系统_软件,计算机辅助教学软件属于__应用___软件. 4.计算机系统中的存储器分为_内存储器_和_外存储器_.在CPU执行程序时,必须将指令存放在_内存储器__中. 5.输入、输出设备以及辅助存储器统称为_外部设备___. 6.计算机存储器的最小单位为__位___,1KB容量的存储器能够存储_1024*8__个这样的单位. 7.在计算机系统中,多个系统部件之间信息传送的公共通路称为__总线___,就其所传送的信息的性质而言,在公共通路上传送的信息包括_数据__、__地址__和__控制___信息. 三、衡量计算机性能的基本指标有哪些? 答:1.基本字长 2.数据通路宽度 3.运算速度:包括CPU时钟频率和数据传输率 4.存储器的容量:包括主存储器的容量和外存储器的容量 5.外围设备及其性能 6.系统软件配置运算方法和运算器 一、选择题: 1.在机器数中,__B____的零的表示形式是唯一的. A.原码 B.补码 C.反码 D.原码和反码 3.若某数X的真值为-0.1010,在计算机中该数表示为1.0110,则该数所用的编码方法__B__码. A.原 B.补 C.反 D.移 4.运算器虽有许多部件组成,但核心部分是__B____. A.数据总路线 B.算术逻辑运算单元 C.多路开关 D.通用寄存器 5.在定点二进制运算器中,减法运算一般通过__D_____来实现. A.原码运算的二进制减法器 B.补码运算的二进制减法器 C.补码运算的十进制加法器 D.补码运算的二进制加法器

计算机组成原理题库

、下列描述中正确的是 A控制器能理解、解释并执行所有的指令及存储结果 B一台计算机包括输入、输出、控制、存储及算术逻辑运算五个部件 C所有的数据运算都在CPU的控制器中完成 D以上答案都正确 4、有一些计算机将一部分软件永恒的存于只读存储器中,称之为 A硬件 B软件 C固件 D辅助存储器 E以上都不对 5、输入、输出装置以及外接的辅助存储器称为() A操作系统 B存储器 C主机 D外围设备 7、完整的计算机系统应包括() A运算器、存储器、控制器 B外部设备和主机 C主机和实用程序 D配套的硬件设备和软件系统 8、计算机系统中的存储系统是指() A .RAM存储器存储器 C.主存 D.主存和辅存 19、计算机的算术逻辑单元和控制单元合称为() A. ALU B. UP C. CPU D. CAD 35、储存单元是指() A.存放一个字节的所有存储集合 B.存放一个储存字的所有存储集合 C.存放一个二进制信息的存储集合 D.存放一条指令的存储集合 36、存储字是指() A.存放在一个存储单元中的二进制代码组合 B.存放在一个存储单元中的二进制代码位数 C.存储单元的集合 D.机器指令 39、存放执行执行指令的寄存器是() 有些计算机将一部分软件永恒地存于只读存储器中,称为(A) 15.计算机将存储,算逻辑运算和控制三个部分合称为(A),再加上(B)和(C)就组成了计算机硬件系统。 目前被广泛使用的计算机是()

A.数字计算机 B.模拟计算机 C.数字模拟混合式计算机 D.特殊用途计算机 9.个人计算机(PC)属于()类计算机。 A.大型计算机 B.小型机 C.微型计算机 D.超级计算机、操作系统最早出现在第(A)代计算机上。 计算机使用总线结构便于增减外设,同时() A.减少了信息传输量 B.提高了信息的传输速度 C.减少了信息传输线的条数 2.计算机使用总线结构的主要优点是便于实现积木化,缺点是() A.地址信息,数据信息和控制信息不能同时出现 B.地址信息与数据信息不能同时出现 C.两种信息源的代码在总线中不能同时传送 5.在三中集合式总线控制中,()方式响应时间最快。 A.链式查询 B.计数器定时查询 C.独立请求 8.三种集合式总线控制中,()方式对电路故障最敏感的 A.链式查询 B.计数器定时查询 C.独立请求 13.在独立请求方式下,若有N个设备,则() A.有一个总线请求信号和一个总线响应信号 B.有N个总线请求信号和N个总线响应信号 C.有一个总线请求信号和N个总线响应信号 14.在链式查询方式下,若有N个设备,则() A.有N条总线请求线 B.无法确定有几条总线请求线 C.只有一条总线请求线

第二章_线性表(参考答案)

第二章线性表 一、填空题 1、数据逻辑结构包括线性结构、树型结构、图型结构这三种类型,树形结构和图形结构合称为非线性结构。 2、在线性结构中,第一个结点没有前驱结点,其余每个结点有且只有个前驱结点,最后一个结点没有后续结点,其余每个结点有且只有一个后续结点。 3、在顺序表中插入或删除一个元素,需要平均移动一半元素,具体移动的元素个数与插入或删除的位置有关。 4、在顺序表中,逻辑上相邻的元素,其物理位置一定相邻。在单链表中,逻辑上相邻的元素,其物理位置不一定相邻。 5、在带头结点的非空单链表中,头结点的存储位置由头指针指示,首元素结点的存储位置由头结点的next域指示,除首元素结点外,其它任一元素结点的存储位置由其直接前趋结点的next域指示。 6、阅读下列算法,并补充所缺内容。 void purge_linkst( ListNode *& la ) { // 从头指针为 la 的有序链表中删除所有值相同的多余元素,并释放被删结点空间ListNode *p,*q; if(la==NULL) return; q=la; p = la->link; while (p) { if (p && ___(1)p->data!=q->data___) {q=p; p = p->link;} else { q->link= ___(2)p->link___; delete(p); p=___(3)q->link___; } }//while }// purge_linkst 二、选择题 1、在数据结构中,从逻辑上可以把数据结构分成 C。 A、动态结构和静态结构 B、紧凑结构和非紧凑结构 C、线性结构和非线性结构 D、内部结构和外部结构 2、线性表的逻辑顺序与存储顺序总是一致的,这种说法 B。 A、正确 B、不正确 3、线性表若采用链式存储结构时,要求内存中可用存储单元的地址D。 A、必须是连续的 B、部分地址必须是连续的 C、一定是不连续的 D、连续或不连续都可以 4、在以下的述叙中,正确的是B。 A、线性表的线性存储结构优于链表存储结构 B、二维数组是其数据元素为线性表的线性表 C、栈的操作是先进先出 D、队列的操作方式是先进后出 三、综合题 1、已知L是无表头结点的单链表,且P结点既不是首元结点,也不是尾元结点,试从下列提供的答案中选择合适的语句序列。 A、在P结点后插入S结点的语句序列是((4)、(1)); B、在P结点前插入S结点的语句序列是((7)、(11)、(8)、(4)、(1)); C、在表首插入S结点的语句序列是((5)、(12));

计算机组成原理题库

综合题 1. 设存储器容量为32字,分为M0-M3四个模块,每个模块存储8个字,地址分配方案分别如下图中图(a)和图(b)所示。 (1)(a)和(b)分别采用什么方式进行存储器地址编址? (2)设存储周期T=200ns,数据总线宽度为64位,总线传送周期τ=50ns。问(a)和(b)两种方式下所对应的存储器带宽分别是多少(以Mb/s为单位)? 2.假设某机器有80条指令,平均每条指令由4条微指令组成,其中有一条取指微指令是所有指令公用的,已知微指令长度为32位,请估算控制存储器的容量是多少字节? 3. (1)用16K×8位的SRAM芯片形成一个32K×16位的RAM区域,共需SRAM芯片多少片? (2)设CPU地址总线为A15~A0,数据总线为D15~D0,控制信号为R/W(读/写)、MREQ(允许访存)。SRAM芯片的控制信号有CS和WE。要求这32K×16位RAM 区域的起始地址为8000H,请画出RAM与CPU的连接逻辑框图。

*4 CPU执行一段程序时,Cache完成存取的次数为3800次,主存完成存取的次数为200次,已知Cache存取周期为50ns,主存为250ns, 求(1)Cache命中率。(2)平均访问时间(3)Cache/主存系统的效率。 5.已知某机采用微程序控制方式,其控制存储器容量为512*48(位)。微程序可在整个存储器中实现转移,可控制微程序转移的条件共4个,微指令采用水平型格式,后继微指令地址采用断定方式,如下图所示。 (1)微指令中的三个字段分别应为多少位? (2)画出围绕这种微指令格式的微程序控制器逻辑框图。 6.用2M×8位的SRAM芯片,设计4M×16位的SRAM存储器,试画出存储器芯片连接图。 *7.某计算机系统的内存储器由cache和主存构成,cache的存储周期为30ns,主存的存取周期为150ns。已知在一段给定的时间内,CPU共访问内存5000次,其中400次访问主存。问: ① cache的命中率是多少? ② CPU访问内存的平均时间是多少纳秒?

数据结构实验线性表及其应用

计算机系数据结构实验报告(1) 实验目的: 帮助学生掌握线性表的基本操作在顺序和链表这两种存储结构上的实现,尤以链表的操作和应用作为重点。 问题描述: 1、构造一个空的线性表L。 2、在线性表L的第i个元素之前插入新的元素e; 3、在线性表L中删除第i个元素,并用e返回其值。 实验要求: 1、分别利用顺序和链表存储结构实现线性表的存储,并设计出在不同的存储结构中线 性表的基本操作算法。 2、在实验过程中,对相同的操作在不同的存储结构下的时间复杂度和空间复杂度进行 分析。 算法分析: 由于两种存储结构都用来创建线性结构的数据表,可采用相同的输出模式和整体结构类似的算法,如下: 实验内容和过程: 顺序存储结构线性表程序清单: //顺序存储结构线性表的插入删除 #include #include <> using namespace std; # define LISTSIZE 100 # define CREMENTSIZE 10 typedef char ElemType; //定义数据元素类型为字符型 typedef struct { ElemType *elem; //数据元素首地址

int len; //当前元素个数 int listsize; //当前存储最大容量 }SqList; //构造一个空的线性表L int InitList(SqList &L) { =(ElemType *)malloc(LISTSIZE*sizeof(ElemType)); if (! exit(-2); //分配空间失败 =0; =LISTSIZE; } //在顺序线性表L中第i个位置之前插入新的元素e int ListInsert(SqList &L,int i,ElemType e) { if (i<1||i>+1) return -1; //i值不合法 if >= { ElemType *newelem=(ElemType *)realloc,+CREMENTSIZE)*sizeof(ElemType)); //存储空间已满,增加分配 if(!newelem) exit (-2); //分配失败 =newelem; +=CREMENTSIZE; } ElemType *q=&[i-1]) ; for (ElemType *p=&[]);p>=q;--p) *(p+1)=*p; //插入位置及其后的元素后移 *q=e; ++; return 1; } //在顺序线性表L中删除第i个元素,并用e返回其值 int ListDelete(SqList &L,int i,ElemType&e) { if (i<1||i> return -1; //i值不合法

相关主题
文本预览
相关文档 最新文档