第一章绪论总时长56分26秒共6讲

MOOC第一单单元测试题

1、单选题:
执行下面的程序段的时间复杂度为(   )。‏    for(int i=0;i<m;i++)‏       for(int j=0;j<n;j++)‏             a[i][j]=i*j;‏‍‏
选项:
A: O(m*n)
B:


C:



D: O(m+n)
答案: 【 O(m*n)

2、单选题:
执行下面程序段时,语句S的执行次数为(   )。‍for(int i=0;i<=n;i++)‍  for(int j=0;j<=i;j++)‍        S;‍‏‍
选项:
A: (n+1)*(n+2)/2
B: n*n
C: n(n+1)/2
D: n*n/2
答案: 【 (n+1)*(n+2)/2

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、单选题:
‏某算法的时间复杂度是O(n^2),表明该算法的(   )。‏
选项:
A: 执行时间与n^2正比
B: 问题规模是n^2
C: 问题规模与n^2正比
D: 执行时间等于n^2
答案: 【 执行时间与n^2正比

9、单选题:
​若需要利用形式参数直接访问修改实参值,则应将形参说明为(    )参数。​​​
选项:
A: 指针
B: 值参数
C: 实地址
D: 地址参数
答案: 【 指针

10、单选题:
如下程序段:‍   for(i=1;i<=n-1;i++)‍    for(j=i+1;j<=n;j++) x=x+1;‍其中语句x=x+1执行的语句频度为(    )。‍​‍
选项:
A: n*(n-1)/2
B: n*n
C: n*(n+1)/2
D: n*(n-1)
答案: 【 n*(n-1)/2

11、单选题:
以下算法的时间复杂度为(   )。‏if (n >= 0) ‏{  ‏    for(int i = 0; i < n; i++) ‏        for(int j = 0; j < n; j++) ‏              printf("输入数据大于等于零n");    ‏} ‏else ‏{      ‏    for(int j = 0; j < n; j++) ‏          printf("输入数据小于零n"); ‏}‏ ‏‍‏
选项:
A: O(n*n)
B: O(1)
C: O(n*n+n)
D: O(n)
答案: 【 O(n*n)

12、单选题:
在数组A[0..n-1]中查找给定值K的算法大致如下:   ‏i=n-1;            ‏while(i>=0&&(A[i]!=k))       ‏      i--;        ‏return i;  ‏该算法的时间复杂度为(    )。‏‌‏
选项:
A: O(n)
B: O(n-i+1)
C: O(n-i)
D: 无法确定
答案: 【 O(n)

13、单选题:
下面算法的时间复杂度为(    )。‌x=100; y=100;‌while(y>0) ‌     if(x>100) ‌        {x=x-10; y--;} ‌     else ‌          x++;‌ ‌‌‌
选项:
A: O(1)
B: O(n)
C: O(100)
D: O(n*n)
答案: 【 O(1)

14、单选题:
下面的算法是判断n是否为素数,其算法时间复杂度为(      )。‏void prime(int n)‏{ 判断n是否是素数 */‏   for (i=2; i<sqrt(n) && (n % i)!=0; i++) ;‏ ‏   if (i>sqrt(n))   ‏         printf("%d is a prime number", n);  ‏   else  ‏        printf("%d is not a prime number", n);‏} ‏‏其中, sqrt表示对n取根方。‏‍‏
选项:
A: O(sqrt(n))   
B: O(n)
C: O(1)
D: O(n-i)
答案: 【 O(sqrt(n))   

15、多选题:
一个抽象数据类型包括(    )。​​
选项:
A: 数据对象
B: 数据对象中各元素间的关系
C: 一组基本操作
D: 数据
答案: 【 数据对象;
数据对象中各元素间的关系;
一组基本操作

16、多选题:
以下属于数据元素间基本逻辑结构的是(    )。‍‎‍
选项:
A: 集合
B: 线性
C: 树
D: 图
答案: 【 集合;
线性;
树;

17、多选题:
以下属于算法特性的是(    )。‎‍‎
选项:
A: 0个或多个输入
B: 至少一个输出
C: 正确性和有限性
D: 可行性
答案: 【 0个或多个输入;
至少一个输出;
正确性和有限性;
可行性

