第1周绪论时长56分11秒

第1周测验

1、单选题:
‌计算机所处理的数据一般具备某种内在联系,这是指( )。​
选项:
A: 数据和数据之间存在某种关系
B: 元素和元素之间存在某种关系
C: 元素内部具有某种结构
D: 数据项和数据项之间存在某种关系
答案: 【 元素和元素之间存在某种关系

2、单选题:
‍在数据结构中,与所使用的计算机无关的是数据的( )结构。‌
选项:
A: 逻辑
B: 存储
C: 逻辑和存储
D: 物理
答案: 【 逻辑

3、单选题:
‍在计算机中存储数据时,通常不仅要存储各数据元素的值,而且还要存储( )。​
选项:
A: 数据的处理方法
B: 数据元素的类型
C: 数据元素之间的关系
D: 数据的存储方法
答案: 【 数据元素之间的关系

4、单选题:
‎数据结构在计算机内存中的表示是指( )。‌
选项:
A: 数据的存储结构
B: 数据结构
C: 数据的逻辑结构
D: 数据元素之间的关系
答案: 【 数据的存储结构

5、单选题:
‌数据在计算机的存储器中表示时,逻辑上相邻的两个元素对应的物理地址也是相邻的,这种存储结构称之为( )。‍
选项:
A: 逻辑结构
B: 顺序存储结构
C: 链式存储结构
D: 以上都对
答案: 【 顺序存储结构

6、单选题:
‏数据采用链式存储结构时,要求( )。‏
选项:
A: 每个节点占用一片连续的存储区域
B: 所有节点占用一片连续的存储区域
C: 节点的最后一个域必须是指针域
D: 每个节点有多少后继节点,就必须设多少个指针域
答案: 【 每个节点占用一片连续的存储区域

7、单选题:
‎可以用( )定义一个完整的数据结构。‌
选项:
A: 数据元素
B: 数据对象
C: 数据关系
D: 抽象数据类型
答案: 【 抽象数据类型

8、单选题:
‍算法指的是( )。​
选项:
A: 计算机程序
B: 解决问题的方法
C: 查找或排序过程
D: 求解特定问题的指令有限序列
答案: 【 求解特定问题的指令有限序列

9、单选题:
‍在算法设计时,若实参和形参同步发生改变,则应把形参变量说明为( )型参数。‌
选项:
A: 指针
B: 引用
C: 传值
D: 常数
答案: 【 引用

10、单选题:

某算法的时间复杂度为O(),表明该算法的( )。

‏选项:
A: 问题规模是
B: 执行时间等于 
C: 执行时间与成正比
D: 问题规模与成正比
答案: 【 执行时间与成正比

11、单选题:
下面程序段的时间复杂度是(        )。‏for(i=0;i<n;i++)‏    for(j=0;j<m;j++)‏       A[i][j]=0;‏‏‍‏
选项:
A: O(m*n)
B: O(m)
C: O(n)
D: O(m+n)
答案: 【 O(m*n)

12、单选题:
下面程序段的时间复杂度是(     )‎i=1;‎while(i<=n)‎   i=i*3;‎
选项:
A: O(n)
B: O(3*n)
C: O(n^3)
D: O(logn)
答案: 【 O(logn)

13、判断题:
‎数据的关系有逻辑关系和存储关系。其中逻辑关系是进行算法分析和设计需要考虑与使用的,而存储关系是编程实现的时候需要考虑的,逻辑关系和存储关系之间并没有关系。‏
选项:
A: 正确
B: 错误
答案: 【 错误

14、判断题:
‌算法和程序都不能无穷的,否则会进入死循环。‏
选项:
A: 正确
B: 错误
答案: 【 错误

15、判断题:
下面的递归函数时间复杂度是O(1)。‍int fact(int n)‍{‍      if(n<=1)return 1;‍      else return n*fact(n-1);‍}‍
选项:
A: 正确
B: 错误
答案: 【 错误

