还剩3页未读,继续阅读
文本内容:
习题
九一、选择题
1、C语言属于下列哪一类语言?
(1)机器语言
(2)汇编语言
(3)面向过程的语言
(4)面向对象的程序设计语言
2、下面哪一个不是算法的特性?
(1)有效性
(2)确定性
(3)有穷性
(4)递归行
3、把已经编译好的源程序翻译成二进制的目标代码的是下面哪一个步骤?
(1)编辑
(2)编译
(3)连接
(4)执行
4、下面哪一个不是面向对象程序设计的特征?
(1)封装性
(2)继承性
(3)多态性
(4)对象性
5、哪一项不是程序的基本控制结构?
(1)函数与过程结构
(2)顺序结构
(3)选择结构
(4)循环结构
二、填空题
1、构成程序的基本成分包括、、、和
2、程序设计语言提供四种功能、、和
3、数据结构由数据的、及其三部分组成
4、根据结点之间的连接关系,将数据结构分为和两种类型
5、结构化程序设计有、和三种基本控制结构
6、针对软件生存周期各个不同的阶段,结构化方法有、和等方法
7、类是实现数据抽象和封装的工具,其包括三个部分、和
8、多态性是指发出同样的消息被不同类型对象接收时导致的完全不同的行为,其通常表现为、和
9、面向对象的软件工程是面向对象方法在软件工程领域的全面应用,它包括、、、和等主要内容
10、程序测试有、和三个阶段
三、简答题
1、什么是计算机程序?
2、高级语言种参数传递有哪几种方式?
3、计算机解决问题的过程是什么?
4、描述算法有几种形式?
5、结构化程序设计和面向对象程序设计的比较?
6、图的存储结构有哪两种?
四、算法设计
1、查找单链表中第i个结点的算法
2、中序遍历二叉树的递归算法习题
九一、选择题1.
(3)2.
(4)3.
(2)4.
(4)5.
(1)
二、填空题1.子程序子例程协同例程递归例程模块2.数据描述操作运算程序控制数据传输3.逻辑结构存储结构(或称物理结构)其运算4.线性非线性5.顺序结构分支结构循环结构6.结构化分析结构化设计结构化程序设计方法7.私有部分保护部分公有部分8.函数重载运算符重载虚函数9.面向对象的分析面向对象的设计(OOD)面向对象的编程(OOP)面向对象的测试(OOT)面向对象的软件维护(OOSM)10.静态分析动态分析综合测试
三、问答题1.什么是计算机程序?答计算机进行信息处理时的处理对象(数据或信息)和处理规则(动作或步骤)的描述称为程序,可狭义地定义为计算机指令的集合2.高级语言种参数传递有哪几种方式?答高级语言中的参数传递归纳起来有以下5种方式
(1)值传递形参等同于子程序的一个局部变量,其初值为调用时的实参值对形参的赋值不影响调用程序
(2)变参传递形参等同于子程序的局部变量当调用返回时,此形参的内容赋给相应实参,这里的实参必须是变量
(3)值/变参传递形参等同于子程序的局部变量,其初值为调用时的实参值返回时,如果实参为变量,则把形参的内容赋给此实参实参变量在调用前被定义,或在返回前被重定义
(4)引用(或地址传递)子程序内形参的所有操作均通过对其实参的引用来执行
(5)名计算引用实参的无参过程P被传递到子程序,对形参的操作变为先调用P,然后通过由P产生的引用进行操作3.计算机解决问题的过程是什么?答
(1)明确问题要求分析问题、弄清问题的性质是用计算机解题的出发点首先要对实际问题进行分析,明确问题的要求是什么,要求计算机做什么,已知一些什么样的数据,需要得到什么样的结果等答
(2)建立数学模型和确定计算方法数学模型是反映问题本质的数学表达式,而计算方法是通过数值计算来求解复杂函数的方法对错综复杂的实际问题进行简化抽象,并用合理的数学公式来描述的过程,称为建立数学模型的过程
(3)算法设计按所确定的数学模型及计算方法设计出解题步骤称为算法设计设计过程中要用算法描述工具将算法描述出来
(4)编写程序用计算机语言来描述算法
(5)调试程序及结果分析经过以上步骤得到的程序并不能保证其正确性,只有通过上机调试,才能发现程序中的语法错误及逻辑错误即使程序调试通过,得到运行结果,仍不能说明程序是正确的,还要对运行结果进行认真分析,看看输出结果是否满足要求,以及程序所执行的功能是否与要求一致如果发现有错误或偏差,则要找出问题所在4.描述算法有几种形式?答算法是解题方法及过程的精确描述,描述算法的形式有自然语言、流程图、N-S图、伪代码、计算机程序设计语言等形式5.结构化程序设计和面向对象程序设计的比较答结构化程序设计的思路是自顶向下、逐步求精,其程序结构是按功能划分为若干个基本模块,这些模块形成一个树状结构;各模块之间的关系尽可能简单,在功能上相对独立;每模块内部均是由顺序、选择和循环3种基本结构组成;模块实现的方法是调用子模块结构化程序设计由于采用了模块化分解与功能抽象以及自顶向下、分而治之的方法,从而有效地将一个复杂的程序系统设计任务分解成易于控制和处理的子任务,便于开发和维护虽然结构化程序设计方法具有很多的优点,但它仍是一种面向过程的程序设计方法它把数据和处理数据的过程分离为相互独立的实体,当数据结构发生改变时,所有相关的处理过程都要进行相应的修改,每一种相对于老问题的新方法都要带来额外的开销,程序的可重用性差面向对象的程序设计是由对象组合而成的,其中对象是用类来定义的,程序之间的交互主要是通过对象与对象之间的消息传递进行操作的面向对象的思想认为,客观世界是由各种各样的对象构成的,每种对象都有各自的属性和行为,不同对象之间的相互作用和联系构成了不同的系统面向对象的方法就是要面对现实世界的实体,并将其抽象为对象,以对象为基本单位,分析、设计和实现一个系统面向对象的程序设计支持抽象性、封装性、继承性和多态性封装使对象的内部实现与外界隔离,提供了更理想的模块化机制,减少了程序间的互相干扰;继承使得软件具有更高度的可重用性;多态性使得编程方法更易扩充,从而大大提高了程序的开发效率6.图的存储结构有哪两种?答图的存储结构根据不同的应用问题有不同的表示,常用的存储方法有邻接矩阵和邻接链表图的邻接矩阵(AdjacencyMatrix)适用于无向图和有向图,是表示图中顶点之间相邻关系的n阶方阵邻接链表是图的链式存储结构,在邻接链表中,对图中的每个顶点建立一个单链表,单链表有一个表头结点邻接链表将所有表头结点组成一个二维数组
四、算法设计1.查找单链表中第i个结点的算法参考算法如下structLNode//定义单链表的结点类型{ElemTypedata;//data字段的类型为ElemType,假定已有定义LNode*link;};LNode*p*first;//first为首变量,可能指向空表LNode*FindIndexinti{ifi==-1returnfirst;//设i不小于-1p=first-link;intj=0;whilep!=nullji{p=p-link;j++;}returnp;//指向第ii=
01...结点,当链表中结点数小于i时返回null}2.中序遍历二叉树的递归算法参考算法如下StatusMidOrderTraverseBiTreeTStatus*VisitTEleme{//采用二叉链表存储结构,Visit是对数据元素操作的应用函数,//中序遍历二叉树T的递归算法,对每个数据元素调用函数Visit//最简单的Visit函数是//StatusDisplyTelemTypre//{printfe;//returmok;//}//调用实例MidOrderTraverseTDisply;ifT{ifMidOrderTraverseT-lchildVisitifVisitT-dataifMidOrderTraverseT-rchildVisitreturnok;returnError;}elsereturnok;}。