18、多选题:
算法设计的要求包括(   )。‌‎‌
选项:
A: 正确性
B: 可读性
C: 健壮性
D: 高效率和低存储
答案: 【 正确性;
可读性;
健壮性;
高效率和低存储

19、多选题:
数据元素在计算机的存储映像包括(   )。‏‍‏
选项:
A: 顺序存储
B: 非顺序存储
C: 图结构
D: 树结构
答案: 【 顺序存储;
非顺序存储

20、判断题:
具有线性结构的数据元素只能顺序存储,非线性结构的元素只能非顺序存储。‍
选项:
A: 正确
B: 错误
答案: 【 错误

21、判断题:
​算法就是程序。‍
选项:
A: 正确
B: 错误
答案: 【 错误

22、判断题:
‌算法的优劣与算法描述的语言无关。‌
选项:
A: 正确
B: 错误
答案: 【 正确

23、判断题:
‍算法的可行性是指每一条指令具有明确含义。‎
选项:
A: 正确
B: 错误
答案: 【 错误

24、判断题:
‌健壮的算法不会因为非法输入而出现莫名的执行结果。‏
选项:
A: 正确
B: 错误
答案: 【 正确

25、判断题:
‌高效率和低存储是衡量一个算法的唯一标准。‎
选项:
A: 正确
B: 错误
答案: 【 错误

26、判断题:
‍数据类型就是一组性质相同的值的集合和在该集合上的一组操作的总称。‏
选项:
A: 正确
B: 错误
答案: 【 正确

27、判断题:
‍数据元素的存储结构分为顺序存储和非顺序存储。‎
选项:
A: 正确
B: 错误
答案: 【 正确

28、判断题:
‍数据元素的顺序存储优于非顺序存储。‍‍‍
选项:
A: 正确
B: 错误
答案: 【 错误

29、判断题:
一个数据结构在存储时,只需要存储数据元素即可。‏​‏
选项:
A: 正确
B: 错误
答案: 【 错误

数据结构的基础概念随堂测验

1、单选题:
‏一个抽象类型包括数据对象、              和一组处理数据的操作。‏
选项:
A: 数据对象中各元素间的结构关系
B: 数据元素集
C: 接口
D: 数据对象集
答案: 【 数据对象中各元素间的结构关系

2、填空题:
‏抽象数据类型具有             、信息隐蔽的特点。​‏​
答案: 【 数据抽象

第2讲数据结构的内容随堂测验

1、判断题:
线性结构只能用顺序结构来存放,非线性结构只能用非顺序结构来存放。( )‍​‍​‍
选项:
A: 正确
B: 错误
答案: 【 错误

2、填空题:
​1、数据结构的逻辑结构分为集合、线性、树型和         四种。‎​‎
答案: 【 网状或图状

3、填空题:
‏2、数据结构的存储结构分为              和非顺序 两种。‍‏‍
答案: 【 顺序

4、填空题:
3、在线性结构、树形结构和图结构中,数据元素之间分别存在着一对一、一对多和          联系。​​​
答案: 【 多对多

第3讲数据结构与C语言表示随堂测验

1、单选题:
‏当需要用一个形式参数直接改变对应实参的值时,该形式参数应说明为        。‍
选项:
A: 与实参同类型指针参数
B: 不需要参数
C: 与实参同类型的参数
D: 全局变量
答案: 【 与实参同类型指针参数

第4讲算法性能评价随堂测验

