本答案对应课程为:点我自动跳转查看
本课程起止时间为:2021-10-25到2022-01-02
本篇答案更新状态:已完结

第二章 线性表(一)(总时长:72分22秒,共6讲) 第二章 单元测试(1)

1、 问题:在长度为n的顺序表中的第i( 1 <=  i <= n+1 )个位置上插入一个元素,其算法时间复杂度为(  )。
选项:
A:O(logn)(以2为底)
B:O(1)  
C:O(n)   
D:O(n*n)
答案: 【O(n)   

2、 问题:在长度为n的顺序表中的第i( 1 =< i <= n+1 )个位置上插入一个元素,需要移动的元素个数为(   )。
选项:
A:n-i
B:i
C:n-i+1
D:n-i-1
答案: 【n-i+1

3、 问题:链表不具有的特点是(  )。
选项:
A:插入、删除不需要移动元素
B:可随机访问任一元素
C:不必事先估计存储空间
D:所需存储空间与线性表程度成正比
答案: 【可随机访问任一元素

4、 问题:在一单链表中,删除指针p所指的后继结点,以下语句正确的是(   )。
选项:
A:p->next=p->next->next;  free(p->next);
B:free(p->next);p->next=p->next->next;
C: p=p->next;
D:s=p->next;p->next=s->next;free(s);
答案: 【s=p->next;p->next=s->next;free(s);

5、 问题:假设删除长度为n的顺序表中的每个元素的概率相同,则删除一个元素平均要移动的元素个数是(  )。
选项:
A:n
B:(n+1)/2
C:(n-1)/2
D:n/2
答案: 【(n-1)/2

6、 问题:设某顺序表中第一个元素的地址是Base,每个结点占m个单元,则第i个结点的地址为( )。
选项:
A:Base+(i-1)×m              
B:Base+i×m          
C:Base-i×m              
D:Base+(i+1)×m 
答案: 【Base+(i-1)×m              

7、 问题:长度为n的非空线性表采用顺序存储结构,在表的第i个位置插入一个数据元素,i的合法值应该是(  )。
选项:
A:i>0    
B:1≤i≤n+1 
C:1≤i≤n-1
D:0≤i≤n+1
答案: 【1≤i≤n+1 

8、 问题:非空单链表结点结构为【data,next】,若指针p所指结点是尾结点,则(   )表达式为真。
选项:
A:p==NULL
B:p->next==NULL
C:p->next==P
D:p->next!=NULL
答案: 【p->next==NULL

9、 问题:某顺序表的第一个元素的存储地址是500,每个元素占4个单元,则第8个元素的起始地址是(    )。
选项:
A:504
B:508
C:516
D:528
答案: 【528

10、 问题:在长度为n的顺序表中删除第i(1<=i<=n)个位置上的元素,需要移动的元素个数为(   )。
选项:
A:n-i
B:n-i+1
C:n-i-1
D:i
答案: 【n-i

11、 问题:在长度为n的顺序表中的的末尾位置上插入一个元素,其算法时间复杂度为(  )。
选项:
A:O(1)
B:O(n)
C:O(logn)(以2为底)
D:O(nlogn)
答案: 【O(1)

12、 问题:以下算法的功能是在一个非递减的顺序存储线性表中,删除所有值相等的多余元素。时间复杂度为O(n),空间复杂度为O(1)。划线部分应填入的语句是(   )。void DelRepeatData(SeqList *L){ i=0; j=1; while( j<=L->last) { if(L->elem[i]==L->elem[j])                                      ; else { L->elem[i+1]=L->elem[j]; i++; j++; } }    L->last=i;}
选项:
A:i++
B:j++
C:i–
D:j–
答案: 【j++

13、 问题:以下算法是删除带头结点单链表L中的最小的元素,横线处应填入的语句是(    )。void DelMinNode(LinkList L){   p=L->next;  pre=L;   if(L==NULL)  return;   while(p->next!=NULL)  //pre指向最小元素的前驱元素,开始默认第一个结点最小,pre指向头结点   {        if(p->next->data < pre->next->data)                           pre=p;  }   //删除pre后面的结点   p=pre->next;                             ;}
选项:
A:free(p); pre->next=p->next;
B:free(p->next);pre->next=p->next;
C:pre->next=p->next; free(p); 
D:p->next=pre->next;free(p);
答案: 【pre->next=p->next; free(p); 

14、 问题:单链表中增加头结点的目的是存储链表的长度。
选项:
A:正确
B:错误
答案: 【错误
分析:【添加头结点的目的是,简化操作,使得在表头和中间位置对链表的操作统一化。不一定是为了存储链表的长度。

15、 问题:线性表在链式存储时,查找第i个元素的时间同i的值无关。
选项:
A:正确
B:错误
答案: 【错误

16、 问题:线性表在顺序存储时,查找第i个元素的时间同i 的值成正比。
选项:
A:正确
B:错误
答案: 【错误
分析:【顺序表中,查找第i个元素,时间是常量。

17、 问题:线性表的特点是每个元素都有一个前驱和一个后继。
选项:
A:正确
B:错误
答案: 【错误
分析:【首元素没有前驱,尾元素没有后继。

18、 问题:线性表的链式存储结构优于顺序存储。
选项:
A:正确
B:错误
答案: 【错误
分析:【两种存储结构各有优缺点。要根据实际问题选择合适的存储结构。

19、 问题:顺序存储方式的优点是存储密度大,插入、删除效率高。
选项:
A:正确
B:错误
答案: 【错误
分析:【前半句正确,后半句错误。
顺序存储中,插入和删除的效率比较低。

20、 问题:顺序表的每个结点只能是一个基本类型,而链表的每个结点可以是一个构造类型。
选项:
A:正确
B:错误
答案: 【错误

21、 问题:插入和删除操作是线性表的基本操作。这两种操作在数组中也经常使用。
选项:
A:正确
B:错误
答案: 【错误
分析:【数组本身不能进行插入和删除,因为数组的长度是不可变的。(在某些语言中)

22、 问题:在顺序表中,逻辑上相邻的两个元素物理存储上也一定也相邻。
选项:
A:正确
B:错误
答案: 【正确

23、 问题:在线性表的链式存储结构中,逻辑上相邻的两个元素在物理存储上并不一定紧邻。
选项:
A:正确
B:错误
答案: 【正确

24、 问题:线性表采用顺序存储,必须占用一段地址连续的存储单元。
选项:
A:正确
B:错误
答案: 【正确

25、 问题:顺序表结构适宜进行随机访问,而链表适宜进行插入、删除。
选项:
A:正确
B:错误
答案: 【正确

本门课程剩余章节答案为付费内容
本文章不含期末不含主观题!!
本文章不含期末不含主观题!!
支付后可长期查看
有疑问请添加客服QQ 2356025045反馈
如遇卡顿看不了请换个浏览器即可打开
请看清楚了再购买哦,电子资源购买后不支持退款哦

   

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注