资源描述:
《《计算机软件技术基础》试题及答案.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《计算机软件技术基础》试题1.线性表的链式存储结构与顺序存储结构相比优点是CD。A.所有的操作算法实现简单B.便于随机存取C.便于插入和删除D.便于利用零散的存储器空间2.线性表是具有n个C的有限序列。A.表元素B.字符C.数据元素D.数据项E.信息项3.若长度为n的线性表采用顺序存储结构,在其第I个位置插入一个新元素的算法的时间复杂度为C。(1≤I≤n+1)A.O(0)B.O(1)C.O(n)D.O(n2)4.设A是一个线性表(a1,a2,…,an),采用顺序存储结构,则在等概率的前提下,平均每插入一个元素需要移动的元素个数为B,平均每删除一个元素需要移动的元素个数为A;若元素插在ai与ai
2、+1之间(0≤I≤n-1)的概率为,则平均每插入一个元素所要移动的元素个数为C;A.B.C.D.5.下列函数中,按它们在时的无穷大阶数,最大的是D。A.lognB.nlognC.2n/2D.n!spnextnextnext6.将下图所示的s所指结点加到p所指的结点之后,其语句应为:D。A.s->next=p+1;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
3、.nB.2n-1C.n-1D.2n8.下面的程序段是合并两个无头结点链表(ha和hb)为一个无头结点链表ha的过程,作为参数的两个链表都是按结点的data域由大到小链接的。合并后新链表的结点仍按此方式链接。请填写下述空框,使程序能正确运行。#defineNULL0typedefstructnode{intdata;structnode*next;}node,linklisttype;voidcombine(linklisttype*ha,linklisttype*hb){linklisttype*h,*p;h=(linklisttype*)malloc(sizeof(linklisttype)
4、);h->next=NULL;p=h;while(ha!=NULL&&hb!=NULL)if(ha->data>=hb->data){/*较大的元素先插入*/p->next=(1);p=(2);(3);}else{p->next=(4);p=(5);(6);}if(ha==NULL)(7);if(hb==NULL)(8);ha=h->next;free(h);}参考答案:(1)ha(2)p->next(3)ha=ha->next(4)hb(5)p->next(6)hb=hb->next(7)p->next=hb(8)p->next=ha9.如果表A中所有元素(a1,a2,…,an)与表B的一个
5、顺序子表(bk,bk+1,…bk+n-1)完全相同(即a1=bk,a2=bk+1,…an=bk+n-1),则称表A包含在表B中。设ha,hb为带头结点的单链表,分别表示有序表A和B,下面的函数用于判别表A是否包含在表B中,若是,则返回true,否则返回false。(提示:用递归实现)#definetrue1#definefalse0#defineNULL0typedefstructnode{intdata;structnode*next;}node,linklisttype;intinclusion(linklisttype*ha,linklisttype*hb){linklisttype*p
6、a,*pb;pa=ha->next;pb=hb->next;(1);while((2))if(pa->data=pb->data)(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个结点的循环链表;函数josephus(n,I,m)对由create_link_list(n)所建立的具有n个结点的
7、循环链表按一定的次序逐个输出,并删除链表中的所有结点。参数n(n>0)指明循环链表的结点个数,参数I(1≤I≤n)指明起始结点,参数m(m>0是步长),指明从起始结点或前次被删除并输出的结点之后的第m个结点作为本次被输出并删除的结点。例如,对于下图所示的具有6个结点的循环链表,在调用josephus(6,3,2)后,将输出5,1,3,6,4,2。请在空框处填上适当内容,每框只填一个语句。#defi