1、单选题:
1、执行下面的程序段的时间复杂度为           。‍for(int i=0;i<m;i++)‍     for(int j=0;j<n;j++)‍     a[i][j]=i*j;‍‏‍
选项:
A: O()     
B: O(

C: O(m*n) 
D: O (m+n)
答案: 【 O(m*n) 

2、单选题:
2、执行下面程序段时,语句S的执行次数为          。‍for(int i=0;i<=n;i++)‍  for(int j=0;j<i;j++)‍    S;‍‍‍‍
选项:
A:

B:
C: n(n+1)
D:

答案: 【 

第5讲算法与算法描述随堂测验

1、单选题:
‏算法设计的要求是:正确性、可读性 、                    和高效率和低存储  。​
选项:
A: 确定性
B: 健壮性
C: 可行性
D: 有限性
答案: 【 健壮性

2、单选题:
算法具有 有限性、确定性、              、输入、输出五大特性。‎‎‎‎‎
选项:
A: 可行性
B: 可读性
C: 健壮性
D: 正确性
答案: 【 可行性

第二章线性表一总时长72分22秒共6讲

第1讲线性表的概念随堂测验

1、单选题:
‏线性表是具有n个( )的有限序列(n>0)​
选项:
A: 数据对象
B: 数据元素
C: 字符
D: 数据项
答案: 【 数据元素

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

3、判断题:
‎线性表的特点是每个元素都有一个前驱和一个后继。()‌
选项:
A: 正确
B: 错误
答案: 【 错误

第2讲线性表的顺序存储随堂测验

1、单选题:
若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为(  )(1<=i<=n+1)。‏‌‏‌‏
选项:
A: O(1)
B: O(n)
C: O(n*n)
D: O(
答案: 【 O(n)

2、单选题:
若长度为n的线性表采用顺序存储结构,删除第i个位置的元素,需要移动的元素个数为(   )。‌‌‌‌‌
选项:
A: i
B: n-i
C: n-i+1
D: n-i-1
答案: 【 n-i

第3讲随堂测验

1、单选题:
‏对一个长度为n的顺序表,假设在任何位置上插入一个元素的概率是相等的,那么插入一个元素时要移动表中的(   )个元素。​‏​‏​‏​
选项:
A: n 
B: n+1
C:
D:
答案: 【 

2、判断题:
‌线性表的顺序存储是指将表中元素按照从大到小或从小到大存储。‌
选项:
A: 正确
B: 错误
答案: 【 错误

第4讲线性表的链式存储随堂测验

1、单选题:
‎通过表达式           可以获取带头结点的单链表L中首元素结点的数据值。‌
选项:
A: L->next
B: (L->next)->data
C: L->data
D: L->next
答案: 【 (L->next)->data

2、判断题:
单链表中必须设有头结点。()​‏​
选项:
A: 正确
B: 错误
答案: 【 错误

第5讲单链表的基本运算随堂测验

1、单选题:
下列选项中,      项是链表不具有的特点。​​‎​
选项:
A: 插入和删除运算不需要移动元素
B: 所需要的存储空间与线性表的长度成正比
C: 不必事先估计存储空间大小
D: 可以随机访问表中的任意元素
答案: 【 可以随机访问表中的任意元素

2、单选题:
有一个带头结点的单链表HEAD,则判断其是否为空链表的表达式是                ‍​‍​‍
选项:
A: HEAD= =NULL 
B: HEAD-〉NEXT= =NULL
C: HEAD-〉NEXT= =HEAD 
D: HEAD!=NULL
答案: 【 HEAD-〉NEXT= =NULL

3、单选题:
在一个单链表中P所指结点后插入一个S所指结点时,‌应执行语句:              。‌​‌
选项:
A: P->next=S;S->next=P->next;
B: S->next=P->next;P->next=S;
C: S->next=P->next;P=S;
D: S->next=P;P->next=S;
答案: 【 S->next=P->next;P->next=S;

第6讲随堂测验

1、单选题:
设指针变量p指向单链表中结点A的直接前驱,若删除单链表中结点A,则需要修改指针的操作序列为(  )。‎   ‎‌ ‎‌‎
选项:
A: q=p->next;p->next=q->next;free(q);
B: q=p->next; p->next=q->next;
C: p->next=p-> next->next;
D: q=p->next;p->data=q->data;free(q);
答案: 【 q=p->next;p->next=q->next;free(q);

2、判断题:
‍对链表进行插入和删除操作时不必移动链表中结点。(  )‍
选项:
A: 正确
B: 错误
答案: 【 正确

3、判断题:
‌在单链表中,可以从头结点出发,查找到表中所有结点。( )‌
选项:
A: 正确
B: 错误
答案: 【 正确

第二章线性表二总时长59分37秒

总结与提高随堂测验

1、单选题:
某线性表中最常用的操作是存取序号为i的元素和在最后进行插入和删除运算,则采用         存储方式时间性能最好。‌‌
选项:
A: 双向链表
B: 双向循环链表  
C: 单向循环链表
D: 顺序表
答案: 【 顺序表

2、单选题:
已知一个带头结点的非空循环单链表,其尾指针是R,则其首元素结点的地址为:‎
选项:
A:  R->next     
B:  *( R->next->next ) 
C: &( R->next->next )
D:  R->next->next
答案: 【  R->next->next

3、判断题:
‏线性表的顺序存储优于链式存储结构。()‌
选项:
A: 正确
B: 错误
答案: 【 错误

4、填空题:
‌在带头结点的非空单链表中,头结点的存储位置由       指示‎
答案: 【 头指针

第10讲链式结构小结--随堂检测

1、单选题:
已知单链表的头指针为head且该链表不带头结点,则该单链表为空的条件是    。‎‎
选项:
A: head== NULL
B: head->next==NULL
C: head->next==head
D: head!=NULL
答案: 【 head== NULL

2、单选题:
设指针变量p指向单链表中某结点的直接前驱,若删除单链表中该结点,需要修改指针的操作序列为              。‎  ‎‏‎
选项:
A:  q=p->next; p->next=q->next;free(q);
B:  q=p->next; free(q);
C:  p->next=p->next->next;free(p->next);
D: q=p->next; free(q);
答案: 【  q=p->next; p->next=q->next;free(q);

3、单选题:
设带有头结点的单向循环链表的头指针变量为head,则其判空条件是     。‏‏‏
选项:
A: head==NULL         
B: head->next==NULL
C: head->next==head
D: head!=NULL
答案: 【 head->next==head

4、判断题:
​在双向循环链表中,可以从任一结点p出发沿同一方向的指针域查找到表中所有元素。()‏
选项:
A: 正确
B: 错误
答案: 【 正确

第12讲随堂测验

1、单选题:
下列选项中,      项是链表不具有的特点。‌‌
选项:
A: 插入和删除运算不需要移动元素
B: 所需要的存储空间与线性表的长度成正比
C: 不必事先估计存储空间大小
D: 可以随机访问表中的任意元素
答案: 【 可以随机访问表中的任意元素

2、单选题:
在线性表中最常用的操作是存取第i个元素及其前趋的值,可采用             存储方式最省时间?‎‎
选项:
A: 顺序表 
B: 带头指针的双向循环链表
C: 带头指针的单向循环链表
D: 带头指针的单向链表
答案: 【 顺序表 

3、单选题:
下面关于线性表的叙述错误的是(   )。‎‎‍‎
选项:
A:  线性表采用顺序存储必须占用一片连续的存储空间  
B: 线性表采用链式存储不必占用一片连续的存储空间
C: 线性表采用链式存储便于插入和删除操作的实现
D: 线性表采用顺序存储便于插入和删除操作的实现
答案: 【 线性表采用顺序存储便于插入和删除操作的实现

第7讲循环链表随堂测验

1、单选题:
‏有一个带头结点的循环单链表HEAD,则判断其是否为空链表的条件是         。     ‌‏‌
选项:
A: HEAD==NULL  
B: HEAD-〉NEXT==NULL
C: HEAD-〉NEXT==HEAD 
D: HEAD!=NULL
答案: 【 HEAD-〉NEXT==HEAD 

2、判断题:
‏在单向循环链表中,从表中任意结点出发都可以顺着next域访问到表中所有元素()‎
选项:
A: 正确
B: 错误
答案: 【 正确

第8讲双向链表--随堂测验

1、单选题:
​​​与单链表相比,双向链表的优点之一是           。​​​​​​​
选项:
A: 插入删除操作更加方便 
B: 可以进行随机访问
C: 可以省略表头指针和表尾指针 
D: 访问前后相邻结点更方便。
答案: 【 访问前后相邻结点更方便。

2、判断题:
​在双向链表L中,可以从任一结点p出发沿同一方向的指针域查找到表中所有元素。()‏
选项:
A: 正确
B: 错误
答案: 【 错误

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

发表评论

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