11 算法
111 算法的基本概念 (P1—P4)
所谓算法是指解题方案的准确完整的描述。
1 算法的基本特征
(1)可行性(2)确定性(3)有穷性(4)拥有够的情报
2 算法的基本要素
一个算法通常由两种基本要素组成:一是对数据对象的运算和 *** 作,二是算法的控制结构。
(1) 算法中对数据的运算和 *** 作 (插入、删除)
(2) 算法的控制结构
一个算法一般都可以用顺序、选择、循环三种基本控制结构组合而成。
112 算法复杂度(P4—P6)
算法的复杂度主要包括时间复杂度和空间复杂度。
1. 算法的时间复杂度
所谓算法的时间复杂度,是指执行算法所需要的计算工作量。
可以用算法在执行过程中所需基本运算的执行次数来度量算法的工作量。
3 算法的空间复杂度
一个算法的空间复杂度,一般是指执行这个算法所需要的内存空间。
12数据结构的基本概念
数据结构,主要研究和讨论以下三个方面的问题:
① 数据的逻辑结构;
② 数据的存储结构;
③ 对各种数据结构进行的运算。(插入、删除)
主要目的是为了提高数据处理的效率。所谓提高数据处理的效率,主要包括两个方面:一是提高数据处理的速度,(时间复杂度)二是尽量节省在数据处理过程中所占用的计算机存储空间。(空间复杂度)
121什么是数据结构 (P6—P11)
1 数据的逻辑结构
所谓数据的逻辑结构,是指反映数据元素之间逻辑关系的数据结构。
2 数据的存储结构
数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称为数据的物理结构)
一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等存储结构。而采用不同的存储结构,其数据处理的效率是不同的。
123线性结构与非线性结构 (P12)
一般将数据分为两大类型:线性结构与非线性结构。
线性结构又称线性表
如果一个数据结构不是线性结构,则称之为非线性结构。
13线性表及其顺序存储结构
131线性表的基本概念 (P12—P13)
线性表是由n (n≥0)个数据元素a1,a2,…,an组成的一个有限序列,表中的每一个数据元素,除了第一个外,有且只有一个前件,除了最后一个外,有且只有一个后件。即线性表或是一个空表,或可以表示为。
(a1,a2,…,ai,…,an)
非空线性表有如下一些结构特征:
① 有且只有一个根结点a1,它无前件;
② 有且只有一个终结点an,它无后件;
③ 除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。
132线性表的顺序存储结构 (P13—P14)
在计算机中存放线性表,一种最简单的方法是顺序存储,也称为顺序分配。
线性表的顺序存储结构具有以下两个基本特点:
① 线性表中所有元素据所占的存储空间是连续的;
② 线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。
假设线性表中的第一个数据元素的存储地址为ADR(a1),每一个数据元素占K个字节,则线性表中第i 个元素ai在计算机存储空间中的存储地址为
ADR(a1)=ADR(a1)+(i-1)K
133顺序表的插入运算 (P14—P15)
在平均情况下,要在线性表中插入一个新元素,需要移动表中一半的元素。因此,在线性表顺序存储的情况下,要插入一个新元素,其效率是很低的。
134顺序表的删除运算 (P15—P16)
在平均情况下,要在线性表中删除一个元素,需要移动表中表中一半的元素。因此,在线性表顺序存储的情况下,要删除一个元素,其效率也是很低的。
由线性表在存储结构下的插入与删除运算可以看出,线性表的顺序存储结构对于小线性表或者其中元素不常变动的线性表来说是合适的,因为顺序存储的结构比较简单。但这种顺序存储的方式对于元素经常需要变动的大线性表就不太合适了,因为插入删除的效率比较低。
14栈和队列
141栈及其基本运算 (P16—P18)
1什么是栈
栈是限定在一端进行插入与删除的另一端称为栈底。即栈是按照“先进后出”(FILO)或“后进先出”(LIFO)的原则组织数据的,因此,栈也被称为“先进后出”表或“后进先出”表。由此可以看出,栈具有记忆作用。
2栈的顺序存储及其运算(采用顺序存储结构的栈称为顺序栈)
栈的基本运算有三种:入栈、退栈与读栈顶元素。
(1) 入栈运算(2)退栈运算(3)读栈顶元素
142队列及其基本运算 (P18—P20)
1什么是队列
队列(queue)是指允许在一端进行插入、而在另一端进行删除的线性表。允许插入的一端称为队尾,通常用一个称为尾指针(rear)的指针指向队尾元素,一端称为排头(也称为队头)通常也用一个排头指针(front)指向排头元素的前一个位置。
队列双称为“先进先出”或“后进后出”的线性表。
3 循环队列及其运算
在实际应用中,队列的顺序存储结构一般采用循环队列的形式。
所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。
(1) 入队运算
(2) 退队运算
15线性链表
151线性链表的基本概念 (P20—P23)
由于线性表的顺序存储结构存在以上这些缺点,对于大的线性表,特别是元素变动频繁的大线性表不宜采用顺序存储结构,而是采用下面要介绍的链式存储结构。
在链式存储方式中,要求每个结点由两部分组成:一部分用于存放数据元素值,称为数据域;另一部分用于存放指针,称为指针域。
在链式存储结构中,存储数据结构的存储空间可以下连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。
链式存储方式既可用于表示线性结构,也可以用于表示非线性结构。
1 线性链表
线性表的链式存储结构称为线性链表。
2 带链的栈
栈也是线性表,也可以采用链式存储结构。
3 带链的队列
与栈类似,队列也是线性表,也可以采用链式存储结构。
152线性链表的基本运算 (P23—P25)
线性链表在插入过程中不发生数据元素移动的现象,只需改变有关结点的指针即可,从而提高了插入的效率。
从线性链表的删除过程可以看出,在线性链表中删除一个元素后,不需要移动表的数据元素,只需改变被删除元素所在结点的前一个结点的指针域即可。
153循环链表及其基本运算 (P25—P26)
循环链表具有以下两个特点:
(1) 在循环链表中增加了一个表头结点,指针域指向线性表的第一个元素的结点。循环链表的头指针指向表头结点。
(2) 循环链表中最后一个结点的指针域不是空,而是指向表头结点。即在循环链表中,所有结点的指针构成了一个环状链。
1 6树与二叉树
161树的基本概念 (P26—P28)
在树结构中,每一个结点只有一个前件,称为父结点,没有前件的结点只有一个,称为树的根结点,简称为树的根。
在树结构中,每一个结点可以有多个后件,它们都称为该结点的子结点。没有后件的结点称为叶子结点。
在树结构中,一个结点所拥有的后件个数称为该结点的度
在树中,所有结点中的最大的度称为树的度。
根结点在第1层。
树的最大层次称为树的深度。
162二叉树及其基本性质 (P28—P31)
1 什么是二叉树
二叉树具有以下两个特点:
① 非空二叉树只有一个根结点;
② 每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树。
2 二叉树的基本性质
性质1在二叉树的第K层上,最多有2K-1(K≥1)个结点。
性质2深度为m的二叉树最多有2m-1个结点。
性质3在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。
3 满二叉树与完全二叉树
(1)满二叉树
所谓满二叉树是指这样的一种二叉树:除最后一层外,每一层上的所有结点都有两个子结点,这就是说,在满二叉树中,每一层上的结点数都达到最大值,即在满二叉树的第K层上有2K-1个结点,且深度为m的满二叉树有2m-1个结点。
(2)完全二叉树
所谓完全二叉树是指这样的二叉树:除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边若干结点。
满二叉树也是完全二叉树,而完全二叉树一般不是满二叉树。
性质6设完全二叉树共有n个结点。从根结点开始,按层序用自然数1,2,…,n给结点进行编号,则对于编号为k(k=1,2,…,n)的结点有以下结论:
① 若k=1,则该结点为根结点,它没有父结点;若k>1,则该结点的父结点编号为INT(k/2)。
② 若2k≤n,则编号为k的结点的左子结点编号为2k;否则该结点无左子结点。
③ 若2k+1≤n,则编号为k的结点的右子结点编号为2k+1;否则该结点无右子结点。
163二叉树的存储结构 (P31—P32)
在计算机中,二叉树通常采用链式存储结构。
164二叉树的遍历 (P32—P33)
二叉树的遍历可以分为三种:前序遍历、中序遍历、后序遍历。
1 前序遍历(DLR)
2 中序遍历(LDR)
3 后序遍历(LRD)
17查找技术
171顺序查找 (P33)
顺序查找又称顺序搜索。
对于大的线性表来说,顺序查找的效率是很低的。虽然顺序查找的效率不高,但在下列两种情况下也只能采用顺序查找:
(1) 线性表无序表,则不管是顺序存储结构还是链式存储结构,都只能用顺序查找。
(2) 即使是有序线性表,如果采用链式存储结构,也只能用顺序查找。
172二分法查找 (P33—P34)
二分法查找只适用于顺序存储的有序表。
显然,当有序线性表为顺序存储时都能采用二分查找,并且,二分查找的效率要比顺序查找高得多。可以证明,对于长度为n的有序线性表,在最坏情况下,二分查找只需要比较log2n次,而顺序查找需要比较n次。
18排充技术
181交换类排序法 (P34—P35)
1 冒泡排序法
冒泡排序法是一种最简单的交换类排序方法。
假设线性表的长度为n,则在最坏情况下,冒泡排序需要的比较次数为n(n-1)/2。
2 快速排序法
快速排序法也是一种互换类的排序方法,但由于它比冒泡排序法的速度快,因此称之为快速排序法。
182插入类排序法 (P35—P37)
1 简单插入排序法
自以为插入排序,是指将无序序列中的各元素依次插入到已经有序的线性表中。
在简单插入排序法中,这种排序方法的效率与冒泡排序法相同。在最坏情况下,证券交易插入排序需要n(n-1)/2次比较。
2 希尔排序法
希尔排序法属于插入类排序,但它对简单插入排序做了较大的改进。
183选择类排序法 (P37—P38)
1 简单选择排序法
从中选出最小的元素,将它交换到表的最前面。
简单选择排序法在最坏情况下需要比较n(n-2)/2次。
2 堆排序法
堆排序法属于选择类的排序方法。
堆排序的方法对于规模较小的线性表并不合适,但对于较大规模的来说是很有效的。
分享到搜狐微博
第2章 程序设计基础 (P40—P45)
21程序设计方法与风格
程序设计的风格总体而言应该强调简单和清晰,程序必须是可以理解的。可以认为,著名的“清晰第一,效率第二”的论点已成为当今主导的程序设计风格。
源程序文档化应考虑如下几点:
(1) 符号名的命名:符号名的命名应具有一定的实际含义,以便于对程序功能的理解。
(2) 程序注释:正确的注释能够帮助读者理解程序。注释一般分为序言性注释和功能性注释。
(3) 视觉组织:为使程序的结构一目了然,可以在程序中利用空格、空行、缩进等技巧使程序层次清晰。
22结构化程序设计
221结构化程序设计的原则 (P41—P42)
结构化程序设计方法的主要原则可以概括为自顶向下,逐步求精,模块化,限制使用goto语句。
222结构化程序的基本结构与特点 (P42—P43)
1 顺序结构
2 选择结构:选择结构又称为分支结构。
3 重复结构:重复结构又称为循环结构。
23面向对象的程序设计
今天面向对象方法已经发展成为主流的软件开发方法。
一些著名的面向对象语言(如C++、Java)
232面向对象方法的基本概念 (P45—P48)
1 对象
对象是面向对象方法中最基本的概念。对象可以用来表示客观世界中的任何实体。
面向对象的程序设计方法中涉及的对象由一组表示其静态特征的属性和它可执行的一组 *** 作组成。
(4) 封装性。
2 类(Class)和实例(Instance)
将属性、 *** 作相似的对象归为类,也就是说,类是具有共同属性、共同方法方法的对象的集合。所以,类是对象的抽象,而一个对象则是其对应类的一个实例。
3 消息
对象间的这种相互合作需要一个机制协助进行,这样的机制称为“消息”。消息是一个实例与另一个实例之间传递的信息。
4 继承
继承是面向对象的方法的一个主要特征。
第3 章 软件工程基础
31软件工程基本概念
311软件定义与软件特点 (P50)
计算机软件是包括程序、数据及相关文档的完整集合。
可见软件由两部分组成:一是机器可执行和程序和数据;二是机器不可执行的,与软件开发、运行、维护、使用等有关的文档。
软件的特点:
① 软件是一种逻辑实体,而不是物理实体,具有抽象性。
② 软件的生产与硬件不同,它没有明显的制作过程。
③ 软件在运行、使用期间不存在磨损、老化问题。
④ 软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题。
⑤ 软件复杂性高,成本昂贵。
⑥ 软件开发涉及诸多的社会因素。
312软件危机与软件工程 (P51—P52)
软件工程概念的出现源自软件危机。
20世纪60年代末以后,“软件危机”。所谓软件危机是泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
1968年在北大西洋公约组织会议(NATO会议)上,讨论摆脱软件危机的办法,软件工程作为一个概念首次被提出。
软件工程包括个要素,即方法、工具和过程。
313软件工程过程与软件生命周期 (P52—P53)
2软件生命周期
通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。
314软件工程的目标与原则(P53—P54)
1 软件工程的目标
软件工程内容主要包括:软件开发技术和软件工程管理。
315软件开发工具与软件开发环境 (P54)
1 软件开发工具 (VB、VC++、VFP)
2 软件开发环境
软件开发环境或称软件工程环境是全面支持软件开发全过程的软件工具集合。
计算机辅助软件工程(CASE)
32结构化分析方法
321需求分析与需求分析方法 (P53—P59)
1 需求分析
(1) 需求分析阶段的工作
需求分析阶段的工作,可以概括为四个方面:
① 需求获取
② 需求分析
③ 编写需求规格说明书
④ 需求评审
2 需求分析方法
常见的需求分析方法有:
① 结构化分析方法。主要包括:面向数据流的结构化分析方法(SA)面向数据结构的Jackson方法(JSD)面向数据结构的结构化数据系统开发方法(DSSD)
② 面向对象的分析方法(OOA)
322结构化分析方法 (P55—P59)
2结构化分析的常用工具
(1) 数据流图(DFD)
(2) 数据字典(DD)
数据字典是结构化分析方法的核心。
(3) 判定树
(4) 判定表
323软件需求规格说明书 (P59—P60)
软件规格说明书(SRS)是需求分析阶段的最后成果,是软件开发中的重要文档。
软件需求规格说明书的作用是:
① 便于用户、开发人员进行理解和交流。
② 反映出用户问题的结构,可以作为软件开发工作的基础和依据
③ 作为确认测试和验收的依据。
33结构化设计方法
331软件设计基本概念 (P60—P62)
1软件设计的基础
软件设计分两步完成:概要设计和详细设计。
2软件设计的基本原理
(1) 抽象
(2) 模块化
(3) 信息隐蔽
(4) 模块独立性
模块独立程度是评价设计好坏的重要度量标准。衡量软件的模块独立软件的模块独立性使用耦合性和内聚性两个定性的度量标准。
① 内聚性:内聚性是一个模块内部各个元素间彼此结合的紧密程度的度量。
② 耦合性:耦合性是模块间互相连接的紧密程度的度量。
耦合性与内聚性是模块独立性的两个定性标准,耦合与内聚是相互关联的。在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚,低耦合。
333详细设计 (P67—P71)
几种主要的工具:
1 程序流程图(PFD)
2 N-S (盒图)
3 PAD图 PAD图是问题分析图(Problem Analysis Diagram)的英文缩写。
4 PDL
过程设计语言(PDL)也称为结构化的英语和伪码。
34软件测试
软件测试的投入,通常其工作量、成本占软件开发总工作量、总成本的40%以上。
软件测试是保证软件质量的重要手段,其主要过程涵盖了整个软件生命期的过程。
341软件测试的目的 (P71)
关于软件测试的目的,软件测试是为了发现错误而执行程序的过程。
343软件测试技术与方法综述(P71—P77)
可以分为静态测试和动态测试方法。若按照功能划分可以分为白盒测试和黑盒测试方法。
1 静态测试与动态测试
(1) 静态测试
静态测试可以由人工进行,充分发挥人的逻辑思维优势。
(2) 动态测试
静态测试不实际运行软件,主要通过人工进行。动态测试是基于计算机的测试,是为了发现错误而执行程序的过程。
2 白盒测试
白盒测试方法也称结构测试或逻辑驱动测试。
3 黑盒测试方法
黑盒测试方法也称功能测试或数据驱动测试。黑盒测试是对软件已经实现的功能是否满足需求进行测试和验证。黑盒测试完全不考虑程序内部和逻辑结构和内部特性。
344软件测试的实施(P77—P80)
软件测试是保证软件质量的重要手段。
软件测试过程一般按4个步骤进行,
1 单元测试
单元测试是对软件设计的最小单位——模块(程序单元)进行正确性检验的测试。
2 集成测试
集成测试是测试和组装软件的过程。
3 确认测试
4 系统测试
35程序的调试
351基本概念 (P80—P81)
程序调试的任务是诊断和改正程序中的错误。它与软件测试不同,软件测试是尽可能多地发现软件中的错误。
软件测试贯穿整个软件生命期,调试主要在开发阶段。
352软件调试方法 (P81—P82)
1 强行排错法
2 回溯法
3 原因排除法
第4章 数据库设计基础 (P84—P111)
41数据库系统的基本概念
411数据、数据库、数据库管理系统 (P84—P87)
1 数据
数据(Data)实际上就是描述事物的符号记录。
2 数据库
数据库(简称DB)是数据的集合。
3 数据库管理系统
数据库管理系统(简称DBMS)它是一种软件。
数据库管理系统是数据库系统的核心。
目前流行的DBMS均为关系数据库系统,如微软的Visual FoxPro和Access等。
4 数据库管理员(简称DBA)
5 数据库系统
数据库系统(简称DBS)由如下几部分组成:数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、系统平台之一____硬件平台(硬件)、系统平台之二——软件平台(软件)这五个部分构成了一个以数据库为核心的完整的运行实体,称为数据库系统。
412数据库系统的发展 (P87—P88)
数据管理发展至今已经历了三个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。
1 关系数据库系统阶段
数据管理三个阶段的比较
人工管理 文件系统 数据库系统
特点 数据共享程度 无共享
冗余度大 共享性差
冗余度大 共享性大
冗余度小
数据独立性 不独立,完全依赖于程序 独立性差 具有高度的物理独立性和一定的逻辑独立性
413数据库系统的基本特点 (P88—P890
数据库系统具有以下特点:
1 数据的集成性
2 数据的高共享性与低冗余性
3 数据独立性
数据独立性是数据与程序间的互不依赖性,数据独立性一般分为物理独立性与逻辑独立性两级。
(1) 物理独立性:物理独立性即是数据的物理结构的改变,从而不致引起应用程序的变化。
(2) 逻辑独立性:数据库总体逻辑结构的改变,不需要相应修改应用程序,这就是数据 的逻辑独立性。
4 数据统一管理与控制
414数据库系统的内部结构体系 (P89—P91)
1 数据库系统的三级模式
(1) 概念模式。概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户(应用)公共数据视图。
(2) 外模式。外模式也称子模式或用户模式。它是用户的数据视图。
(3) 内模式。内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法。
2 数据库系统的两级映射
(1) 概念模式到内模式的映射。
(2) 外模式到概念模式的映射。
42数据模型
421数据模型的基本概念 (P91)
数据模型按不同的应用层次分成三种类型,它们是概念数据模型、逻辑模型、物理数据模型,
概念模型有E-R模型、逻辑数据模型又称数据模型,
层次模型、网状模型、关系模型,
物理数据模型又称物理模型。
122 E-R模型 (P91—P95)
概念模型是E-R模型(或实体联系模型)
1E-R模型的基本概念
(1)实体
现实世界中的事物可以抽象成为实体
(2)属性
现实世界均有一些特性,这些特性可以用属性来表示。属性刻画了实体的特征。
(3)联系
一对一的联系,简记为1:1。
一对多或多对一联系,简记为1:M(1:m)或M:1(m:1)。
多对多联系,简高为M:N或m:n。
3E-R模型的图示法
在E-R图中用椭圆形表示属性。
在E-R图中用菱形表示联系。
423层次模型的基本结构是树形结构 (P95)
424网状模型 (P95—P96)
网状模型是一个不加任何条件限制的无向图。
425关系模型 (P96—P98)
1关系的数据结构
关系模型采用二维表来表示。
43关系代数
(4)查询
① 投影运算
② 选择运算
③ 笛卡尔积运算
则关系R与S经笛卡尔积记为R×S。
3关系代数中的扩充运算
(1)交运算 (还有并和差)
关系R与S经交运算后所得到的关系是由那些既在R内又在S内的有序组成,记为R∩S。
(2)除运算
如果将笛卡尔积运算看作乘运算的话,那么除运算就是它的运算。
T÷R=S或R/R=S
44数据库设计与管理
数据库设计是数据库应用核心。
441数据库设计概述 (P104)
整个数据库应用系统的开发成目标独立的若干阶段。它们是:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段。
442数据库设计的需求分析 (P104—P105)
443数据库概念设计 (画E-R图) (P105—P108)
444数据库的逻辑设计 (P108—P109)
1 从E-R图向关系模式转换。
445数据库的物理设计 (P110)循环队列是将顺序队列首尾相连形成的,随着插入元素或删除元素的进行,其队头指针及队尾指针是在不断变化的,有时可能会出现队头指针大于队尾指针的情况,也可能是队尾指针大于队头指针。
二级真题到处都是啊,书店啊,学校图书馆,网上随便搜一下就有了。
祝你顺利通过二级。1、算法
问题处理方案的正确而完整的描述称为算法。算法分析的目的是,分析算法的效率以求改进。算法的基本特征是可行性、确定性、有穷性和拥有足够情报。
算法的有穷性是指:算法程序的运行时间是有限的。
算法的复杂度是衡量算法好坏的度量,分为时间复杂度和空间复杂度。
时间复杂度是指执行算法所需要的计算工作量;算法的空间复杂度是指算法执行过程中所需的存储空间。
算法时间复杂度或空间复杂度中的一项的值,没有办法推出另一项的值。
2、数据结构
索引属于存储结构(物理结构)。循环队列属于存储结构。
数据的存储结构又称为物理结构,是数据的逻辑结构在计算机存储空间中的存放形式。
一个逻辑结构可以有多种存储结构,且各种存储结构影响数据处理的效率。程序执行的效率与数据的存储结构密切相关。
数据结构分为线性结构和非线性结构,带链的队列属于线性结构。
线性表的存储结构主要分为顺序存储结构和链式存储结构。顺序存储结构的存储一定是连续的,链式存储的存储空间不一定是连续的。
有序线性表既可以采用顺序存储结构,也可以采用链式存储结构。
队列是一种特殊的线性表,循环队列按照先进先出原则组织数据。循环队列是队列的顺序存储结构。
数据的独立性分为物理独立性和逻辑独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序可以不用修改,称为物理独立性。
3、栈和队列
栈是一种特殊的线性表,是只能在一端进行插入和删除的线性表,特点是先进后出
栈是先进后出的线性表;栈具有记忆作用;对栈的插入与删除 *** 作中,不需要改变栈底指针。假定让元素1、2、3、A、B依次入栈,则出栈的顺序是:B、A、3、2、1。
栈与队列都是线性结构,树是非线性结构。支持子程序调用的数据结构是栈。
栈与队列的共同点是,都只允许在端点处插入和删除元素。
栈只能顺序存储的描述是错误的。栈可以有顺序和链式两种存储方式。
队列是允许在一段插入,在另一端进行删除的线性表,其特点是先进先出。
循环队列中元素的个数是由队头指针和队尾指针共同决定。循环队列的头指针为front,尾指针为rear,容量为maxSize,则循环队列中元素的个数是 (rear-front+maxSize) mod maxSize。
4、线性链表
线性链表是线性表的链式存储结构。用链表表示线性表的优点是便于插入和删除 *** 作。
线性链表的存储空间不一定连续,且个元素的存储顺序是任意的。
5、树与二叉树
在树结构中,一个结点所拥有的后件(继)的个数称为该结点的度,所有结点中最大的度称为树的度。二叉树各结点的度只可能取值0、1、2,不可能是其它值。换言之,知道了度为1结点数量的前提下,叶子结点或度为2的结点中知道其一,就可以求出总的结点数。
上述的计算公式,关键要能够应用,例如,深度为7的满二叉树,度为2的结点数量是多少?既然是满二叉树,叶子结点的数量就是第7层的结点数量,也就是26,可以算出叶子结点为64,因此度为2的结点数是63(叶子结点数减去1)。
二叉树的前序遍历、中序遍历、后续遍历:前中后三个词是相对于根来讲的,前序是根-->左-->右,中序是左-->根-->右,后续是左-->右-->根。具体 *** 作为:
先序遍历(D L R): 访问根结点,按先序遍历左子树,按先序遍历右子树。
中序遍历(L D R): 按中序遍历左子树,访问根结点,按中序遍历右子树。
后序遍历(L R D): 按后序遍历左子树,按后序遍历右子树,访问根结点。
下面以中序遍历为例,来讲解实际的解题方法:对一棵树,将根结点下的左子树用一个椭圆圈起来,右子树也用一个椭圆圈起来。之后,在左子树上标记上1,在根结点标记上2,在右子树上标记上3。对在左边椭圆内的左子树,现在把它单独拿出来分析。把它的左子树圈起来标上11,根结点标记上12,右子树标上13。按照上述方法依次往下,直到树不能拆分,然后按照“左-->根--->右”的顺序写出结点的访问先后即可。
6、查找技术
对于长度为n的线性表,顺序查找最坏情况下需要比较n次。(对数据是否有序没有要求)。◆ 顺序查找最好情况下查询次数是1,最坏情况下是n,平均为(1+n)/2。
对于长度为n的有序线性表,二分法最坏情况下只需要比较log2n次。(数据必须有序)
能用二分法进行查找的是顺序存储的有序线性表。
7、排序技术
对于长度为n的线性表,冒泡排序、快速排序、简单插入排序、简单选择排序这四种排序方式在最坏情况下的比较次数相同,都是n(n-1)/2。堆排序的效率最高,是nlog2n。★★ 希尔排序最坏情况下需要次比较n15。希尔排序属于插入类排序法。
已知数据表A中每个元素距最终位置不远,为节省时间,应该采用的算法是直接插入排序。选择排序、插入排序、快速排序、归并排序中对内存要求最大的是归并排序。
第二部分 软件工程基础
1、软件工程基本概念
软件是包括程序、数据及相关文档的完整集合,软件是一种逻辑产品。软件工程三要素包括方法、工具和过程,其中过程支持软件开发的各个环节的控制和管理。
软件工程的核心思想:把软件产品当作是一个工程产品来处理,强调在软件开发过程中应用工程化原则。
从工程管理角度,软件设计一般分为两步完成,它们是概要设计和详细设计。
软件生命周期可分为多个阶段,一般分为定义阶段、开发阶段和维护阶段,编码和测试属于开发阶段。
需求分析阶段产生的主要文档是软件需求规格说明书。软件需求的规格说明书应该有完整性、无歧义性、正确性、可验证性、可修改性等特征,其中最重要的是正确性。
2、结构化分析与设计
需求分析的分发有:结构化需求分析方法,面向对象的分析方法。DFD是需求分析阶段可以使用的工具之一。
结构化分析的常用工具:数据流图(DFD);数据字典;判定树;判定表。
在结构化分析使用数据流图(DFD)时候,利用数据字典对其中的图形元素进行确切的解释。数据字典是结构化分析的核心。
典型的数据流类型有两种,交换性和事务型。
常见的过程设计工具有:图形工具(程序流程图、N-S,PAD,HIPO)、表格工具(判定表)、语言工具(PDL伪码)。
内聚性是模块内部的联系,耦合性模块之间的相互联系的紧密程度。
追求目标是:模块的内聚程度要高,模块间的耦合程度要尽量弱。即高内聚低耦合。
程序流程图中带有箭头的线段表示的是控制流。平行四边形代表输入输出,矩形代表处理,菱形代表判断(注意,数据流图中的箭头,代表数据流)。
符合结构化原则的三种基本控制结构是:顺序结构,选择结构和循环结构。
3、软件测试与维护
软件测试的目的是尽可能多的发现程序中的错误,但是不包括改正错误。(软件调试的目的才是改正错误)
软件测试分为静态测试和动态测试,其中静态测试是指不执行程序,只对程序文本进行检查。软件的动态测试主要包括黑盒测试和白盒测试。
黑盒测试的方法有等价类划分法,边界值分析法,错误推测法,因果图;白盒测试主要方法有逻辑覆盖、基本路径测试。(考试时给出一种方法的名字,你要知道属于白盒还是黑盒)
白盒测试的原则之一是保证所测模块的每一个独立路径至少要执行一次。白盒测试将程序看做是路径的集合。
软件测试一般按照四个步骤进行:单元测试,集成测试,验收测试和系统测试。集成测试应该在单元测试之后进行。
在模块测试中,需要为每个被测试的模块设计驱动模块和承接模块。其中,驱动模块的作用是将测试的数据传给被测试的模块,并显示结果。
测试用例是为某个目标而编制的一组测试输入、执行条件及预期结果。测试用例包括输入值集和输出值集。
诊断和改正程序中的错误称为程序调试(或软件调试),通常也称为Debug。软件调试可分为静态调试和动态调试。
在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程称为软件维护。注意软件维护不属于软件生命周期开发阶段的任务。
第三部分 数据库设计基础 (历年比例24%)
1、数据库系统基本概念
数据库设计的根本目标是要解决数据共享问题。在数据库管理技术发展的三个阶段中,数据共享最好的是数据库系统阶段。数据独立性最高的阶段是数据库系统阶段。
数据库系统与文件系统的区别是前者具有特定的数据模型。
数据库系统常见的数据模型有层次模型,网络模型和关系模型。
数据库系统的核心是数据库管理系统。
DBS包括DB和DBMS。完整讲,数据库系统DBS由数据库DB、数据库管理系统DBMS、数据库管理员DBA、硬件平台和软件平台组成。
数据库应用系统的核心是数据库维护。
形式;概念模式处于中层,它放映了设计者的数据全局逻辑要求,与软硬件环境无关;
外模式处于最外层,它反映了用户对数据的要求。
在数据库系统中,用户所见的数据模式为外模式。
数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和物理设计。将E-R图转换成关系数据模型属于逻辑设计阶段。
数据库管理系统提供的数据语言:数据定义语言DDL,数据 *** 纵语言DML,数据控制语言DCL。SQL的全称是Structured Query Language,中文意思是结构化查询语言。
2、数据模型
实体之间的联系用树形结构来表示的模型是层次模型。采用二维表来表示的是关系模型。在关系数据库中,把数据表示成二维表,每一个二维表称为关系。
在关系数据库中,用来表示实体之间联系的是关系。
将E-R图转化为关系模式时,实体和联系都可以表示为关系。
确定两个实体之间是一对一、一对多、还是多对多的方法是:选择实体A,看是否有多个实体B与之对应;选择实体B,看是否有多个实体A与之对应。例如在“学生学习课程”中的两个实体,学生与课程,一个学生可以学习多门课程,一门课程可以被多个学生学习,所以二者是一种多对多的关系。
在E-R 图中,用来表示实体的图形是矩形。用来表示属性的图形是椭圆。用菱形来表示联系。
一个关系表的行称为元组(或记录),列称为属性(或字段)。
在二维表中,元组的分量不能再分为更小的数据线。
为了建立一个关系,首先要构造数据的逻辑关系。
3、关系代数
在交、差、投影中,不改变关系表中的属性个数但是能减少元组个数的是交运算。
关系运算的规则(下面介绍的7种运算,考试的时候一般会考察一种,都要背)
(1)并运算R∪S:并运算是两个表行上的合并,重复的行只出现一次。
(2)交运算R∩S:交运算是选出两个表中的公共行。
(3)差运算R-S:差运算是从表R中,删除R与S中都出现过的行。
(4)选择运算:选出二维表部分的行称为选择运算。
(5)投影运算:选出二维表部分的列称为投影运算。
(6)连接运算:根据两个表的共同属性的值,将它们连接起来,无需去除共同属性。如果去掉了重复属性,就称为自然连接。
(7)笛卡尔乘积:将关系R中的每一行依次与关系S中的每一行进行排列组合。
注意:除了选择运算和投影运算 *** 作的是单个表之外,其余的元算都需要两个表(两个关系)。其中,并运算、交运算和差运算要求两个关系R与S要具有相同个数的属性。
第四部分 程序设计基础
程序设计总体原则:清晰第一、效率第二。
良好程序风格包括:源程序要文档化,数据说明的次序要规范化,避免滥用goto语句。
结构化程序设计的核心是算法,面向对象的核心是对象(类)。
结构化程序设计的基本原则是:自顶向下、逐步求精、模块化、限制使用Goto语句。
类是一组具有相同属性和相同 *** 作的对象的集合。面向对象模型中,最基本的概念是对象和类。在面向对象方法中,类的实例称为对象,实现信息隐藏是通过对象的封装。
继承提高了软件的可重用性。
对象是属性和方法的封装体,对象间的通讯靠消息传递, *** 作是对象的动态性属性。
第一套
(1) 下面叙述正确的是______。(C)
A 算法的执行效率与数据的存储结构无关
B 算法的空间复杂度是指算法程序中指令(或语句)的条数(指的是算法所占用的空间)
C 算法的有穷性是指算法必须能在执行有限个步骤之后终止
D 以上三种描述都不对
(2) 以下数据结构中不属于线性数据结构的是______。(C)
A 队列
B 线性表
C 二叉树
D 栈
(3) 在一棵二叉树上第5层的结点数最多是______。(B)2n-1
A 8
B 16
C 32
D 15
(4) 下面描述中,符合结构化程序设计风格的是______。(A)
A 使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑
B 模块只有一个入口,可以有多个出口(可以有0个入口)
C 注重提高程序的执行效率
D 不使用goto语句(只是限制使用)
(5) 下面概念中,不属于面向对象方法的是______。(D)
A 对象
B 继承
C 类
D 过程调用
(6) 在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是______。(B)
A 可行性分析 B 需求分析C 详细设计D 程序编码
(7) 在软件开发中,下面任务不属于设计阶段的是______。(D)
A 数据结构设计
B 给出系统模块结构
C 定义模块算法
D 定义需求并建立系统模型
(8) 数据库系统的核心是______。(B)
A 数据模型
B 数据库管理系统
C 软件工具
D 数据库
(9) 下列叙述中正确的是______。(C)
A 数据库是一个独立的系统,不需要 *** 作系统的支持
B 数据库设计是指设计数据库管理系统
C 数据库技术的根本目标是要解决数据共享的问题
D 数据库系统中,数据的物理结构必须与逻辑结构一致
(10) 下列模式中,能够给出数据库物理存储结构与物理存取方法的是______。(A)
A 内模式 B 外模式 C 概念模式D 逻辑模式
第二套
(1) 算法的时间复杂度是指______。(C)
A 执行算法程序所需要的时间
B 算法程序的长度
C 算法执行过程中所需要的基本运算次数
D 算法程序中的指令条数
(2) 下列叙述中正确的是______。(A)
A 线性表是线性结构
B 栈与队列是非线性结构
C 线性链表是非线性结构
D 二叉树是线性结构
(3) 设一棵完全二叉树共有699个结点,则在该二叉树中的叶子结点数为______。(B)
A 349
B 350
C 255
D 351
(4) 结构化程序设计主要强调的是______。(B)
A 程序的规模
B 程序的易读性
C 程序的执行效率
D 程序的可移植性
(5) 在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是______。(D)
A 概要设计
B 详细设计
C 可行性分析
D 需求分析
(6) 数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是______。(A)
A 控制流
B 加工
C 数据存储
D 源和潭
(7) 软件需求分析阶段的工作,可以分为四个方面:需求获取、需求分析、编写需求规格说明书以及______。(B)
A 阶段性报告
B 需求评审
C 总结
D 都不正确
(8) 下述关于数据库系统的叙述中正确的是______。(A)
A 数据库系统减少了数据冗余
B 数据库系统避免了一切冗余
C 数据库系统中数据的一致性是指数据类型的一致
D 数据库系统比文件系统能管理更多的数据
(9) 关系表中的每一横行称为一个______。(A)
A 元组
B 字段
C 属性
D 码
(10) 数据库设计包括两个方面的设计内容,它们是______。(A)
A 概念设计和逻辑设计
B 模式设计和内模式设计
C 内模式设计和物理设计
D 结构特性设计和行为特性设计1软件是指程序、数据与相关文档的完整集合。
2软件调试的任务是诊断和改正程序中的错误。
3对象的封装性是指从外部看只能看到对象的外部特征,即只需知道数据的取值范围和可以对数据施加的 *** 作,哦不需要知道数据的具体结构以及实现 *** 作的算法。即在面向对象方法中,实现信息隐蔽是依靠对象的封装性。(也可以是模块独立性)
4程序设计总体而言应该强调简单和清晰,程序必须是可以理解的(这是程序设计所要强调的),著名的“清晰第一,效率第二”的论点已成为当今主导的程序设计风格。
5数据库技术的根本目标是要解决数据的共享问题。
6为了建立一个关系,首先要构造数据的逻辑关系。
7在Access中,查询的数据源可以是表和查询。
8在查询设计视图中,如果条件写在同一行,意味着条件之间是“与”的关系;在不同行意味着条件之间是“或”的关系。(性别=“女” and身高>160) or 性别=“男”,也就是身高在160以上的女性和所有的男性满足此条件。
9将数据库数据发布到网上,可以通过数据访问页发布。
10宏 *** 作SetValue可以设置窗体或报表控件的属性。
11使用Function语句定义一个函数过程,其返回值的类型由函数定义时As子句声明。
12ByRef指传址调用,ByVal指传值调用。
13软件需求规格说明书应具有完整性、无歧义性、正确性、可验证性等特性,其中最重要的是无歧义性。
线性表的存储结构主要分为顺序存储结构和链式存储结构。队列是一种特殊的线性表,循环队列是队列的顺序存储结构。同时也是线性表
14用于执行指定SQL语句的宏 *** 作是RunSQL语句。
15在VBA中,我们应该记住常用数据类型的标识如:整型integer、单精度型single、双精度型double、字符串型string
1实现算法所需要的存储单元的多少称为空间复杂度。
2软件工程包括3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理和文档生成;过程支持软件开发的各个环节的控制、管理。
3用链表表示线性表的优点是便于插入和删除 *** 作。
4数据流图的主要图形元素有4中:(1)加工(2)数据流(3)存储文件(4)源和潭。流程图的是控制流,
5检查软件产品是否符合需求定义的过程称为验收测试。
6数据库管理员(DBA)是数据库系统的一个重要组成部分,DBA的主要工作有3种,(1)数据库设计(2)数据库维护(3)改善系统性能,提高系统效率。
7Access中字段名长度为1-64个字符,但不能包含“!”。
8空值(NULL)不同于空字符串和0,它代表未知或者不确定的值,Access使用NULL来表示空值。
9每个日期/时间字段需要8个字节的存储空间。
10我们在设计字段的时候可以使用输入掩码来使得输入的格式标准保持一致,输入掩码中的字符""代表可以选择输入字母(A-Z);"&"代表必须输入任何的字符或一个空格;"<"将所有字符转换为小写;">"将所有字符转换为大写。
11在窗体上每一个控件都是一个对象,都具有三要素就是属性、事件和方法。事件是控件可以响应的动作,KeyPress事件当焦点在控件上并且按下键盘上某个键时被触发。
12不但可以显示一条或多条记录,也可以显示一对多关系的"多"端的多条记录的区域的报表是纵栏式报表。
13可以用前面加(=)的表达式来设置宏的 *** 作参数。
14Case语句的后面可以包含一个值、一组枚举值、一个值得范围以及比较运算符。但是当Case语句使用is关键字的时候就不能再加入逻辑运算符,如and
15在面向对象方法中,信息隐蔽是通过对象的封装性来实现的。
16某二叉树中度为2的结点有18个,则该二叉树中有19个叶子结点。
17在VBA中,打开查询的命令格式(语句)为:DoCmdOpenQuery查询名。打开窗体使用DoCmdOpenForm;打开报表使用DoCmdOpenReport;关闭窗体和报表使用DoCmdClose。
1结构化程序设计主要强调的是程序的易读性。
2程序的3种基本控制结构包括顺序、选择和重复(循环)。
3希尔排序是将整个无序的序列分割成若干个小的子序列分别进行插入排序。
4在数据库设计过程中,独立于计算机的硬件与DBMS软件的设计阶段是概念设计。
5在文本型的字段中可以由用户指定长度,在Access中一个汉字和一个英文字符长度都占1位。
6是/否型是针对只包含两种不同取值的字段而设置的,又常被称布尔型。
7在SQL查询中可直接将命令发送到ODBC数据库服务器中的查询是传递查询。
8在SELECT语句中,“\”的含义是定义转义字符。
9如果加载一个窗体,窗体能响应的事件不多,当窗体刚打开时,首先触发
Load事件,打开后才继续触发Open事件,然后是Activate(激活)事件。窗体关闭时触发Unload事件。
10在宏的组成 *** 作序列中,如果既包含带条件的 *** 作,又包含无条件的 *** 作,则带条件的 *** 作是否执行取决于条件式结果的真假,则没有指定条件的 *** 作则会无条件执行。
11Select case结构运行时首先计算表达式的值,然后依此计算或测试Case表达式的值。
12WhileWend是一个循环结构,selectcaseEnd select是一个多分支结构。
13常用的软件结构设计工具是结构图(sc),也称程序结构图。其中,用矩形表示模块,用带空心圆的箭头表示传递的是数据。
14度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为45次n(n-)/2
15在结构化分析方法中,用于描述系统中所有用到的全部数据和文件的文档称为数据字典。
16在一个容量为24的循环队列中,若头指针front=8,尾指针rear=3,则该循环队列中共有19个元素。
解:设队列容量为m,rear>front,\则队列中元素个数为rear-front;rear<front则队列中元素个数为m+(rear-front)本题rear<front,则m=24+(3-8)=19
17在SQL的Select命令中用order by短语对查询的结果进行排序。
18在报表设计中,可以通过添加分页符控件来控制另起一页输出显示。
19一般用于存放供其他Access数据库对象使用的公共过程称为标准模块。
20二分法查找只适用于顺序存储的有序线性表,对于顺序存储的非有序线性表和线性链表,都只能采用顺序查找。二分法查找仅限于这样的表:表中的数据元素必须有序,其存储结构必须是顺序方式存储。
2将两个关系拼接成一个新的关系,生成的新关系中包含满足条件的元组,这种 *** 作称为连接。
3ForNext循环一般是用来给数组元素顺序赋值。
4算法分析的目的是为了在原有的基础上,对算法进行改进,从而提高对数据的处理效率。
5线性链表中的各元素在存储空间的位置不一定是连续的,且各元素的存储顺序也是任意的。
6线性表常采用的两种存储结构是顺序存储结构和链式存储结构。
在Access的表中,可以定义三种类型的主关键字:自动编号主键,单字段主键和多字段主键。
7条件查询的准则是运算符、常量、字段值、函数等的任意组合,不包括SOL语句。
8数据访问页可以简单认为是一个网页,类型是HTML文件,是独立于Access数据库文件的,
9在条件宏设计时,对于连续重复的条件,可以用来代替的符号是。
10VBA程序流程控制的方式有顺序控制、选择控制和循环控制。
11在VBA中,允许逻辑值进行算术运算,True处理成-1,False处理成0
12数据库技术的发展经历了人工管理、文件系统和数据库系统3个阶段,其中数据独立性最高的是 数据库系统。
13宏是一个或多个 *** 作命令的集合。
14在一个容量为8的循环队列中,若头指针front=1,尾指针rear=7,则该循环队列中共有6个元素。
解:设队列容量为m,rear>front,则队列中元素个数为rear-front;rear<front,则队列中元素个数为m+(rear-front)本题rear>front则m=7-1=6
15标准模块以函数过程以(Function开头)和子过程(以Sub开头)为单元存储
数据库基础知识
1.信息系统:一个由人、计算机等组成的能进行信息的收集、传递、储存、加工、维护、分析、计划、控制、决策和使用的系统。(核心为数据库)2.计算机数据管理3阶段:人工管理阶段、文件系统阶段、数据库系统阶段
3.数据库系统的组成:数据:是信息的符号化,数据库系统的工作对象,数据库数据称为‘存储数据’、‘工作数据’或‘ *** 作数据’,数据库中的存储数据时‘集成的’‘共享的’。
数据元素:数据的基本单位
数据对象:性质相同的数据元素的集合,是数据的一个子集
3类用户:终端用户—联机用户、最终用户(从计算机联机终端存取数据库的人员);应用程序员—系统开发员(负责设计和编制应用程序的人员);数据库管理员—DBA全面负责数据库系统的管理维护和正常使用的人员。
软件:数据库管理系统DBMS {Date Base Management System}
硬件——
4.数据库管理系统:
主要功能—数据库定义、数据库存取、数据库运行管理、数据库建立和维护、数据通信
组成—数据定义语言(DDL)、数据 *** 纵语言(DML)、数据控制语言(DCL)、实用程序
5.数据模型:
(1)概念模型:是对客观事物及其联系的抽象,用于信息世界的建模,它强调其予以表达能力,以及能够较方便、直接地表达应用中各种语意知识,按用户的观点对数据和信息建模
主要概念——实体、属性、关键字、域、实体型、实体集、联系、一对一联系、一对多联系、多对多联系
概念模型表示方法:E-R图(实体联系法)。主要成分—实体、联系、属性
(2)数据模型:分为层次、关系、网状模型,之间的根本区别在于数据之间的不同。关系模型用‘二维表’;层次模型用‘树结构’;网状模型用‘图结构’。
层次与网状模型是早期的数据模型,称为格式化数据模型
6.层次模型:最早使用的模型,一棵有向树。
特征:有且仅有一个结点没有双亲,为根结点;其它结点有且仅有一个双亲
每个结点描述一个实体型,称为记录类型;一个记录类型可以有多个记录值,简称记录;画层次模型可用无向边代替有向边
7.网状模型:两个或两个以上的结点都可以有多个双亲结点,有向树变成有向图
特征:可以有一个以上的结点没有双亲;至少有一个结点可以有多于一个双亲
8.关系模型:其数据结构是一个‘二维表框架’组成的集合,每个二维表称为‘关系’。
基本 *** 作:插入、删除、修改、查询
一、关系数据库
关系
元组:表中一行为一个元组,对应存储文件中的一个记录值
属性:表中的列称为属性,属性值相当于记录中的数据项或者字段值
域:属性的取值范围,即不同元组对同一个属性的值所限定的范围
关系模式:对关系的描述
候选关键字:属性或属性组合,其值能够唯一的标识一个元组
关键字:能够唯一标识一个元组属性或属性的组合,不能去重复值
外关键字:如果一个关系中的属性或属性组并非该关系的关键字,但它是另外一个关系的关键字
全关键字:关系模型的所有属性组诗这个关系模型的候选关键字,称为全关键字
2.关系运算:
选择(筛选):从关系中选出满足给定条件的记录的 *** 作,从行的角度
投影:从一个关系中选出若干指定字段的值的 *** 作,从列的角度
联接:把两个关系中的记录按一定的条件横向结合,生成一个新的关系(常用自然联接)
二、数据库设计
1.需求分析(最重要):收集资料、分析整理、数据流图、用户确认
2.概念结构设计:目标是产生整体数据库概念结构,即概念模式。工具E-R图
3.逻辑结构设计
4.物理结构设计
5.数据库实施:建立数据库结构、数据载入、应用程序的编写和载入、数据库试运行
6.数据库运行维护
三、ACCESS的基本对象
由数据库对象和组两部分组成
对象分为:表、查询、窗体、报表、数据访问页、宏、模块
第一章 数据结构与算法
一、算法:指解决某个问题的方法
1.特性:有穷性、确定性、可行性、有输入、有输出
2.基本要素:1数据对象的运算和 *** 作—算术运算、逻辑运算、关系运算、数据传输;2算法的控制结构—算法中各 *** 作之间的执行顺序,一个算法一般用顺序、选择、循环三种基本控制结构组成。
3.算法的复杂度
1时间复杂度:执行算法所需要的计算工作量,用算法在执行过程中所需的基本运算次数来衡量
2空间复杂度:执行这个算法所需要的内存空间。即算法程序所占空间、初始输入数据所占的存储空间、以及算法执行过程中所需的额外空间
二、数据结构:
反映数据元素之间关系的数据集合的表示,即带有结构的数据之间的前后件关系(相互有关联的数据元素的集合)
三方面问题:
1数据的逻辑结构:从逻辑关系上描述数据,与数据在计算机中的存储位置无关
2数据的存储结构:
数据元素及其关系在计算机存储器内的表示。分为4种:顺序存储方式、链式存储方式、索引存储方式、散列式存储方式
3数据运算:查找、读取、插入、删除、更新
三、线性结构与非线性结构(非空数据结构)
1.线性结构:有且仅有一个根结点;每一个结点最多有一个前件,也最多有一个后件。
一个线性表中插入或删除任何一个结点后还是线性结构。
2.线性表的链式存储结构称为线性链表(坐指针指向前件结点,右指针指向后件结点称为双向链表)
3.带链的栈可以用来收集计算机存储空间中所有空闲的存储点,称为可利用栈
4.链式存储结构中,存储数据结构的存储空间可以不连续,个数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系式由指针域来确定的
四、栈
是限定仅在表尾进行插入和删除 *** 作的线性表。
表尾端为栈顶,栈顶元素总是最后被插入的元素,也是最先能被删除的元素。
栈的修改原则:‘先进后出’‘后进先出’
栈的顺序存储结构:Top=0栈空
栈的基本运算:入栈(有上溢错误)、出栈、读栈顶元素(栈顶指针不变,栈顶指针为0说明栈空,读不到栈顶元素)、初始化、置空、判断栈是佛为空或满、提取栈顶元素等。
五、队列
是限定仅在表的一端进行插入,而在表的另一端删除数据元素的线性表。(先进先出)
允许插入的一端——队尾
基本运算:入队、退队
队列的顺序存储结构:循环队列,初始状态为空
六、查找
顺序查找:在线性表中查找指定的元素
二分法查找:只适用于顺序存储的有序表即要求线性表中的结点必须按照关键字值的递增或递减顺序排列
七、树
1.一种简单的非线性结构,所有数据元素之间的关系具有明显的层次性,是N个结点的集合
2.特点:每层平均的结点数为树的度,每一个结点的度最大为2,当一个结点既没有左子树也没有右子树时该结点为叶子结点。
非空二叉树只有一个根结点;每一个结点最多有两棵子树,且分别称为该结点的左子树和右子树
3.第K层上最多有2k-1(k≥1)个结点;
深度为m的二叉树最多有2m-1个结点;
任意一棵二叉树,度为0的结点(叶子结点)总是比度为2的结点多一个
具有n个结点的二叉树,其深度至少为[log2n]+1
4.父节点:每个结点最多只有一个直接前驱(前件)
根结点:没有直接前驱的结点只有一个为树根
子结点:每一个结点可以有多个后件
5.满二叉树也是完全二叉树,而完全二叉树一般不是满二叉树
前序遍历:根结点、左子树、右子树
中序遍历:左子树、根结点、右子树
后序遍历:左子树、右子树、根结点
八、排序法
1.冒泡排序法和快速排序法都属于交换类排序法
2.冒泡排序法的平均执行时间为:n2
快速排序法平均执行时间为:nlog2n
第二章 程序设计基础
一、程序设计风格:
(1)源程序文档化:标识符的命名、程序的注释—序言性注释与功能性注释、程序的视觉组织
(2)数据说明 (3)语句输出 (4)输入输出
二、结构化程序设计主要原则:
自顶向下、逐步求精、模块化、严格控制goto语句
三、面向对象的基本概念:
对象、类和属性 方法 继承 多态性 消息
1.对象:对象的 *** 作也称为方法或服务;属性即对象所包含的信息; *** 作描述了对象的功能。对象特性——标识唯一性、分类性、封装性、模块独立性
2.类与实例:类是具有共同属性、共同方法的对象的集合,它描述了属于该对象类型的所有对象的性质,一个对象则是其对应类的一个实例。
3.消息:是实例之间传递的信息
4.同样的信息被不同对象接收时可导致完全不同的行动
第三章 软件工程基础
一、软件工程
是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序
1.3个要素:方法、工具、过程
2.基本原则:抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性、可验证性
3.核心思想:把软件产品看做是一个过程产品来处理
4.软件生命周期:软件产品从提出、实现、使用维护到停止使用退役的过程
包括:可行性研究与计划制定、需求分析、软件设计、软件实现、软件测试、运行和维护
软件设计——结构设计(定义软件系统各部件之间的关系)、数据设计(将分析时查创建的模型转化为数据结构的定义)、接口设计(描述软件内部、软件和协作系统之间以及软件与人之间如何通信)、过程设计(把系统结构部分转换为软件过程描述)
5.软件设计基本原理:抽象、模块化、信息隐蔽、模块独立性
在程序结构中,各模块的内聚性越强,则耦合性越弱。软件设计应该尽量做到高内聚、低耦合,有利于提高模块独立性。
二、结构化分析方法:适用于分析大型的数据处理系统
1.是一种建模技术,模型的核心是数据字典,3种图:1实体关系图ERD,描述数据对象及数据对象之间的关系,用于数据建模;2数据流图DFD,用于功能建模;3状态迁移图STD,用于行为建模
2.三个主要目标:描述客户的需要、建立创建软件设计的基础、定义在软件完成后可以被确认的一组需求
三、数据流图
是描述信息流和数据从输入移动到输出时背应用变换的图形化技术。是一种图形化的系统模型,表示信息系统的主要需求
实现信息抽象、实现信息隐藏
两种:变换型 事务型
基本元素:外部实体、数据流、过程、数据存储
四、数据字典
是关于数据的信息的集合,对数据流图中各个元素做完整的定义与说明,是数据流图的补充工具;数据流图和数据字典共同构成系统的逻辑模型。
包含:名称、别名何处/如何使用、内容描述、补充信息
五、软件需求规格说明书
引言、任务概述、数据描述、功能要求、性能需求、其他要求、其他要求、附录
六、结构化设计
采用最佳的可能方法设计系统的各个组成部分以及各成分之间的内部联系的技术
两步:1概要设计(总体设计):将软件需求转化为数据结构和软件的系统结构;2详细结构(过程设计):通过对结构表示进行细化,得到软件详细的数据结构和算法
七、计算机辅助设计CAD
计算机辅助过程CAE
计算机辅助软件过程CASE
八、1.软件测试四个步骤:单元测试(静态分析或动态测试)、集成测试、验收测试、系统测试。
软件测试是尽可能多的发现软件中的错误。贯穿整个软件生命周期
2.开发阶段,软件调试,诊断和改正程序中的错误
第四章 数据库设计基础
1.数据库:长期存储在计算机内的、有组织的、可共享的数据集合。数据库是由一个互相关联的数据的集合和一组用以访问这些数据的程序组成
数据库中存储的基本对象
2.数据库管理系统功能
数据模式定义、数据存取的物理构建、数据 *** 纵、数据的完整性安全性定义与检查、数据库的并发控制与故障恢复、数据的服务
3.数据库系统的基本特点
数据的集成性、数据的高共享性与低冗余性、数据的独立性、数据的统一管理与控制
4.数据库系统的内部结构体系
1三级模式:概念模式、外模式、内模式
内模式处于最底层,它反映了数据在计算机物理结构中的实际存储形式;概念模式处于中间层,它反映了设计者的数据全局逻辑要求;外模式处于最外层,它反映了用户对数据的要求
2两级映射:概念模式到内模式的映射、外模式到概念模式的映射
5.数据模型用来抽象、表示和处理现实世界中的数据和信息。
两个阶段:把现实世界的客观抽象为概念模型;把概念模型抽象为某一DBMS支持的数据模型
内容:数据结构、数据 *** 作、数据约束
6.E-R图的三个要素:实体、实体的属性、实体之间的联系
7.数据的完整性:实体、参照、用户定义完整性
8.概念模式:也也称逻辑模式,是对数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图,一个数据库只有一个概念模式
9.外模式:也称子模式,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述数据库用户的数据视图。一个概念模式可以有若干个外模式
10.内模式:又称物理模式给出了数据物理存储结构与物理存取方法
11.数据库应用系统的7个部分:应用系统、应用开发工具软件、数据库管理系统、 *** 作系统、硬件
12.数据库设计方法:面向数据、面向过程
13.数据库设计前四个阶段的成果:需求说明书、概念数据模型、逻辑数据模型、数据库内模式
1.串的长度是指串中的字符个数,其字符个数可以为零
2.对象的基本特点:标识唯一性\分类性\多态性\封装性和模块独立性
3.软件危机:泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题(成本、质量、生产率等)
4.SQL语句中创建用CREATE,删除用DROP,改变用ALTER
5.数据库系统(DBS)包括数据库(DB)和数据库管理系统(DBMS)
6.DBMS是位于用户与 *** 作系统之间的数据库管理系统,属于OS支持下的系统文件
7.如果某条记录的某个字段尚未存储数据,则称该记录的这个字段为空值。空值表示该值还没有确定。空值与空字符串的含义不同
8.顺序表可以随机访问任意一个结点,而链表必须从第一个数据结点出发时,逐一查找每个结点
9.如果线性表为无序表,则不管是顺序存储结构还是链式存储结构,只能用顺序查找;即使是有序线性表,如果采用链式存储结构,也只能用顺序查找
10.顺序查找不成功时和给定关键字比较的次数为n+1(较大);二分法查找不成功的关键字比较次数为[log2n]+1(较小)
11.问题处理方案的正确而完整的描述称为:算法
12.树的结点数等于所有结点的度与对应的结点个数乘积之和加1;叶子结点树等于树节点总数减去度不为0的结点数之和
13.二分法查找的存储结构仅限于顺序存储结构且是有序的
14.20世纪70年代提出了结构化程序设计
15.类与对象的关系是抽象与具体
16.继承是使用已有的类的定义作为基础建立新类定义技术。
17.集成测试时要进行接口测试、全局数据结构测试、边界条件测试、非法输入测试
18.程序调试的任务:诊断和改正程序中的错误(开发阶段)
19.程序调试的基本步骤:错误定位、修改设计和代码以排除错误、进行回归测试防止引进新的错误
20.软件设计是把一个软件需求转换为软件表示的过程。是确定系统的物理模型。基本目标是用比较抽象概括的方式确定目标系统如何完成预定任务。
21.模块化:是指把一个待开发的软件分解成若干简单的部分
22.数据流图的4中符号:数据存储(双杠)、数据原点(方框)和终点、数据流向(箭头)、数据加工(圆或者椭圆)
23.顺序存储结构:存储密度大、插入删除元素按 *** 作不方便、逻辑上相邻的结点物理上必须相邻、可以通过计算机直接确定第一个节点的存储地址
24.N个单向链表需要至少N+1个指针单元
25.对象:代表着正在创建的系统中的一个实体、对象之间的信息传递是通过消息进行的、对象是一个状态和 *** 作的封装体
26.内聚程度最弱的为:偶然性内聚
数据处理的中心:数据管理
VBA中定义常量用:Const
运行宏时按照:从上到下的顺序
预览主/子报表时,子报表页面页眉中的标签:不显示
SetWarning:关闭或打开系统消息的宏命令
注释分为:功能性、序言性
使用“自动创建”查ungjiand报表只包括:主体区
参数传递方法:按值、按址
通配符:
通配任意个数的字符
?通配任何单个字符
[]通配方括号内任何单个字符
!通配任何不在括号内的字符
#通配任何单个数字字符一、选择题(每题2分,共计70分)
1(1)下列数据结构中,属于非线性结构的是
A)循环队列
B)带链队列
C)二叉树
D)带链栈
A B C D
2
(2)下列数据结构中,能够按照“先进后出”原则存取数据的是
A)循环队列
B)栈
C)队列
D)二叉树
A B C D
3
(3)对于循环队列,下列叙述中正确的是
A)队头指针是固定不变的
B)队头指针一定大于队尾指针
C)队头指针一定小于队尾指针
D)队头指针可以大于队尾指针,也可以小于队尾指针
A B C D
4
(4)算法的空间复杂度是指
A)算法在执行过程中所需要的计算机存储空间
B)算法所处理的数据量
C)算法程序中的语句或指令条数
D)算法在执行过程中所需要的临时工作单元数
A B C D
5
(5)软件设计中划分模块的一个准则是
A)低内聚低耦合
B)高内聚低耦合
C)低内聚高耦合
D)高内聚高耦合
A B C D
6
(6)下列选项中不属于结构化程序设计原则的是
A)可封装
B)自顶向下
C)模块化
D)逐步求精
A B C D
7(7)软件详细设计产生的图如下:
该图是
A)N-S图
B)PAD图
C)程序流程图
D)E-R图
A B C D
8
(8)数据库管理系统是
A) *** 作系统的一部分
B)在 *** 作系统支持下的系统软件
C)一种编译系统
D)一种 *** 作系统
A B C D
9
(9)在E-R图中,用来表示实体联系的图形是
A)椭圆形
B)矩形
C)菱形
D)三角形
A B C D
10(10)有三个关系R,S,和T如下:
其中关系T由关系R和S通过某种 *** 作得到,该 *** 作为
A)选择
B)投影
C)交
D)并
A B C D
11(11)以下叙述中正确的是
A)程序设计的任务就是编写程序代码并上机调试
B)程序设计的任务就是确定所用的数据结构
C)程序设计的任务就是确定所用算法
D)以上三种说法都不完整
A B C D
12(12)以下选项中,能用作用户标识符的是
A)void
B)8_8
C)_0_
D)unsigned
A B C D
13(13)阅读以下程序
#include <stdioh>
main()
{ int case; float printF;
printf("请输入2个数:");
scanf("%d %f",&case,&printF);
printf("%d %f\n",case,printf);
}
该程序在编译时产生错误,其出错原因是
A)定义语句出错,case是关键字,不能用作用户自定义标识符
B)定义语句出错,printF不能用作用户自定义标识符
C)定义语句无错,scanf不能作为输入函数使用
D)定义语句无措,printf不能输出case的值
A B C D
14(14)表达式:(int)((double)9/2)-(9)%2的值是
A)0
B)3
C)4
D)5
A B C D
15(15)若有定义语句: int x=10;,则表达式x-=x+x的值为
A)-20
B)-10
C)0
D)10
A B C D
16(16)有以下程序
#include <stdioh>
main()
{ int a=1,b=0;
printf("%d,",b=a+b);
printf("%d",a=2b);
}
程序运行后的输出结果是
A)0,0
B)1,0
C)3,2
D)1,2
A B C D
17(17)设有定义: int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是
A)if(a>b) c=a,a=b,b=c;
B)if(a>b){c=a,a=b,b=c;}
C)if(a>b) c=a;a=b;b=c;
D)if(a>b){c=a;a=b;b=c;}
A B C D
18(18)有以下程序
#include <stdioh>
main()
{ int c=0,k;
for(k=1;k<3;k++)
switch(k)
{ default:c+=k;
case 2:c++;break;
case 4:c+=2;break;
}
printf("%d\n",c);
}
程序运行后的输出结果是
A)3
B)5
C)7
D)9
A B C D
19(19)以下程序段中,与语句: k=a>b(b>c1:0):0;功能相同的是
A)if((a>b)&&(b>c)) k=1;
else k=0;
B)if((a>b)||(b>c)) k=1;
else k=0;
C)if(a<=b)k=0;
else if(b<=c) k=1;
D) if(a>b) k=1;
else if(b>c) k=1;
else k=0;
A B C D
20(20)有以下程序
#include <stdioh>
main()
{ char s[]={"012xy"};int i,n=0;
for(i=0;s[i]!=0;i++)
if(s[i]>'a'&&s[i]<='z') n++;
printf("%d\n",n);
}
程序运行后的输出结果是
A)0
B)2
C)3
D)5
A B C D
21
(21)有以下程序
#include <stdioh>
main()
{ int n=2,k=0;
while(k++&&n++>2);
printf("%d %d\n",k,n);
}
程序运行后的输出结果是
A)0 2
B)1 3
C)5 7
D)1 2
A B C D
22
(22)有以下定义语句,编译时会出现编译错误的是
A) char a='a';
B) char a='\n';
C) char a='aa';
D) char a='\x2d';
A B C D
23
(23)有以下程序
#include <stdioh>
main()
{ char c1,c2;
c1='A'+'8'-'4';
c2='A'+'8'-'5';
printf("%c,%d\n",c1,c2);
}
已知字母A的ASCII码为65,程序运行后的输出结果是
A)E,68
B)D,69
C)E,D
D)输出无定值
A B C D
24
(24)有以下程序
#include <stdioh>
void fun(int p)
{ int d=2;
p=d++;
printf("%d",p);
}
main()
{ int a=1;
fun(a);
printf("%d\n",a);
}
程序运行后的输出结果是
A)32
B)12
C)21
D)22
A B C D
25
(25)以下函数findmax拟实现在数组中查找最大值并作为函数值返回,
但程序中有错导致不能实现预定功能
#define MIN -2147463647
int findmax(int x[],int n)
{ int i,max;
for(i=0;i<n;i++)
{ max=MIN;
if(max<x[i]) max=x[i];
}
return max;
}
造成错误的原因是
A)定义语句int i,max中max未赋值
B)赋值语句max=MIN;中,不应该给max赋MIN值
C)语句if(max<x[i]) max=x[i];中判断条件设置错误
D)赋值语句max=MIN;放错了位置
A B C D
26
(26)有以下程序
#include <stdioh>
main()
{ int m=1,n=2,p=&m,q=&n,r;
r=p;p=q;q=r;
printf("%d,%d,%d,%d\n",m,n,p,q);
}
程序运行后的输出结果是
A)1,2,1,2
B)1,2,2,1
C)2,1,2,1
D)2,1,1,2
A B C D
27
(27)若有定义语句: int a[4][10],p,q[4];且0<=i<4,则错误的赋值是
A)p=a
B)q[i]=a[i]
C)p=a[i]
D)p=&a[2][1]
A B C D
28
(28)有以下程序
#include <stdioh>
#include <stringh>
main()
{ char str[][20]={"OneWorld","OneDream!"},p=str[1];
printf("%d,",strlen(p));
printf("%s\n",p);
}
程序运行后的输出结果是
A)9,OneWorld
B)9,OneDream!
C)10,OneDream!
D)10,OneWorld
A B C D
29
(29)有以下程序
#include <stdioh>
main()
{ int a[]={2,3,5,4},i;
for(i=0;i<4;i++)
switch(i%2)
{ case 0:
switch(a[i]%2)
{ case 0:a[i]++;break;
case 1:a[i]--;
} break;
case 1:a[i]=0;
}
for(i=0;i<4;i++)
printf("%d ",a[i]);
printf("\n");
}
程序运行后的输出结果是
A)3 3 4 4
B)2 0 5 0
C)3 0 4 0
D)0 3 0 4
A B C D
30
(30)有以下程序
#include <stdioh>
#include <stringh>
main()
{ char a[10]="abcd";
printf("%d,%d\n",strlen(a),sizeof(a));
}
程序运行后的输出结果是
A)7,4
B)4,10
C)8,8
D)10,10
A B C D
31
(31)下面是有关C语言字符数组的描述,其中错误的是
A)不可以用赋值语句给字符数组名赋字符串
B)可以用输入语句把字符串整体输入给字符数组
C)字符数组中的内容不一定是字符串
D)字符数组只能存放字符串
A B C D
32
(32)下列函数的功能是
fun(char a,char b)
{ while((b=a)!='\0'){a++;b++;} }
A)将a所指字符串赋给b所指空间
B)使指针b指向a所指字符串
C)将a所指字符串和b所指字符串进行比较
D)检查a和b所指字符串中是否有'\0'
A B C D
33
(33)设有以下函数:
void fun(int n,char s){……}
则下面对函数指针的定义和赋值均正确的是
A)void (pf)(); pf=fun;
B)void pf(); pf=fun;
C)void pf(); pf=fun;
D)void (pf)(int,char);pf=&fun;
A B C D
34(34)有以下程序
#include <stdioh>
int f(int n);
main()
{ int a=3,s;
s=f(a);s=s+f(a);printf("%d\n",s);
}
int f(int n)
{ static int a=1;
n+=a++;
return n;
}
程序运行后的输出结果是
A)7
B)8
C)9
D)10
A B C D
35
(35)有以下程序
#include <stdioh>
#define f(x) xxx
main()
{ int a=3,s,t;
s=f(a+1);t=f((a+1));
printf("%d,%d\n",s,t);
}
程序运行后的输出结果是
A)10,64
B)10,10
C)64,10
D)64,64
A B C D
36
(36)下面结构体的定义语句中,错误的是
A)struct ord {int x;int y;int z;};struct ord a;
B)struct ord {int x;int y;int z;} struct ord a;
C)struct ord {int x;int y;int z;} n;
D)struct {int x;int y;int z;} a;
A B C D
37(37)设有定义: char c;以下选项中能够使字符型指针C正确指向一个字符串的是
A) char str[]="string";c=str;
B) scanf("%s",c);
C) c=getchar();
D) c="string";
A B C D
38
(38)有以下程序
#include <stdioh>
#include <stringh>
struct A
{ int a;char b[10];double c;};
struct A f(struct A t);
main()
{ struct A a={1001,"ZhangDa",10980};
a=f(a); printf("%d,%s,%61f\n",aa,ab,ac);
}
struct A f(struct A t)
{ ta=1002;strcpy(tb,"ChangRong");tc=12020;return t;}
程序运行后的输出结果是
A)1001,ZhangDa,10980
B)1002,ZhangDa,12020
C)1001,ChangRong,10980
D)1002,ChangRong,12020
A B C D
39
(39)有以下程序
int r=8;
printf("%d\n",r>>1);
输出结果是
A)16
B)8
C)4
D)2
A B C D
40
(40)下列关于C语言文件的叙述中正确的是
A)文件由一系列数据一次排列组成,只能构成二进制文件
B)文件由结构序列组成,可以构成二进制文件或文本文件
C)文件由数据序列组成,可以构成二进制文件或文本文件
D)文件由字符序列组成,只能是文本文件
A B C D
二、填空题(每空2分,共计30分)
1(1)某二叉树有5个度为2的结点以及3个度为1的结点,则该二叉树中共有1个结点。
输入答案,中间不含空格:
2
(2)程序流程图中菱形框表示的是2
输入答案,中间不含空格:
3
(3)软件开发过程主要分为需求分析、设计、编码与测试四个阶段。其中3阶段
产生”软件需求规格说明书“。
输入答案,中间不含空格:
4
(4)在数据库技术中,实体集之间的联系可以是一对一或一对多或多对多的,那么”学生“
和"可选课程"的联系为4
输入答案,中间不含空格:
5
(5)人员基本信息一般包括:身份z号,姓名,性别,年龄等。其中可以作为主关键字的
是5
输入答案,中间不含空格:
6
(6)若有定义语句:int a=5;,则表达式a++的值是6。
输入答案,中间不含空格:
7
(7)若有语句double x=17;int y;,当执行y=(int)(x/5)%2;之后y的值是7
输入答案,中间不含空格:
8
(8)以下程序运行后的输出结果是8
#include <stdioh>
main()
{ int x=20;
printf("%d ",0<x<20);
printf("%d\n",0<x&&x<20);
}
输入答案,中间不含空格:
9
(9)以下程序运行后的输出结果是9
#include <stdioh>
main()
{ int a=1,b=7;
do{
b=b/2;a+=b;
} while (b>1);
printf("%d\n",a);
}
输入答案,中间不含空格:
10
(10)有一下程序
#include <stdioh>
main()
{ int f,f1,f2,i;
f1=0;f2=1;
printf("%d %d ",f1,f2);
for(i=3;i<=5;i++)
{ f=f1+f2; printf("%d",f);
f1=f2; f2=f;
}
printf("\n");
}
程序运行后的输出结果是10
输入答案,中间不含空格:
11
(11)有以下程序
#include <stdioh>
int a=5;
void fun(int b)
{ int a=10;
a+=b; printf("%d",a);
}
main()
{ int c=20;
fun(c); a+=c; printf("%d\n",a);
}
程序运行后的输出结果是11
输入答案,中间不含空格:
12
(12)设有定义
struct person
{ int ID;char name[12];} p;
请将scanf("%d",12);语句补充完整,使其能够为结构体变量p的
成员ID正确读入数据。
输入答案,中间不含空格:
13
(13)有以下程序
#include <stdioh>
main()
{ char a[20]="How are you",b[20];
scanf("%s",b); printf("%s %s\n",a,b);
}
程序运行时从键盘输入: How are you<回车>
则输出结果为13
输入答案,中间不含空格:
14
(14)有以下程序
#include <stdioh>
typedef struct
{ int num;double s;} REC;
void fun1(REC x){ xnum=23;xs=885; }
main()
{ REC a={16,900};
fun1(a);
printf("%d\n",anum);
}
输入答案,中间不含空格:
15
(15)有以下程序
#include <stdioh>
fun(int x)
{ if(x/2>0) fun(x/2);
printf("%d ",x);
}
main()
{ fun(6);printf("\n");}
程序运行后的输出结果是15
输入答案,中间不含空格:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)