第2周线性表上时长1小时3分56秒

第2周测验

1、单选题:
‎线性表是( )。‏
选项:
A: 一个有限序列,可以为空
B: 一个有限序列,不可以为空
C: 一个无限序列,可以为空
D: 一个无限序列,不可以为空
答案: 【 一个有限序列,可以为空

2、单选题:
‏线性表的基本运算ListInsert(&L,i,e)表示在线性表L中第i个位置上插入一个元素e,若L的长度为n,则i的合法取值是( )。‎
选项:
A: 1≤i≤n
B: 1≤i≤n+1
C: 0≤i≤n-1
D:  0≤i≤n
答案: 【 1≤i≤n+1

3、单选题:
‍顺序表具有随机存取特性,指的是( )。‍
选项:
A: 查找值为x的元素与顺序表中元素个数n无关
B: 查找值为x的元素与顺序表中元素个数n有关
C: 查找序号为i的元素与顺序表中元素个数n无关
D: 查找序号为i的元素与顺序表中元素个数n有关
答案: 【 查找序号为i的元素与顺序表中元素个数n无关

4、单选题:
‍在顺序表中删除一个元素所需要的时间( )。‏
选项:
A: 与删除元素的位置及顺序表的长度都有关
B: 只与删除元素的位置有关
C: 与删除任何其他元素所需要的时间相等
D: 只与顺序表的长度有关
答案: 【 与删除元素的位置及顺序表的长度都有关

5、单选题:
​在n(n>1)个运算的顺序表中,算法时间复杂度为O(1)的运算是( )。‎
选项:
A: 访问第i个元素(2≤i≤n)并求其前驱元素
B: 在第i个元素之后插入一个新元素
C: 删除第i个元素
D: 将这n个元素递增排序
答案: 【 访问第i个元素(2≤i≤n)并求其前驱元素

6、单选题:
‌关于线性表的顺序存储结构和链式存储结构的描述中,正确的是( )。‏‌‏‌Ⅰ.线性表的顺序存储结构优于链式存储结构‏‌Ⅱ.顺序存储结构比链式存储结构的存储密度高‏‌Ⅲ.如需要频繁插入和删除元素,最好采用顺序存储结构‏‌Ⅳ.如需要频繁插入和删除元素,最好采用链式存储结构‏
选项:
A: Ⅰ、Ⅱ、Ⅲ
B: Ⅱ、Ⅳ
C: Ⅱ、Ⅲ
D: Ⅲ、Ⅳ
答案: 【 Ⅱ、Ⅳ

7、单选题:
‏在单链表中,增加一个头节点的目的是为了( )。‌
选项:
A: 使单链表至少有一个节点
B: 标识链表中某个重要节点的位置
C: 方便插入和删除运算的实现
D: 表示单链表是线性表的链式存储结构
答案: 【 方便插入和删除运算的实现

8、单选题:
‌通过含有n(n≥1)个元素的数组a,采用头插法建立一个单链表L,则L中节点值的次序( )。​
选项:
A: 与数组a的元素次序相同
B: 与数组a的元素次序相反
C: 与数组a的元素次序无关
D: 以上都不对
答案: 【 与数组a的元素次序相反

9、单选题:
‌某算法在含有n(n≥1)个节点的单链表中查找值为x节点,其时间复杂度是( )。‌
选项:
A:
B: O(1)
C:
D: O(n)
答案: 【 O(n)

10、单选题:
‍在长度为n(n≥1)的单链表中删除尾节点的时间复杂度为( )。‏
选项:
A: O(1)
B:
C: O(n)
D:
答案: 【 O(n)

11、单选题:
‍关于线性表的正确说法是( )。‌
选项:
A: 每个元素都有一个前驱和一个后继元素
B: 线性表中至少有一个元素
C: 表中元素的排序顺序必须是由小到大或由大到小
D: 除第一个元素和最后一个元素外,其余每个元素有且仅有一个前驱和一个后继元素
答案: 【 除第一个元素和最后一个元素外,其余每个元素有且仅有一个前驱和一个后继元素

