第一范文网 - 专业文章范例文档资料分享平台

《计算机软件技术基础》复习题(含答案).docx

来源:用户分享 时间:2025/7/10 5:36:53 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

《计算机软件技术基础》复习题

1 ?线性表的链式存储结构与顺序

存储结构相比优点是 —CD A.所有的操作算法实现简单

C. 便于插入和删除 2. 线性表是具有n个—二 A.表元索 D. 数据项

B.字符

B. 便于随机存取

D. 便于利用零散的存储器空间

的有限序列。

C. 数据元索 E. 信息项

3. 若长度为n的线性表采用顺序存储结构,在其第I个位匱插入一个新元素的算法的时间复

杂度为 C 。(lWIWn+1)

A. 0(0) C. 0(n)

4?设A是一个线性表(a】,a2,…,an),

B. 0 仃) D. 0(n2)

采用顺序存储结构,则在等概率的前提下,平均每插入

B _____ ,平均每删除一个元素需要移动的元素个数为

一个元素需要移动的元素个数为

;若元素插在&与亦Z间(OWIWn-1)的概率为23二”,则平均每插入一个 n{n

+1)

元素所要移动的元素个数为—C

A. 口

it

C. ----------

2 2n +1 3

B. D.

2

3/1 +1 4

下列函数中,按它们在D

5.

moo时的无穷大阶数,最大的是 A. log/? C. 2n\2

B. nl D. n!

6. 将下图所示的s所指结点加到p所指的结点Z后,其语句应为:—D

nex t nex t

nex t

A. s->next=p+l; p->next二s;

B. (*p). next二s; (*s). next二(*p). next; C. s->next=p->next; p-〉next二s->next; D. s-〉next=p->next; p-〉next=s;

7.将两个各有n个元素的有序表归并为一个有序表时,其最少的比较次数是一 A ° A. n C. n~l

B. 2n~l D. 2n

&下面的程序段是合并两个无头结点链表(ha和hb)为一个无头结点链表ha的过程,作为 参数的两个链表祁是按结点的chUi域由人到小链接的。合并后新链表的结点仍按此方式链

接。请填写下述空框,使程序能正确运行。

^define NULL 0

typedef struct node{ int data;

struct, node *next; }nocle, linklisttype;

void combine(linklisttype *ha, linklisttype *hb) {

linklisttype *h, *p;

h 二(linklisttype *)malloc(sizeof(linklisttype)); h->next = NULL; P = h;

while(ha != NULL && hb != NULL) if (ha->data>=hb^>clata) {

p->next 二 p = (3)

(1) ⑵

/*较大的元素先插入*/

} else {

p->next 二 p =

(4) ⑸

(6)

} if(ha==NULL)

if(hb=NULL)

ha = h->next; free(h);

参考答案:

⑴ ha ⑷ hb

(2) p->next (5) p->next

⑺ p->next=hb

(3) ha=ha->next hb二hb-〉(6) next (8) p->next=ha

9. 如果表A中所有元素(ab a2, ???, a?)与表B的一个顺序了?表(b, bm,…b“J完全相同(即 ai=bk,a2=bk+i,-a?=bk+n-i),则称表A包含在表B中。设ha, hb为带头结点的单链表,分别表 示有

序表A和B,下面的函数用于判别表A是否包含在表B中,若是,则返1-1 true,否则返 回

false。(提示:用递归实现)

#define true 1 #define false 0 #define NULL 0

typedef struct node{ int data;

struct node *next; }node, linklisttype;

int inclusion(linklisttype *ha, linklisttype *hb) { linklisttype *pa, *pb;

pa 二 ha~>next; pb = hb->next;

⑴ ;

while ( _______ (2) ____ )

if (pa->data=pb->da ta) ___________ (3) _____ ; else

______ (4) _____ ;

______ (5) _____ ; }

参考答案:

(1) if(pa==NULL) return (true)

(2) pb!二NULL && pa->data>=pb->data (3) return(inclusion(pa, pb)) (4) pb = pb->next; (5) return(false)

10. 在本题的程序中,函数create_link_list (n)建立一个具有n个结点的循环链表;函数 josephusfn, I,m)对由create_link_list(n)所建立的具有n个结点的循环链表按一定的次 序逐个输

出,并删除链表屮的所有结点。参数n(n>0)指明循环链表的结点个数,参数1(1 WlWn)指明起始结点,参数m (m>0是步长),指明从起始结点或前次被删除并输出的结点 Z示的笫m个结点作为本次被输出并删除的结点。例如,对于下图所示的具有6个结点的循 环链表,在调用josephus(6, 3, 2)后,将输出5, 1,3, 6, 4, 2。请在空框处填上适当内容,每 框只填一个语句。

^define NULL 0 typedef struct node{

int data; struct node *next; }node, linklisttype;

linklisttype *create_link_list(int n) {

linklisttype *head, *p, *q; int I; head = NULL; if(n>0){

head = (linklisttype p = head;

for(I=l ;I<=n-l; I++) { p->data = I;

q = (linklisttype *)malloc(sizeof(linklistttype));

malloc(sizeof(linklisttype));

/*此循环用于建立一个链表,链表的内容从1至n-1*/

仃)

}

p->dato = n;

; ;

return(head);

; /*建立从尾链到首的环形结构*/

void Josephus(int n, int j, int m){

linklisttype *p, *q; int j;

p = create_link_list(n); for(:I>1;I―)

⑷ ;

wh订e(j

for(1=1;I<=m-1;I++) p = p->next; ______ (5) ____ ; printf( \->data);

⑹ ;

free(q); j二j+1; } }

p 二 p->next;

参考答案:

(1) p->next = q; (2) p = q; (3) p->next 二 head ⑷j=0

(5) q二p->next; (6) p-〉next = q-〉next

11. 在下列程序中,函数difference (A, B)用于求两集合之差C=A~B,即当且仅当e是A中的

一个元素,且不是B屮的元素时,e是C屮的一个元素。集合用有序链表实现,用一个空链 表表示一个空集合,表示非空集合的链表根据元素之值按递增排列,执行OA-BZ后,表示 集合A和B的链表不变,若结果集合C非空,则表示它的链表应根据元索Z值按递增序排列。 函数append()用于在链表屮添加结点。

#inc]ude #define NULL 0 typedef struct node{

int data; struct node *next; }NODE;

NODE ^append(NODE *last, int x) {

last->next=(NODE *)malloc(sizeof(NODE)); last->next->data=x; return(last->next);

NODE *difference(NODE *A , NODE *B) {

NODE *C,*last;

C二last二(NODE malloc(sizeof(NODE)); while ( ______ (1) ____ )

if(A->data < B->data){

last=appcnd(last, A->data);

《计算机软件技术基础》复习题(含答案).docx.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c8uxj300f0e06i7k4fff923x6i11g5t00rr3_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top