15秋奥鹏东师 算法分析与设计在线作业2
算法分析与设计15秋在线作业2试卷总分:100 测试时间:--
一、单选题(共20道试题,共40分。)
1.一个递归算法必须包括()。
A. 递归部分
B. 终止条件和递归部分
C. 循环部分
D. 终止条件和循环部分
满分:2分
2.如果待排序序列中两个数据元素具有相同的值,在排序前后它们的相互位置发生颠倒,则称该排序算法是不稳定的。()就是不稳定的排序方法。
A. 起泡排序
B. 归并排序
C. Shell排序
D. 直接插入排序
满分:2分
3.在编写代码时,除了要保证代码的正确性,还要保证代码的()。
A. 完美性
B. 美观性
C. 独特性
D. 可读性
满分:2分
4.在有序表A中,采用二分查找算法查等于A的元素,所比较的元素下标依次为()。
A. 5, 8, 10, 12
B. 6, 9, 11, 12
C. 4, 7, 9, 12
D. 1, 4, 8, 12
满分:2分
5.如何一步步的跟踪代码,找到问题,搞明白为何程序不能正常运行,这个过程称为()。
A. 编写程序
B. 调试程序
C. 执行程序
D. 编译程序
满分:2分
6.将f=1+1/2+1/3+…+1/n转化成递归函数,其递归体是()。
A. f(1)=0
B. f(1)=1
C. f(0)=1
D. f(n)=f(n-1)+1/n
满分:2分
7.在长度为n的线性表中,寻找最大项至少需要比较()次
A. n
B. n-1
C. n/2
D. (n-1)/2
满分:2分
8.设无向图的顶点个数为n,则该图最多有()条边。
A. n-1
B. n(n-1)/2
C. n(n+1)/2
D. n2
满分:2分
9.有以下程序,其运行后的结果是()。 #include <stdio.h> void fun(int n, int *p) { int f1, f2; if( n==1||n==2 ) *p=1; else { fun( n-1, &f1 ); fun( n-2, &f2 ); *p=f1+f2; } } main() { int s; fun(3, &s ); printf("%d\n",s); }
A. 2
B. 3
C. 4
D. 5
满分:2分
10.下列数据结果中,能够按照“先进后出”原则存取数据的是( )
A. 循环队列
B. 栈
C. 队列
D. 二叉树
满分:2分
11.在字符数组中每个元素最多可存放()个字符。
A. 0
B. 1
C. 2
D. 任意
满分:2分
12.分枝定界法的基本思想()。
A. 不断用变量的旧值递推新值的过程
B. 把全部可行的解空间不断分割为越来越小的子集(称为分支),并为每个子集内的解的值计算一个下界或上界
C. 将原问题分解为相似的子问题,在求解的过程中通过子问题的解求出原问题的解
D. 一种用若干步可重复的简运算(规律)来描述复杂问题的方法
满分:2分
13.将递归算法转换成对应的非递归算法时,通常需要使用()。
A. 栈
B. 队列
C. 链表
D. 树
满分:2分
14.已知一列数{8,9,7,4,1,2},使用简单选择排序法对其按照升序进行排列,第0趟比较之后数列为()
A. 8,9,7,4,1,2
B. 1,9,7,4,8,2
C. 8,7,4,1,2,9
D. 1,2,8,9,7,4
满分:2分
15.例如“camelCase”和“printEmployeePaychecks()” 这样的命名规则是()。
A. 匈牙利命名法
B. 骆驼命名法
C. 下划线命名法
D. 帕斯卡命名法
满分:2分
16.在程序代码编辑框外(一般都是程序代码的最左侧)双击,就成功设置了一个断点,设置成功后会在该行的最前面显示一个圆点,这样的过程称作()。
A. 设置断点
B. 单步调试
C. 程序编译
D. 程序调试
满分:2分
17.char szValue; 函数itoa(32, szValue, 16)使得szValue的内容变为()
A. 32
B. 20
C. 16
D. 40
满分:2分
18.运算式(2008)10-(3723)8的结果是( )。
A. 0
B. -5
C. 5
D. 10
满分:2分
19.对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是()。
A. 冒泡排序为n/2
B. 冒泡排序为n
C. 快速排序为n
D. 快速排序为n(n-1)/2
满分:2分
20.()是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境等等。
A. VM
B. VS
C. Dev-C++
D. IDE
满分:2分
二、多选题(共5道试题,共20分。)
1.字符串有关的格式字符有( )。
A. "%c"
B. "%d"
C. "%f"
D. "%s"
满分:4分
2.高精度运算主要解决()。
A.
B. 加数
C. 减数
D. 运算结果的输入
E. 运算结果的存储
满分:4分
3.顺序结构、选择结构、循环结构三种结构共同特点是()
A. 只有一个入口
B. 只有一个出口
C. 结构内的每一部分都有机会被执行到(不存在死语句)
D. 结构内不存在死循环(永远执行不完的循环)。
满分:4分
4.递归算法的执行过程分()和()两个阶段。
A. 递归
B. 递推
C. 回归
D. 回溯
满分:4分
5.设计递归算法有两点最为关键()和()。
A. 确定递推公式
B. 确定边界(终了)条件(递归出口)
C. 每次递归调用,都必须向基本条件前进
D. 如果结果已知,那么,不用再重复调用递归
满分:4分
三、判断题(共20道试题,共40分。)
1.深度为k(k>=1)的二叉树至多有2^k-1个结点。
A. 错误
B. 正确
满分:2分
2.具有10个顶点的无向图,边的总数最多为44。
A. 错误
B. 正确
满分:2分
3.C语言中,数组名代表该数组的起始地址。
A. 错误
B. 正确
满分:2分
4.从已知条件出发,逐步推出要解决的问题,这种方法称为倒推法。
A. 错误
B. 正确
满分:2分
5.字符数组的初始化可以逐个元素进行初始化。
A. 错误
B. 正确
满分:2分
6.在前序遍历二叉树的序列中,任何结点的子树上的所有结点,都是直接跟在该结点之后。
A. 错误
B. 正确
满分:2分
7.有向图G的强连通分量是指极大强连通子图。
A. 错误
B. 正确
满分:2分
8.递归是计算机中的一种常用算法。它是按照一定的规律来计算序列中的每个项,通常是通过计算前面的一些项来得出序列中指定项的值。
A. 错误
B. 正确
满分:2分
9.在后序遍历二叉树的序列中,任何结点的子树上的所有结点,都是直接跟在该结点之后。
A. 错误
B. 正确
满分:2分
10.冒泡排序是一种不稳定排序方法。
A. 错误
B. 正确
满分:2分
11.冒泡排序法每次比较的是相邻的两个数:a和a,如果前一个数比后一个数大,则马上交换。
A. 错误
B. 正确
满分:2分
12.一棵二叉树有10个度为1的结点,7个度为2的结点,则该二叉树共有24个结点。
A. 错误
B. 正确
满分:2分
13.按“先进后出”原则组织数据的数据结构是栈。
A. 错误
B. 正确
满分:2分
14.一个算法有零个或多个输入。
A. 错误
B. 正确
满分:2分
15.折半查找的先决条件:表中结点按关键字有序,且顺序(一维数组)存储。
A. 错误
B. 正确
满分:2分
16.在链表表示中,链表中结点的逻辑次序和物理次序不一定相同。即:逻辑上相邻未必在物理上相邻。
A. 错误
B. 正确
满分:2分
17.一个算法的评价只要考虑时间复杂度。
A. 错误
B. 正确
满分:2分
18.高精度计算时可以用字符串来存储运算结果。
A. 错误
B. 正确
满分:2分
19.快速排序和归并排序在最坏情况下的比较次数都是O(nlog2n)。
A. 错误
B. 正确
满分:2分
20.字符串"Hello"与字符串"hello"相等。
A. 错误
B. 正确
满分:2分
页:
[1]