12、单选题:
‏以下关于顺序表的叙述中,正确的是( )。‎
选项:
A: 顺序表可以利用一维数组表示,因此顺序表与一维数组在结构上是一致的,它们可以通用
B: 在顺序表中,逻辑上相邻的元素在物理位置上不一定相邻
C: 顺序表和一维数组一样,都可以进行随机存取
D: 在顺序表中每一个元素的类型不必相同
答案: 【 顺序表和一维数组一样,都可以进行随机存取

13、单选题:
‏以下属于顺序表的优点是( )。‎
选项:
A: 插入元素方便
B: 删除元素方便
C: 存储密度大
D: 以上都不对
答案: 【 存储密度大

14、单选题:
‏设线性表中有n个元素,以下运算中,( )在单链表上实现要比在顺序表上实现效率更高。‎
选项:
A: 删除指定位置元素的后一个元素
B: 在尾元素的后面插入一个新元素
C: 顺序输出前k个元素
D: 交换第i个元素和第n-i+1个元素的值(i=1,2,…,n)
答案: 【 删除指定位置元素的后一个元素

15、单选题:
‏以下关于单链表的叙述中正确的是( )。‌‏Ⅰ.节点除自身信息外还包括指针域,存储密度小于顺序表‌‏Ⅱ.找第i个节点的时间为O(1)‌‏Ⅲ.在插入、删除运算时不必移动节点‌
选项:
A: 仅Ⅰ、Ⅱ
B: 仅Ⅱ、Ⅲ
C: 仅Ⅰ、Ⅲ
D: Ⅰ、Ⅱ、Ⅲ
答案: 【 仅Ⅰ、Ⅲ

16、单选题:
‌设顺序表L是一个非递减的有序表,下面的哪个算法,能够将元素x插入L中,并使L仍然有序。‎
选项:
A: //L是顺序存储结构void insert(list *L,elemtype x){    int i=1;    while(i<=L->length)    {         if(x>L->data[i])i++;         else L->data[i]=x;     } }
B: //L是顺序存储结构void insert(list *L,elemtype x){     int i=L->length;    while(i>=1)    {         if(x<L->data[i]){L->data[i+1]=L->data[i];--i;}         L->data[i]=x;     } }
C: //L是顺序存储结构void insert(list *L,elemtype x){    int i=L->length;    while(i>=1)    {         if(x<L->data[i]){L->data[i+1]=L->data[i];--i;}         else {L->data[i]=x;break;}     }     L->length+=1;}
D: //L是顺序存储结构void insert(list *L,elemtype x){    int i=1;    while(i<=L->length)    {         if(x>L->data[i]){L->data[i+1]=L->data[i];i++;}         else {L->data[i]=x;break;}     } }
答案: 【 //L是顺序存储结构void insert(list *L,elemtype x){    int i=L->length;    while(i>=1)    {         if(x<L->data[i]){L->data[i+1]=L->data[i];--i;}         else {L->data[i]=x;break;}     }     L->length+=1;}

17、单选题:
​已知不带头结点的单链表L,下面用函数实现的在第一个元素前面插入值为x的元素结点的算法错误的是(      )。‏
选项:
A: List * insert(List *L,elemtype x){     ptr p=*L;     node d=new node(x);     ptr q=&d;     q->next=p;         return &q;}
B: void  insert(List *L,elemtype x){         ptr p=*L;     node d=new node(x);     ptr q=&d;     p->next=q;     L=&q;}
C: void  insert(List *L,elemtype x){     ptr p=*L;     node d=new node(x);     ptr q=&d;     q->next=p;     L=&q;}
D: List * insert(List *L,elemtype x){     ptr p=*L;     node d=new node(x);     ptr q=&d;     q->next=p;     L=&q;     return L;}

剩余75%内容付费后可查看

发表评论

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