《算法分析与设计》期末复习题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、选择题

1.一个.java文件中可以有()个public类。

A.一个B.两个C.多个D.零个

2.一个算法应该是()

A.程序B.问题求解步骤的描述

C.要满足五个基本特性D.A和C

3.用计算机无法解决“打印所有素数”的问题,其原因是解决该问题的算法违背了算法特征中的()A.唯一性B.有穷性C.有0个或多个输入D.有输出

4.某校有6位学生参加学生会主席竞选,得票数依次为130,20,98,15,67,3。若采用冒泡排序算法对其进行排序,则完成第二遍时的结果是()

A.3,15,130,20,98,67B.3,15,20,130,98,67

C.3,15,20,67,130,98 D.3,15,20,67,98,130

5.下列关于算法的描述,正确的是()

A.一个算法的执行步骤可以是无限的B.一个完整的算法必须有输出

C.算法只能用流程图表示D.一个完整的算法至少有一个输入

6.Java Application源程序的主类是指包含有()方法的类。

A、main方法

B、toString方法

C、init方法

D、actionPerfromed方法

7.找出满足各位数字之和等于5的所有三位数可采用的算法思路是()

A.分治法B.减治法C.蛮力法D.变治法

8.在编写Java Application程序时,若需要使用到标准输入输出语句,必须在程序的开头写上( )语句。

A、import java.awt.* ;

B、import java.applet.Applet ;

C、import java.io.* ;

D、import java.awt.Graphics ;

9.计算某球队平均年龄的部分算法流程图如图所示,其中:c用来记录已输入球员的人数,sum用来计算有效数据之和,d用来存储从键盘输入的球员年龄值,输入0时表示输入结束。

图中空白处理框①和②处应填入的是()

A.①sum ←sum + d B.①sum ←sum + c

②c ←c + 1②c ←c + 1

C.①sum ←sum + d D.①sum ←sum + c

②d ←d + 1 ②d ←d + 1

10.报名参加冬季越野赛跑的某班5位学生的学号是:5,8,11,33,45。利用折半查找,查找学号为33号学生的过程中,依次被访问到的学号是()

A.5,11,33 B.8,33 C.11,45,33 D.11,33

11.表达式(short)8/9.2*5的值的类型为

A.short B.int C.double D.float

12.设x为int型变量,则执行一下语句段后,x的值为

x=10;

x+=x-=x-x;

A.10 B.20 C.40 D.30

13.下列代码的执行结果是

public class StringTest{

public static void main(String args[]){

int a=4,b=6,c=8;

String s=”abc”;

System.out.println(a+b+s+c);

System.out.printin(); }

}

A.ababcc B.464688 C.46abc8 D.10abc8

14.下列程序段执行后t3的结果是

int t1 = 2, t2 = 3, t3;

t3=t1

A.2 B.4 C.5 D.6

15.要计算当0〈x〈10时,y=x,应当使用的语句是

A.if(0

16.对一组数据(2,12,16,88,5,10)进行排序,若前三趟排序结果如下,

第一趟:2,12,16,88,5,10

第二趟:2,5,16,88,12,10

第三趟:2,5,10,88,12,16

则采用的排序方法是()

A.冒泡排序B.合并排序C.快速排序D.选择排序

17.类与对象的关系是()

A.建筑图纸和建筑物的关系B.汽车与发动机的关系

C.人与黑人的关系D.没有关系

18.JA V A语言二维数组定义中,第二维的长度( )

A.可以不相等B.必须相等

C.高维数组长度与低维数组长度相同D.固定长度

19.算法必须具备()这三个特性。

A.可执行性、可移植性、可扩充性B.可执行性、确定性、有穷性

C.确定性、有穷性、稳定性D.易读性、稳定性、安全性

20.如下图所示,该流程图所表示的算法违背了算法的有穷性特征,下列修改方法中,可以改正该错误的是()

A.将①处改为i ←0 B.将②处改为s ≥0 ?

C.将③处改为i ←i-2 D.将④处改为s ←s-i

二、填空题

1.一个显而易见的事实是:大部分算法的执行时间随着输入量的增加而增大。

2.算法是求解某一问题所使用的一系列清晰的指令。

3.算法分析时间效率模型的基本数学公式是:T(n) ≈C op C(n)。

4.算法设计技术是用算法解题的一般性方法,用于解决不同计算领域的多种问题。

5.三个渐进符号:O 、Ω和Ө。

6.效率分析框架主要关心一个算法的基本操作次数的增长次数,并把它作为算法效率的主要指标。7.Java源程序的文件名和程序中定义的主类名应保持一致,包括字母大小写的匹配。

8.算法中常见的问题类型包括:排序、查找、字符串处理和组合问题等。

9.类中的构造方法是一个特殊的方法,其名称与类名相同。

10.面向对象程序设计语言中的3个重要特性分别是封装、继承和多态。

11.Java源程序文件的扩展名为java ,编译生成的字节码文件的扩展名为class 。

12.大多数算法的效率可以分为常数、对数、线性、平方、立方和指数等。

三、简答题

1.什么是算法?算法的五个重要特征是什么?

答:算法是求解某一问题所使用的一系列清晰的指令。

答:

(1)输入:有零个或多个由外部提供的量作为算法的输入.

(2)输出:算法产生至少一个量作为输出.

(3)确定性:组成算法的每条指令是清晰的,无歧义的.

(4)有限性:在执行了有穷步骤后运算终止.

(5)可行性:运算都是基本运算,原理上能在有限时间内完成.

2.请简述蛮力算法的优点?

答:

蛮力算法是一种简单直接地解决问题的方法。蛮力法具有如下优点:(1)应用范围广;(2)不受实例规模的限制;(3)当要解决的问题实例不多,设计更高效算法的代价太大时可选用;(4)对解决一些小规模的问题实例仍然有效;(5)可作为衡量其他算法的参照物。

3.算法设计与分析过程的典型步骤都包括哪些?

答:

(1)了解问题的内容

(2)了解计算设备的性能

(3)在精确解法和近似解法之间选择

(4)确定适当的数据结构

(5)算法设计技术

(6)详细表述算法的方法

(7)证明算法的正确性

(8)分析算法

(9)为算法写代码

4.请简述分治法的基本思路?

相关文档
最新文档