2017全国计算机等级考试二级C语言知识点超全整(打印版).docx

2017全国计算机等级考试二级C语言知识点超全整(打印版).docx
2017全国计算机等级考试二级C语言知识点超全整(打印版).docx

全国计算机等级考试

目录

第-部分公共基础知识

第1章算法与数据结构 (1)

考点1算法........................... I 考点2数据结构.. (1)

考点3线性表及英顺序存储结构 (1)

考点4栈和队列 (1)

考点5线性链表 (2)

考点6树与二叉树 (2)

考点7查找技术 (3)

考点8排序技术 (3)

第2章程序设计基础 (4)

考点I程序设计方法与风格 (4)

考点2结构化程序设计 (5)

考点3面向对象的程序设计 (5)

第3章软件工程基础 (5)

考点1软件工程基本概念 (5)

考点2软件分析方法 (6)

考点3结构化设计方法 (7)

考点4软件测试 (8)

考点5程用的调试 (9)

笫4帝数据库设计基础 (9)

考点1数据库系统的基本概念 (9)

考点2数据带系统的基木概念 (10)

考点3关系代数 (12)

考点4数据库设计与管理 (12)

第二部分二级C语言

笫1章程序设汁基本概念 (14)

考点1程序设计 (14)

考点2 C程序的结构和格式 (14)

考点3常鱼和变蛍 (14)

考点4算术表达式 (15)

考点5赋值表达式 (16)

考点6自加.口减和逗号运算 (16)

第2章顺疗结构 (17)

考点1字符型常屋与变虽 (17)

考点 2 putchar 与gclchar 函数 (17)

考点3 printf函数 (17)

考点4 scanf函数 (18)

考点5位运算的含义和应用 (18)

第3章选择结构 (19)

考点1关系运算符和关系表达式 (19)

考点2逻轉运算符和逻辑表达式 (19)

考点3 if语句及其构成的选择结构 (19)

考点4 switch语句与break语句 (20)

第4章循环结构 (20)

考点1 while循环结构 (20)

考点2 do-while循环结构 (21)

考点3 for循环结构 (21)

考点4嵌套循环语句 (21)

第5章函数 (21)

考点I库函数 (21)

考点2函数的调用 (22)

考点3参数传递 (22)

考点4函数的递归调用 (23)

考点5局部、全局变量和存储分类 (23)

第6章地址与指针 (23)

考点1变量的地址和指针 (23)

考点2抬针变量的操作 (24)

考点3函数之间地址的传递 (24)

第7章数组 (24)

考点1 一维数组的定义及元素的引用??24

考点2函数对-维数组及元素的引用??25

考点3二维数组的定义 (25)

考点4二维数组和指针 (25)

考点5二维数组名和指针数组作为实参???26 第8章字符串 (26)

考点|用-?维字符数组存放字符出? (26)

考点2使指针指向字符串 (26)

考点3字符串的输入和输出 (26)

考点4字符串数组 (27)

考点5用于字符串处理的函数 (27)

第9章编译预处理和动态存储分配 (27)

考点I編译预处理 (27)

考点2宏替换 (27)

考点3文件包含处理 (28)

考点4动态存储分配 (28)

第10章结构体.共用体和用戸定义类型28考点1结构体 (28)

考点2共用体 (29)

考点3用户定义类型 (29)

第11章文件 (29)

考点1文件指针 (29)

考点2文件的读写 (30)

第一部分公共基础知识

第1章算法与数据结构

考点1算法

1. 什么是算法

算法是指对解题方案的准确而完整的描述。

计算机程序本质上就是一个算法,它告诉计算机确切的步骤來执行一个指定的任务。

(1)算法的基本特征

i般来说,算法应具有:可行性.确定性、有穷性、拥冇足够的惜报这儿个特征。

(2)算法的组成要素

通常,一个算法曲两部分组成:一?是对数拯対象的运算和操作,二是算法的控制结构。

2. 算法的复杂度

算法的复杂度是算法规模的度童,一个算法的复杂度高低体现在运行该算法所需要的计算机诜源的女少,所需的资源越幺,就说明该算法的复杂度越乐反之,所需的资源越少,则该算袪的复杂度越低。算法复杂度包括算法的时间复杂度和算法的空间复杂度。

考点2数据结构

1. 数据结构的概念

所谓数据结构是指由某一数据对彖及该对象中所有数据成员乙间的关系组成的集合。成员Z 间的关系有很多种,最常见的是前后件关系。

2. 数据的逻辑结构

(1)逻辑结构的定义

数据的逻辑结构.是指反映数据Z间逻辑关系的数据结构。对于电脑上的数据而言,逻辑结构就是能够用眼睹看到的数据形式,包括在屏幕上看到的文木.图片.视频等。

(2)逻辑结构的分类

根据数据结构中各元素之间前后关系的复杂程度,将数据的逻辑结构分成线性结构和非线性结构。一个非空的线性结构如果满足以下两个条件:①冇且只冇一个根结点:②每一个结点最多有一个前件,也最多有一个后件。

3. 数据的存储结构

数据的存储结构也称为数据的物理结构,是指数据在计算机中存放的方式,包括数据元索的存储和关系的存储。通常,一种数据的逻辑结构根据需要可以表示成名种存储结构,常用的存储结构有顺序、链式存储结构。

考点3线性表及其顺序存储结构

1. 线性表的基本概念

线性表是由n个数据元索组成的冇限序列,是故简单、最常用的数据结构。其中的数据元素冇着广泛的含义,可以是一个单独的数字或字母,可以是矩阵中的一行或一列向量,也可以是二维表中的一条记录。线性表是一种线性结构。数拯元索在线性表中的位買,只収决于它们口己的序号,即数据元素Z间的相对位置是线性的。

2. 线性表的顺序存储结构

-?种数据的逻辑结构根据需要可以农示成多种存储结构。线性表的存储结构常用的是顺序存储,也称为顺序分配。线性农的顺序存储结构具有以下两个基本特点:①线性表中所有元索所占的存储空间是连续的;②线性农中各数据元素在存储空间中是按逻辑顺序依次存放的。

3 ?顺序表的插入

所们“顺序表”指的是使用顺序存储结构的线性表。在顺序表中插入一个新的数据元索,就像是在排队买票的时候进来了一个插队的人。

4 ?顺序表的删除

在顺序表屮删除-个数据元素,就像是在排队买票的时候其中的一个人离开了。在平均惜况下?要在线性表中删除一个元素,需耍移动线性表中-?半的数据元索。

考点4栈和队列

1. 栈及其基本运算

(1)什么是栈

栈是一种特殊的线性表。在这种特殊的线性

农中,其插入和删除运算都只能在线性表的一端

进行。一端是封闭的,不允许插入和删除数据尤素;另一端是敞开的,允许插入和删除数据元

素。

在栈中,允许插入和删除数据元素的-端称

为栈顶,而不允许插入和删除数据元素的一端称

为栈底。栈顶元索总会是被鼠后插入的元索,从

而也是最先被删除的元索;栈底元素总是最先被

插入的元素,从而也是最后才能彼删除的元素。

即栈足按照"先进后出”或“后进先出”的原则组织数据的。栈具冇记忆的功能,支持了程序的调用。通常用指针gp來指示栈顶位置,用指针bottom來指示栈底的位置。往栈中插入一个元素

称为入栈运算,从栈中删除-

个元素称为退栈运算。通过栈顶指针top来反反映栈屮元素的动态变化情况。

(2)栈的基木运算

栈的基本运算有3种:入栈、退栈与读栈顶元索。①入栈运算。入栈运算是指在栈顶位逍插入一个新元索。这个运算有两个基本操作:首先将栈顶指针进一(即lop加1),然后将新元素插入到栈顶指针指向的位買。②退栈运算。退栈运算是指取出栈顶元素并賦给指定的变臺。这个运算有两个基本操作:首先将栈顶元素赋值给一个指怎的变量,然后将栈顶指针退一(即top减1〉。③读栈顶元素。读栈顶元索是指将栈顶元素賦给一个指定的变量,但是不删除栈顶元索。因此,在这个运算中,栈顶指针不会改变。当栈顶指针为0时,说明栈空,读不到栈顶元索。

2. 队列及其基本运算

(1)什么是队列

队列是指允许在表的一端进行插入、而在另

一端进行删除的线性表。允许插入的一端称为队尾,通常用一个队尾指针(real-)指向队尾元素,

队尾指针总是指向最后被插入的元索;允许删除的-?端称为排头(也称为队头),通常也用一个排头指针(front)指向排头元素的前一个位So

(2)循环队列及其运算

队列的顺用存储结构-?般采用循环队列的形式。所谓的循环队列,就是将队列的存储空间的最后一个位買绕到第一个位買,形成逻辑上的环状空间,供队列循环使用。

①入队运算。入队运算是指在循坏队列的

队尾加入一个新元素。这个运算有两个基木操作:首先将队尾指针进一(即rear=rera+l),并当

rear-〃汁1时置rcar-1;然后将新元素插入到队尾指针指向的位置。②退队运算。退队运算是指在循环队列的排头位呂退出一个元素并赋值给指定的变呈。这个运算冇两个皋本操作:首先将III-头指针

进一(即front=fiont4-1 ),并当fi*ont=〃rH时览front=l;然片将^头指针指向的元素賦给指宦的变量。

考点5线性链表

1. 线性链表

(1)线性链表

线性表的链式〃储结构称为线性链表。在线

性链表中,存储空间上的每一个存储结点都要分成两部分:一部分用于存储数据元索的值,称为数拯域;另一部分用于存储该数据元素的存储序号(存储结点的地址,即指向后件结点),称为指针域。

(2)线性链表的查找

在非空的线性链表中查找指定元素的操作:

从头指针指向的结点开始往后沿着指针进行打描,如果找到要查找的内容.则查找成功:如果没有对

的要查找的元索,则查找失败。为了弥补线性单链表的这个缺点,对线性链表中的每个结点设買两个指针,一个称为左指针

(Llink),用以指向其前件结点;另一个称为右指

针(RIink),用來指向其后件结点。这样的线性表

称为双向链表。

(3)线性链表的插入

在向线性链表中插入一个新元索之前,我们

先要给该元索分配一个新结点,其中包括值域和指针域以便用于存储该元素的值。然厉找到插入位買,将插入位置前件的指针指向新结点, 将新接点

的指针指向插入位垃后件的结点。

(4)线性链衣的删除

要从线性农中删除」个元素,首先将要删除

元素的前后件两个指针断开,然后把要删除结点的前件的指针,指向删除结点后的数据元索。

2 ?循环链表

循坏链表与单链表唯-?的不同,就是最厉一个结点的指针域中的值不同。单链表的最后一个结点的指针域存放的是一个空指针,而循环链表的最后一个结点的指针域存放的是指向第个结点的指针。考点6树与二叉树

1. 树的基本概念

树是一种比较简单的非线型结构。在树中所

冇的数据元素Z间具冇明显的层次关系。Z所以将

这种数据结构命名为"树”,是因为其结构看上去像一棵倒长着的树。在树的图形表示中. 上端的结点

是前件,下端的结点是厉件。

2. 二叉树及基本性质

(I)二叉树

二叉树是一种特殊的树,是一种很冇用的非

线型结构。所冇树结构上的术语都可以川在二义树上。二叉树具有以卜'两个特征:①非空二叉树只

有一个根结点;②每个结点最多有两棵子树,

几分别称为该结点的左子树和右子树。在二.义树 中,每个结点的度最大为2,所有的左子树和右 子树

也均是二叉树。同时,在二叉树中所有的结 点可以

没冇左子树,也可以没冇右子树。即没冇 左子树又没有右子树的结点是叶子结点。

(2)满二叉树

所谓满二叉树足指:除扱后一层外,每一层 上

的所有结点都有两个子结点。这就是说■在满 二义

树中,每一层上的结点数都达到赧大值,即 满二叉

树的第k 层上有 步 个结点,且深度为m 的满二叉

树冇2m

-l 个结点。

(3〉完全二叉树

所谓的完全二叉树是指:除最后一层外, 侮

一层上的结点数均达到最大值,最后一层上 只缺少

右边的若干个结点。

完全二叉树就是去抻城后一层若干个右 边结

点的满二叉树。

(4)二叉树的基本性质

① 二叉树的基本性质。二叉树具冇以下几 个

基本性质:性质1:在二叉树的第K 层上最 多有2“ (^1)

个结点。性质2:深度为m 的二叉树垃多有2叫1个

结点。性质3:在任意 -棵一??义树中,叶子结点(即度为0的结点),总 比度为2的结点名一个。

性质4:具有"个结点 的二叉树,其深度至少为[log 2/:]+l fl

② 完全二叉树的两项特性。完全二叉树还 具有以下两项特性:性质5:具有〃个结点的 完全二叉树,其深度为[log 2n]+l 。性质6:设 完全二叉树共冇〃个结点。如果从根结点开始, 按层序(每一层从左到右)用口然数 2给结点进行编号。 3. 二叉树的遍历 三叉树的遍丿力是指按照一定的顺序访问 二叉树中的结点,每个结点只被访问一次。为 了保证所有结点彼不重不漏地访问?必须按照 一定的顺序进行。 (1)前序遍历(DLR ) 首先访问根结点,然厉遍历左子树,最斤遍 历右子树;在遍历左.右子树时,也按I 谜的顺序 执行。可见前序遍历二叉树是…个递川的过和 对于 二叉树的前序遍历,具有如下的规则:对于空的 二叉树,不进行操作返回空值。对于非空的二叉 树的遍〃j 按下列顺序执彳f :伽问根结点; ②前序遍历左子树:③前序遍历右子树。

(2) 中序遍历(LDR ) 首先遍历左子树,然后访问根结点,最后遍 历右子树:在遍历左、右子树时?也按上述的顺 序执

行。可见中序遍历二叉树也是…个递归的过 程。对于二叉树的中序遍历,具有的规则:①对 于空的二叉树,不进行操作返回空值。②对于非 空的二义树的

遍历按下列顺序执行:中序遍历左 子树;访问根结

点;中序遍历右子树°

(3) 后序遍历<LRD )

首先遍历左子树,然后遍历右子树,最后 访问根结点;在遍历左、右子树时,也按上述 的顺序执行。

可见片序遍历二叉树同样也是一 个递归的过程。对

于二叉树的后序遍场,具有 的规则:①对于空的二

叉树,不进行操作返回 空值。②对于非空的二叉树

的遍历按下列顺序 执行:后序遍历左子树;后序遍

历右子树;访 问根结点。

考点7查找技术

査找就是从给定的一个数据结构中,找出指

定的数据元索。木节中我们只学习对线性表的查找.

常用的査找方法冇顺序査找和分法査找。

1 ?顺序査找

顺序査找的过程是:从线性表的第一个元索 开始,依次将线性农中的数据与要查找的数掘进 行

比较,如果找到了相等的数据,则査找成功, 停止向下査找;如果比较完了线性表中的所有数 据元素,没有找到相等的数据,则查找失败。 2. 二分法查找 2分矗杳找又称为折半查找,只能应用于 顺序存储的冇序表。冇序表是指线性表中的元 素已经按值非递减(从整体上看趕升序,但相 邻的元素的值可以相同〉排列。

考点8排序技术 排序就是将一组无序的数据按照一定的顺 序排列起来。本节中所指的顺序是非递减顺序 (整体上呈升序,但相邻的数据可以相等),基 本排序算法主

要有交换类排序.插入类排序和 选择类排序3大类。 1. 交换类排序 交换排序就是借助数据元索之间的互相交 换进行排序的方法。常用的交换推序方法有冒 泡排序和快速排序。 (1)冒泡排序 诃泡排序的过程简单,它的基本思想是通

过对相邻元素进行比较,并根据比较的结果交换位呂,从而逐步由任总序列变为冇序序列。

过程是:先从头往后扫描、然后从后往头扫描、再重复上述过程

(2)快速排序

快速排序就是一种可以通过一次交换而消除多个逆序的排序方法,因此相对冒泡排序法而言,速度耍快。

2. 插入类排序

插入排序,就是将无序序列屮的各个元素依次插入到己经排好序的线性表屮。常用的插入排序的方法冇简单插入排序和希尔排序。

<1)简单插入排序

简单插入排序的方法是:在初始序列中,将只包含第1个元索的子序列看成是一个有序序列,然后从第2个元索起,依次将每个元索插入到前1个冇序子序列屮。

(2)希尔排序

希尔排序的基本思想是:将整个无序序列分割成若干个子序列,对每个子序列分别进行简单插入排序,最后再对全体元素进行一?次简单插入排序。与简单插入排序的子序列构成方式不同.希尔排序是将原序列中相隔某个增量h的元素构成一个子序列。在排序过程中逐步减少这个增星,最后当h减到1时,进行一次插入排贰排序就完成了。增戢用列一般取hj = n/2^^1,2,,0 [log2n]),其中刃为待排序序列的长度。希尔排序的效率与所选取的增量序列有关。通过希尔排序法对氏度为n的线性表进行排序,如果选取了上述增虽:序列,最坏情况下,需耍比较的次数为0(d

3. 选择类排序

常用的选择排序有两种,简单选择排序和堆排序。

(1)简单选择排序

简单选择排序的基本步骤是:

①在-?组n个数据中选择出最小值;②若它不是这组数据屮的第1个数据,则将它与这组数据中的第1个数据互换位置;③对剩下的子表采用同样的方法,玄到子表空为止。

(2)堆排序法

在学习堆排序之前,我们先来看一下堆的定义,堆的定义如下:

具冇n个元素的序列(h】,h2......... h n),

当且仅当满足

J hi n h2j

l/ii > Si 或

(/=!, 2, n/2)时称之为堆。

第2章程序设计基础

考点1程序设计方法与风格

程序是-?组计篦机指令的集合,是程序设计的系成果。程序谿十加撕娈做的工作是,姗倜实际问题进行抽彖和归纳以及对程序进行编排,才能使程序的可读性、稳疋氷可维^性、效率等更好。口前,主要冇两种程序没i十方法:结构化程序设计和面向对象程序设计。

1. 源程序文档化

①符号名的命名:符号名的命名应尽量表达一些实际意义,以增强程序的可读性。②程序注释:良好的注释能够帮助读者理解程序。注释一級分为序言性注释和功能性注释,以给出程序的整体说明和程序的主要功能?序言性注释一般位于每一个程序的开头部分,它给出程序的整体说明;功能性注释般恢在原程序之中。③视觉组织:为使程序的结构清晰明了,可以在程序中利用空行、空格、缩进等技巧使程序层次淸晰。

2. 数据说明的方法

在编写程序时,一定要注意数据说明的方法。为使程序中的数据说明易于理解和维护。3. 语句的结构

程序的语句应该简单易懂,在编写程序时,应

注重:每一行只写一条语句。程序编写优先考虑淸晰性。一般情况下,在编写程序时,要做到清晰第一,效率第二。首先要保证程序的止确性,然厉再提高速度。避免使用临时变量而使程序的可读性下降。尽可能使用库函数。避免不必耍的转移。利用信息隐蔽,保证每一个模块的独立性。避免使用复杂的条件嵌套语句。避免使用无条件转移语句。尽量做到模块功能单一化。不要修补不好的程/芯要重新编写。

4. 输入和输出

输入和输出的方式应尽可能方便用户的使用。系统能否让用户接受,往往取决于输入和输出的风格。

考点2结构化程序设计

1. 结构化程序设计的原则

结构化程序设计必须遵守模块化、口顶向下、逐步求粘、限制使用goto语句的原则。

2. 结构化程序设计的基本结构与特点

结构化程序设计方法是-?种程序设计的先进方法。实事证明,在程序设计时,只要使用3种程序结构就町以实现所有的结构形式,它们是顺用结构、选择结构和循环结构。

3. 结构化程序设计原则和方法的应用

结构化程序设计的效率较高,但是在实际设计程序时,应耍注意:使用程序设计语言中的顺序、选择、循环等冇限的控制结构表示程序的控制逻辑。选用的控制结构只允许有一个入口和一个出口。程序语句组成容易识别的语句序列块,每块只允许有一个入口和一个出口。复杂结构的程序设计时,仅用嵌套的棊本控制结构进行组合嵌套來实现。语言中所没有的控制结构,应采用前后…致的方法來模拟。严格控制goto语句的使用,但不是完全不能用。

考点3面向对象的程序设计

而向对彖方法,现在已经发展为一种主流的软件开发方法。它历经了名年的研究和发展,已经口益成熟和完善,应用也越来越深入和广泛。

1 ?面向对象方法的特点

而向対象的程序设计,是在结构化程序设计的基础上,以更接近人们通常思维的方式來解决问遜的-种全新的软件开发技术。

面向对彖的程序设计以对象为核心,强调対象的“封装性继承性”“抽象性”和“多态性” o其本质就是主弓纵客观壯界固冇的事物出发來构造系统,提但用人类在现实生活中常用的思维方法來认识、理解和描述客观事物。

2. 面向对彖方法的基本概念

(1) 对象(object)

血向对象方法认为:现实世界是由一系列的对象组成的。对猿是现实世界中彼此相关并互通信息的实体。每个对彖都包含了两部分的内容:描述対彖状态的数据和描述对彖行为。対象是而向対彖方法中最基本的概念。因此,面向对象方法中的对象是山描述该对象属性的数据以及可以对这些数据施加的所有操作封装在一起构成的整体。对象可以做的操作表示它的动态行为,在而向对象分析和面向对彖设计中,通常把对象的操

作也称为方法或服务。

(2) 类和实例

类定具有共同属性.共同方法的对象的集合,是关于对彖的抽象描述,反应属于该对彖类型的所冇对象的性质。

(3) 消息(Message)

消息传递是对象间通信的手段.一个对象通过向另一对象发送信息來请求其服务。消息机制统

一了数据流和控制流,一个消息由下述3部分组成:接收消息的对象名称.消息名. 零个或多个参数。

(4) 继承(Inheritance)

①类的继承:继承广义地说,是指能够直接获得已有的属性和待征,而不必重复地定义。②继承的传递性:继承具有传递性,如果类A继承类B?类B继承类C则类A继承类Co因此,一个类实际上继承了它上层的全部基类特性,也就是说,属于某类的对彖除了具有该类定义的特性外,还具有该类上层全祁基类定义的特性。单继承:一个子类只有唯一的一个父类,这种继承称为单继承。多重继承: 一个子类也可以冇女个父类,它可以从多个父类小继承特性。③继承的优点:相似的对象可以共孕程序代码和数据,从而大大减少了程序屮的冗余信息,提高软件的可重用性,便于软件修改维护。

(5) 多态性(Polymorphism)

多态性:对象根据所接收的消息而做出动作,同样的消息被不同的対彖接收时可导致完全不同的行为,该现象称为多态性。

第3章软件工程基础考点1软件工程

基本概念

1. 软件的定义与特点

(1)软件的定义

—般认为计算机软件是计算机系统中与硬件相互依存的另一部分,包括程序、数据及相关文档的完整集合。可见软件可分为两个部分:一是机器可执行的程序和数据;二是机器不可执行的,与软件开发、运行、维护、使用相关的文档。

(2)软件的特点

计算机软件具冇如下的几个特点:软件是一

种逻辑实体,而不是物理实体,具冇抽象性;

与腴件的生产不同,软件没有明显的制作过程; 软件在使用期间不存在僭损.老化问题:对硬件和环境具有依赖性:软件复杂度高,成本昂贵;软件开发涉及诸多的社会因素。

(3)软件的分类

计算机软件按功能可分为3类:应用软件、系统软件、支撐软件(或称为工具软件)。

2 ?软件危机和软件工程

软件工程概念的出现源口软件危机。

(1)软件危机

“软件危机”是20世纪60年代末以后出现的,其泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。实际上,儿乎所冇的炊件都不同程度地存在这些问题。

随着计算机技术的发展和应用领域的扩大,软件已经成为计算权住斗学发展的“瓶颈” o (2)软件工程

为了消除软件危机,通过认真研究软件危机的方法,认识到软件工程是使计算机软件走向丄程科学的途径,逐步形成了软件丄稈槪念,开辟了工程学的新兴领域一一软件工程学。它是采用工程的概念.原理.技术和方法來开发与维护软件,把经过时间考验而证明正确的管理技术与当前能够得到的最好的技术方法结合起來,经济地开发出高质塑的软件并有效地维护它。

3 ?软件工程过程与软件生命周期

(1)软件工程过程

ISO 9000定义:软件工程过程是指把输入转化为输出的一组彼此相关的资源和活动。

(2)软件生命周期

软件生命周期是指软件产品从提出、实现、使用维护到停止使用退役的整个过程。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的幣个时期部属于软件生命周期。- ?般包括可行性研究与需求分析.设计.实现.测试.交付使用以及维护等活动。这些阶段可以冇垂复,执行时也可以有迭代。

4. 软件工程的口标与原则

(1)软件工程的冃标

软件工程的fl标是:在给定成木.进度的前提下,开发出具有有效性.可靠性.可维护性、可重用性、可适应性、可移杭性、可追踪性和可互操作性」丄满足用户需求的产品。

为实现软件工程的忖标,软件工程的理论和技术性研究的内容主要包括软件开发技术和软件工程管理两个方面。

(2)软件工程的原则

为了达到上述的软件工程片标,在软件开发过程中.必须遵循以下软件工程的基本原则:抽象、确定性、模块化、信息隐蔽.局部化. 完备性、一致性、可验证性。

5. 软件开发工具与软件开发环境

软件工程技术鼓励研制和采用各种先进的软件幵炒法、工具耐:境。工具稱4;境的帆进?步提鬲了软件的开发效率.维护效率和软件质最(1)软件开发工具

软件开发工具的发展是从单项工具的开发逐步向集成工具发展的,软件开发工具为软件工程方法提供了白动的或半H动的软件支撑环境。

(2)软件开发环境

软件开发坏境或称软件工程环境是指全面支持软件开发全过程的软件工具的集合。计算机辅助软件工程(CASE)定当前软件开发环境中富有特色的研究工作和发展方向。

考点2软件分析方法

软件开发方法是指软件开发过程所遵循的方法和步骤,其冃的在于冇效地得到一些工作产品,即满足质最要求的程序和文档。软件开发方法包括分析方法、设计方法和程序设计方法。

1. 需求分析与需求分析方法

软件需求是指用户対冃标软件系统在功能、

行为.性能、设计约束等方面的期望。需求分析的任务是发现需求、求粘.建模和定义需求的过程。需求分析的U标是创建所需的数据模型、功能模型和控制模型。

(1)需求分析的定义

1997年IEEE软件工程标准词汇表对需求分析定义如下:

①用户解决问题或达到冃标所需的条件或功能:②系统或系统部件要满足合同、标准. 规范或其他正式规定文档所需具有的条件或功能;③种反映①或②所描述的条件或功能的文档说明。

(2)需求分析阶段的工作

需求分析阶段的工作主要分为4个方面:需求获取.需求分析.编写需求规格说明书.

盂求评审。 (3)需求分析方法 常用的需求分析方法有两种:①结构化分 析方法。主要包括:面向数据结构的Jackson 方法(JSD ),面向数据流的结构化分析方法 (SA ).面

向数据结构的结构化数据系统开发 力法

(DSSD )。②面向对象的分析方法(OOA )a 从需

求分析建立的模型的特性來分,需求分析 方法乂

分为静态分析方法和动态分析方法。

2. 结构化分析方法

(1) 结构化分析方法的基本概念

结构化分析方法是面向数据流.H 顶向.逐步

求橡 进行需求分析的方法 该方法使用简单易读符 蚣 根据软件内部数据传递、变换的关系,自顶向

卜; 逐层分解.描绘出满足要求的软件模型。

(2) 结构化分析的常用工具

结构化分析方法利用图形等结构化的描 述方式表达需求,简明易懂,用它们形成需求说 明书

中的主要部分。这种方法所用的常用工具冇: 数据流图、数据字典.判定树和判定表。

3 ?软件需求规格说明书

软件需求规格说明书(SRS )是需求分析 阶段得出的址主要的文档。它通常用自然语言 完整、准

确、具体地描述系统的数据要求、功 能需求.性能需求.可靠性和可用性要求.出 错处理需求、接口需求、

约束、逆向需求以及 将來可能捉出的耍求。

① 软件需求规格说明书的作用

软件需求规格说明书具有几个作用:便于 用户、开发人员进行理解和交流;反映出用户 问题

的结构,可以作为软件开发工作的基础和 依据;

作为确认测试和验收的依据。

② 软件需求规格说明书的内容

软件需求规格说明书是作为需求分析的亠部 分而制定的可交付文档。 ③ 软件需求规格说明书的特点 软件需求规格说明书是确保软件质量的 有力描施,衡呈软件需求规格说明书质量的标 准:止确性、无歧义性.完幣性.一致性.可 理解性.可验证性.可修改性和可追踪性。考 点3结构化设计方法 1 ?软件设计的基本概念 (1)软件设计的基础

软件设计是一个把软件盂求转化为软件 表示

的过程,是软件工程的朿要阶段。软件设 计的基

本冃标是用比较抽象.概拈的方式确定 LI 标系统如

何完成预定的任务,即软件设计是 确定系统的物理模型。 (2) 软件设计的基本原理 软件设计应遵循软件工程的基本L1标和原

则,建立适用于在软件设计中应该遵守的慕本 原

理和软件设计中的有关概念。 模块化、抽象、信息隐藏和局部化、模块 独立性。 (3) 结构化设计方法 结构化设计方法是口前采用故为广泛的一 种软件设计方法,其基本思想是将软件设计成 由郴

对独立.单一功能的模块组成的结构 2. 概耍设计 概要设计又称为总体设计或初步设计。软 件概要设计的基本任务是:

①设计软件的系统结构。在需求分析阶段, 己錄把系统分解成层次结构,而在概要设计阶段. 需

要进一步分解,划分为模块以及模块的层次结构 M 据结构及数据库设计。数据设计是实现需求定 义和规格说明过程I I I 提出的数据对象的逻辑表示C

写概耍设计文档。在概耍设计阶段.需要编写 的文档有:

概要设计说明书、数据库设计说明书、 集中测试计划等。 ④ 概要设计文档评审。在概要设计中,对 设计部分是否完整地实现了需求中规定的功能. 性能等要求,设计方案的可行性,关键的处理 及内外部

接口定义正确性、冇效性.各部分之 间的一致性等都要进行评审,以免在以后的设 计中出现大的问题而返工。 2. 概要设计工具 结构图(SC ),也称程序结构图,是描述 软件结构的图形工具,是常川的软件结构设计 工具。模

块用一个矩形表示,矩形内注明模块 的功能和名字;箭头或玄线表示模块间的调用 关系。在结构图中还可以用带注释的箭头衣示 模块调用过用中來回传递的信息。常用的结构 图有4种模块类型:传入模块、传岀模块、变 换模块和协调模块。 3. 面向数据流的设计方法

在需求分析阶段,主要是分析信息在系统 中

的加工和流动情况。面向数据流的设计方法 的目

标是给出设汁软件结构的一个系统化的

途径。

(1) 数据流类型。典塑的数据流类型有 两种:变换型利事务型。 (2) 面向数据流设计方法的实施要点与 设

计过程。

4?设计的准则

通过人呈设计实践证明?以下设计准则可以

借鉴为设计的指导和对软件结构图进行优化。

捉高模块独芷性、模块规模适中.深度、 宽

度、扇出和扇入适当、使模块的作用域在该 模块

的控制域内、应减少模块的接口和界面的 复杂性.设计成单入口.单出口的模块和设计 功能可预测的

模块。 3. 详细设计 訥细设计的任务就是为软件结构图中的 毎一个模块确定实现算法和局部数拯结构,用 某种选定的表达工具表示算法和数据结构的 细节。 常用的设计工具有以下儿种: (1)图形工具 ①用序流程图:用序流程图是软件过程的 设计

表示工具,表达直观.清晰,易于学习和 学握。②N

?S 图:N-S 图是用方框图来代替传 统的秸疔流程

图的技术。基本图形有5种。③ PAD 图:PAD 图即

问题分析图(Problem Analysis Diagram)o 它是继程序

流程图和方框 图之后,提出的又一种描述软件详细

设计的图 形工具。基本图形有5种。

<2)表格工具

用表格來描述处理动作及相应的各种条件或

描述输入、处理.输岀的过程。

(3) 语言工具

用与程用设讣语言很相近的伪码描述处理过

程的细也过程设计语言(PDL)也称为结构化的 英语

和伪码,它是一种混存语話采用英语的词汇和 结

构化程序设讯吾言的语法,类似编程语言。考点 4

软件测试

软件测试就是在软件投入运行之前,尽可 能

名地发现软件小的错误。它是对软件规格说 明.设

计和编码的最后复审。通常,软件测试 的工作“往

往占软件开发总工作駅的40%以上°

1. 软件测试的目的

软测试的U 的:测试是为了发现错逞而执 行

程序的过程:一个好的测试用例是指很可能 找到迄今为止尚耒发现的错误的用例;i 个成 功的测试是

发现了至今尚未发现的错误的测试: 测试是要以查

找错误为中心,而不是为了演示 软件的正确功能C 2. 软件测试的准则

要作好软件测试,必须设计有效的测试方 案

和好的测试用例C

3. 软件测试技术和方法

软件测试的方法是零种多样的.若从足否需 要执行被测软件的角度划分,可以分为静态测试 和动态测试;若按照功能划分,可以分为门盒测 试和黑盒测试。

(1) 静态测试与动态测试 ①静态测试:静态测试包括代码检查.静 态结构分析、代码质屋度量等。静态测试主耍 由人工进

行,充分发挥人的逻辑思维优势,也 可以借助软件工具自动进行。②动态测试:动 态测试是基于计算机的测试,是为了发现错误 而执行程序的过程C

(2) 白盒测试与测试用例设计 白盒测试的方法也称结构测试或逻辑测试。 它是根据软件的内部工作过程,检查内部成分, 以

确认毎种内部操作是否符合设计要求。白盒 测试

允许测试人员利用程序内部的逻辑结构及 有关信

息來设计和选择测试用例,对程序所有 的逻辑路

径进行测试。

① 逻辑覆盖测试。逻辑覆盖测试泛指以程序

内部的逻辑结构为基础的测试用例设汁书。从覆

盖源程序语句的详尽程度分析,大致有以下一些

不同的覆盖标准:语句覆盖、判定覆盖、条件覆

盖、判断■条件覆盖。

② 基本路径测试。基本路径测试的思想和

步骤是,根据软件过程性描述中的控制流程确 定

程序的环路复杂性度虽,用此度虽定义基木 路径

集合,并曲此导出…组测试用例对毎一条 独立执

行路径进行测试。

(3) 黑盒测试与测试用例设计

黑盒测试也称功能测试或数据驱动测试, 是

对软件己经实现的功能是否满足需求进行测 试和

验证。所以,黑盒测试的测试用例是根据 程序的

外部功能进行设计的,在软件接口处进 行,完成

功能验证。

4. 软件测试的实施

软件测试是保证软件质虽的重要乎段。为

使软件测试工作系统化,我们应制定测试流程。

所谓测试流程就是软件测试这个过程规定的程

序。

软件测试过程一般按4个步骤进行,即单元测试、集成测试、验收测试(确认测试〉和系统

测试。

考点5程序的调试

1. 基本概念

在对程用进行了成功的测试之.后将进入程

序调试(通常?称Debug,即排错〉。程序调试的任务是诊断和改正程序中的错误。

(1)程序训试的基本步骤

①m误定位:从错谋的外部表现形式入手,研究冇关部分的程序,确疋程序中出错位遏,找出错误的内在原因。改设计和代码,以押稼错误:排错是软件开发过程小一项艰苦的工作,这也决定了调试工作是一个具有很强技术性和技巧性的工作。③ 进行冋加则试,防止引进^的错误:勳以£fj曝露这个错谋的原始测试或某些有关测试.以认该错祝超否彼III除是否引进了新的错谋。

(2)程序调试的原则

调试活动由对程序中错误的定性、定位和排错两部分组成,因此调试原则也从确定错误的性质和位置时的注总事项和修改错視的原则两个方面考居。

2. 软件测试方法

调试的关键在丁?推断科I序内部的错误位置及原因。软件调试可以分为静态调试和动态调

试。软件测试中讨论的静态分析方法同样适用静

态调试。卿态调试主耍指通过人的思维来分析源

程序代码和押铢是主要的调试手段,而动态调试

杲辅助挣态调试的。11浚的调试方法有强行扌II

邻法、冋溯法和原因排除法。

第4章数据库设计基础考点1数据库

系统的基本概念

1. 数据.数据库、数据库管理系统

(1)数据

数据:描述事物的符号记录。

计算机中的数据一般分成两部分,其中一部分与程序仅冇短时间的交互关系,随着程序的结

束而消亡,这样的数据称为临时性数据. 一般存放在计算机内存中;而另一部分数拯则対系统起肴长期持久的作川,这样的数据称为持久性数据,- ?般存放在讣算机的长期存储设备(如硕盘)

中。数据廊系统中处理的就是这种持久性数据。

(2)数据库

数据库:数据库< DataBase? DB)是指长期存储在计算机内的.具有统一的结构形式. 可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具冇较小的兀余度、较高的数据独立性和易扩展性,并可为各种应用程序所共享。

(3)数据库管理系统

数据库管理系统:数据库管理系统(DataBase Management System> DBMS)是管理

数据库的机构,是一个系统软件.负责数据库中的

数据组织、数据操纵.数据维护、控制及保护和数

据服务等。数据库管理系统是数据库系统的核

心,其主要功能包括儿个方面:数据模式定义.数

拯存取的物理构建.数拯操纵.数据的完整性、安

全性定义与检查、数据库的并发控制与故障恢复

和数据的服务。

(4)数据库管理员

数据库管理员:对数据库的规划.设计、维护、监视等进行管理的人员,称为数拯库管理

员。其主要工作:数据瘁设计、数据库维护和改善

系统性能。

(5)数据库系统

数锯库系统(DBS〉是指引入数据库后的

计算机系统,一般由数据库、数据库管理系统、

应用系统、数据库管理员和用户构成。

(6)数据库应用系统

数据库应用系统(DBAS)是数据库系统再加上应用软件及应用界面这三者所组成,具体包

括:数拯库、数据库管理系统、数据库管理员、ii

更件平台.软件平台、应用软件、应用界面。

2. 数据库系统的发展

数拯管理发展到今经历了:人工管理.

文件系统和数拥库系统3个阶段。其中数拯独立

性城高的是数据库系统,这里的数据独立性指的

足数据廂和应用程序的相互独立。

(1)文件系统阶段

文件系统是数据库系统发展的初级阶段,它

提供了简单的数据共享和数据管理能力,但是它

无法提供完整统一的筲理和数据共亭的能力。

(2)层次与网状数据库系统阶段

从20世纪60年代末起,頁?正的数据库 系统——层次数据库与网状数据库开始发展, 它们为统一管理与共宇数据提供了大力支撑。 但是这两个系统也存在不足,主要是英脱胎与 文件系统,受文件的物理影响较大,对数据斥 使用带來的诸名不便,同时,此类系统的数据 模式构造緊琐不宜于推广。 <3)关系数据库系统阶段 关系数拯库系统结构简单.使用方便. 逻辑性强、物理性少。在数据库的储名新技术 中,下而3种是比较重要的:面向对象数据库 系统.矩识库系统和关系数据库系统的扩充。 3. 数据库系统的基本特点 数据库技术是在文件系统基础上发展产生 的,两者都以数据文件的形式组织数据,但由于 数据库系统在文件系统Z 上加入DBMS 对数据 进行管理,从而使得数据库系统具冇以下特点。 <1)数据的高集成性

数据庄系统的数据高集成性主要表现在 如下

儿个方面:

①在数据库系统屮采用统一的数据结构方 式,

如在数据库中采用二维表作为统一结构方 式。②在

数据库系统中按照笔个应用的需要组 织全局统一

的数据结构(即数据模式),数据模 式不仅可以建

立全局的数拯结构,还可以建立 数据间的语义联系,

从而构成一个内在紧密联 系的数据整体。③数据斥

系统屮的数据模式是 弟个应用共同的、全局的数据

结构,而每个应 用的数据则是全局结构中的一部分,

称为局部 结构(即视图),这种全局与局部的结构

模式构 成了数据瘁系统数据集成性的主要特征。

<2)数据的高共享性与低冗余性

曲于数据的集成性使得数据可为影个应 用所

共享。数据共享的使用大大减少数据冗 余,节约存

储空间。减少冗余性以避免数据的 不同出现是保证

系统一致性的基础。

(3) 数据鬲独立性

数拯独立性是指数拯与程序间的互不依 赖性,

是数据库中常用的术语。其包括数据的 物理独立性

和数据的逻辑独立性。

(4) 数据统一管理与控制

数拯库系统不仅为数据捉供髙度集成坏境,

同时它还为数据提佣蕖作功能,这主要包含以下 3

个方血:数据的完整性检查、数据的安全性保 护.并发控制。

4. 数据库系统的内部结构系统

数据库系统在其内部具有三级模式和二级 映射,三级模式分别是外模式.概念校式与内 模式。二级映射则分别是,外模式一概念模式 映射和槪念模式一内模式映射。这种三级模式 与二级映射构成了数据库系统内部的抽象结构 体系。

(1) 数据库系统的三级模式 数据模式是数据库系统屮数据结构的-?种 表

示形式,它具有不同的层次与结构方式: ①外模式也称子模式或用户模式。它能够 看见和使用局部数据的逻辑结构和特征的描述, 它是用户的数据视图,一个数据库可以冇多个 外模式。②

概念模式是数据府系统中全局数据 逻辑结构的描述,是全体用户(应用)公共数 据视图。一个数据库只有一个概念模式。 ③ 内模式又称物理模式,一个数据库只有一个内

模式。它是数据物理结构和存储方式的描述,是 数

据在数据库内部的表示方式。

(2) 数据库系统的两级映射

数据库系统的三级模式杲对数据的3个级 别

的抽象?它把数拯具体物理实现留给物理模 式,使

用户能逻辑地、抽象地处理数据,而不 必关心数据

在汁算机中的具体表示方式和存 储方式。

考点2数据库系统的基本概念

1. 数据模型的基本概念

数据模熨(Data Model )研究的就是数据 的

组织形式及方式。数据库是某个企业、组织 或部

门所涉及的数据的综合,它不仅要反映数 据木身

的内容,而H 耍反映数据Z 间的联系。

数拯模型通常山数拯结构、数拯操作和完 整

性约束3部分组成。

(1) 数据结构

数据结构是所研究的对彖类型的集合。数据

结构是対系统静态特征的描述。

(2) 数拯操作

数据操作是指对数据廂中各种对象的实例 允

许执行的操作的集合,包括操作及有关的操 作规

则。数据操作是对系统动态特征的描述。

(3) 数拯的约束条件

数据的约束条件是一组完整性规则的集合。

完幣性规则是给定的数据模熨中数据及其

联系所具有的约束和依存规则,用以限定符合数拯校型的数拯库状态以及状态的变化,以保证数据的正确、有效.相容。

2. 数据模型的分类

数据模型按不同的应用层次分成3种类型,它们是概念数据模型、逻辑数据模nt物理数据模型。

(1)概念数据模型

概念数据模型简称概念模熨,它是-?种而向客观世界.面向用户的模型;它与具体的数据斥管理系统无关,与具体的计算机平台无关。概念模型是整个数据模世的基础。

(2)逻辑数据模型

逻辑数拯模型乂称数据模里,它是」种而向数据库系统的模型,该模型着重于在数据库系统i级的实现。目前,数据库领域中最常用的逻辑数据模世有四种,分别为:层次模型.网状模型.关系模型和而向对彖模型。

(3)物理数据模型

物理数据模型又称物理模型.它是一种面向计算机物理表示的模型,此模型给出了数据模型在计算机上物理结构的表示。

3. E-R模型

概念模型是面向现实世界,它的出发点是有效和自然地模拟现实世界,给出数据的概念化结构。它的表示方法很多,其中最著名是E -R模型(或实体一联系模型人它于1976年[tl Peter Chen 首先提出。

(1)E?R模型的基木概念

①实体是客观存在并可相互区别的事物。实体可以是具体的人、爭、物,也可以是抽象的概念或联系。②屈性是实体所具有的某?特性。一个实体可曲若干个屈性來刻画。③码是能够唯一标识实体的屈性集。④加性的取值范棒I称为该属性的域。⑤用实体幺及其属性名集合來抽象和刻画同类实体,称为实体型。⑥同型实体的集合称为实体集。例如,全体学生就是一个实体集。

⑦在现实世界中,申物内部以及申物Z间是普遍联系的。在E-R模盘中,这些联系反映为实体内部的联系和实体Z间的联系。

(2)E?R模型的图形表示方法

E-R模型可以用-?种非常直观的图的形式表示,这种图称为E-R图。E-R图提供了表示实体集、屈性和联系的方法。

①实休型:用矩形表示,矩形框内写明实体名。

②屈性:用椭圆形表示,并用无向边将其与相应的实体连接起來。③联系:用菱形表示,菱形框内写明联系名,并用无向边将其与冇关实体连接起来,在无向边旁标上联系的类型(1 : 1, 1 : n 或m :n)<>

4. 层次模型

忌次模型是数据库系统中最早岀现的数据模型,层次数据库系统采用层次模型作为数据的组织方式。

5. 网状模型

在现实世界中事物Z间的联系更影的是非层次关系的.用层次模熨表示非树形结构是很不直接的,网状模型则可以克服这一弊病。网状数据库系统采用网状模型作为数据的组织方式。

网状模型是一种比层次模型更具普遍性的结构,它去掉了层次模型的两个限制,允许名个结点没有双亲结点,允许结点有多个双亲结点,此外它还允许两个结点之间有名种联系。

6. 关系模型

关系模型曲关系数据结构、关系操纵和关系

完整性约束3部分组成。

(1)关系的数据结构

关系模型的数据结构非常单一。在关系模型中, 现实世界的实体以及实体间的各种联系都用关系來农示。关系模型采用二维表來表示,简称表。二维表山表结构及表的元组组成。表结构伽个命名的属性组成。每个属性有一个取值范囤称为值域。表框架対应了关系的模式,即类型的概念。

(2)关系操纵

关系模型中常用的关系操纵包扌,选择、投影、连接、除、并、交、差等查询操作和增加.删除、修改操作两大部分。其中,資询操作是最主要的部分。

据查询。用户可查询数据库中的数据, 它包抵一个关系内的查询以及多个关系间的査询。②数据删除。数据删除的慕本单位是一个关系内的元组,它的功能是将指定关系内的指定元组删除。它也分为定位与操作两部分,其中定位部分只需要横向定位而无需纵向定位,定位后即执行删除操作。

③数据插入。数据插入仅对一个关系而言,在指定关系中插入一个或多个元组。在数据插入中不需定位,仅需做

关系中元组插入操作,因此数拯插入只有一个 基本操作。④数据修改。数据修改是在一个表 中修改指定的元组与属性。数据修改不是一个 基本操作,它可以分解为删除需修改的元组与 插入修改后的元组两个更棊本的操作。

(3)关系中的数据约束

关系模型允许定义3类完整性约束:实体 完整性、参照完整性和用户定义的完整性。其 中,实体完整性和参照完整性是关系模型必须 满足的完整性约束条件,用户定义的完整性是 应用领域需要遵循的约束条件。 考点3关系代数

1. 关系代数的基本概念

关系代数是一种抽象的查询语言,是关系 数据

操作语言的一种传统表达方式,它是用对 关系的运算來表达查询的。任何-种运算都是 将一定的运算符作用于一定的运算对象上,得 到预期的运算结果。所以运算对彖.运算符和 运算结果是运算的三大耍

索。

关系代数的运算对彖是关系,运算结果也 趕关

系。关系代数用到的运算符包括4类:集 合运算符、专门的关系运算符、算术比较符和 逻辑运算符。 2. 关系模型的基本运算

山于操作是对关系的运算.而关系是有序组 的集箒因此,可以将操作看成是集合的运算。 ①插入:设冇关系R 需插入若干元组,要 插入的元组组成关系R\则插入町用集合并运 算表示为:

RURS ②删除:设有关系R 需删 除一些元纽,要删除

的元纽组成关系RS 则删 除町用集合差运算表示:

R-卍。③修改:修改 关系R 中的元组内容可用实现

方法:设需修改 的元组构成关系R\则先做删除得:

R- R';设 修改厉的元组构成关系RS 此时将其插入

即得 至唏果:(R- R9 UR%④查询:用于查询的 3个操作无法用传统的集合运算表示,需要引 入一些新的运算。

3. 关系代数中的扩充运算

关系代数中除了上述几个最基本的运算外, 为操纵方便还需增添一些运算.这些运算均可由 基本

运算导出。常用的扩充运算有交、除、连接 及自然

连接等。

运算:关系R 与S 交运算后得到的是 由那

些既属于R 又属于S 的元纟丽宙I 成,记为 RASo ②除运算:给定关系R (X, Y )和S (Y, Z ),其中X, Y, Z 为属性组。R 中的Y 和S 中的Y 可以有不同的属性名,但必须出自相同 的域集。③连接运算:连接运算也称为8连接运 算,这是一种二元运算,它的操作是从两个关系 的笛卡尔积中选取属性间满足-定条件的元组, 以合并成一个大关系。 考点4数据库设计与管理 1. 数据库设计概述

在数据库应用系统中的-个核心问题就是 设计一个能满足用户要求,性能良好的数据库, 这就是数据库设计。

数据库设计是建立数据库及其应用系统的 技术,是信息系统开发和建设中的核心技术。 数据库

设计即是在一定平台制约下.根据信息 需求与处理需求设计出性能良好的数据模式。 2. 数据库设计的需求分析

简m 地说,需求分析就是分析用户的要求。 它是设计数据库的起点。 需求分析的任务是通过详细调査现实世界要 处理的对彖,充分了解原系统的工作概况,明 确用户的各种需求,然后在此基础上确定新系统 的功

能。调杳的遼点是“数据”和“处理”,通过调 查.

收集与分析,获得用户对数据库的如卜?要求: 信

息要求.处理要求.安全性与完整性要求。 3. 数据库的概念设计

概念结构设计是将儘求分析阶段得到的用 户需求抽象为信息结构,即概念模型的过程。 它是整

个数据库设计的关键。

(1) 概念结构设计的方法

设计概念结构通敢冇4类方法:白顶向下、

口底向上.逐步扩张.混合策略。这四类方法中 最常用的是口底向上方法。即口顶向下地进行需 求分析,然后再自底向上地设计概念结构。它 通常分为

两步:第一步是抽象数据并设汁局部视 图:第二步是集成局部视图,得到全局的概念结 构。 (2) 数据抽象

概念结构是对现实世界的一种抽象。所谓 抽象足对实际的人.物、事和概念进行人为处 理,抽

取所关心的共同特征,忽略罪本质的细 节,并把这

些特性用各种概念精确地加以描

述.这些概念组成了某种模型。一般有3种抽象:分类、聚集和概括。

(3)局部视图设计

局部视图设计的具体做法:选择局部应用或逐一设计分E-R图。

(4)视图的集成

各子系统的分E-R图设计好以后,下一步就是要将所冇的分E-R图综合成一个总E?R图。 -?般地,视图集成可以有两种方式:-?种是多个

分E?R图一次集成:另一?种是逐步集成,用累加的方式毎次集成两个分E-R图。前者比较复杂,做起來难度较兄后者毎次只集成两个分E?R图. 可以降低复杂度。

4. 数据库的逻紺设计

逻辑结构设计的任务就是把概念结构设计阶段设计好的皋本E-R图转换为与选用的DBMS 产品所支持的数据模型相符合的逻辑结构。

5. 数据库的物理设计

数据库物理设计的主要冃标是对数据库内部物理结构作调整并选择合理的存取路径,以提高数据库访问速度及有效的利用存储空间。在现代关系数据昨小已经大呈屏蔽了内部物理结构.因此留给用户参与物理设计的余£也并不多,一?般的RDBMS 中留给用户参与物理设计的内容你索引设计、集簇设计和分区设计。

6. 数据库管理

数据库是数据的集合,是一种共享资源,因此它需要维护与管理,这种工作称为数据库管理。数据库的建立、使用和维护等工作只靠一个DBMS远远不够,还要冇专门的人员来完成,这些人则称为数据库管理员简称DBA。数据库管理-?般包含如下一些内容:数据库的建立. 数据库的重组、数据库的安全性控制与完整性控制.数据库的故障恢复和数据库的监控。

(1)数据库的建立

数据廂的建立是数据库管理的核心,其包括两部分内容:数据模式的建立及数据加载。

①数据模式的建立。数据模式由DBA负责建立,DBA利用DBMS中的DDL语言定义数据库名,定义表及相应屈性,定义主关键字、索引. 集簇.完整性约束.用户访问权限,川谙空间资源,定义分区等,此外还需定义视图。②数据戦入。在数据模式定义后即可加载数据,DBA可以编制加载程序将外界数据加载至数据模式内,从而完成数据库的建立。

(2)数据库的重组

数据库运行了一段时间以后,由于记录不断的增加、删除、修改等,可能导致数据库的物理存储

悄况变坏,从而降低了数拯的存储效率,数拯库的

性能降低。这时DBA就要对数拯库进行車组织,

或部分重组织(只对频繁增、删进行重组织)。DBMS 一般都提供数据重组织用的实用程序。

(3)数据廂安全性控制

数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄漏、更改或破坏。系统安全

保护措施是否有效定数据库系统的主要指标z—。

数据廂的安全性和计算机系统的安全性,包括操作

系统、网络系统的安全性是紧密联系、互柿支持

的。

(4)数据库完整性控制

数据库的完整性是指数据的正确性和相容性。数据库是否具备完整性关系到数据库系统能否贞实地反映现实讥界,因此维护数据瘁的完整性是井常重要的。为维护数据库的完整性,DBMS必须捉供…种机制來检查数据库中的数据?看其是否满足语义规定的条件。这些加在数据廂数据Z上的语义约束条件称为数据库完整性约束条件,它们作为模式的一部分存入数据库中。而DBMS中检查数据是否满足完整性条件的机制称为完整性检杳。

(5)数据库的故障恢复

尽管数据库系统中采用了各种保护描施來防止数据库的安全性和完整性被破坏,保证并发事务的正确执行,但是计算机系统中%更件的故障.软件的错误、操作员的失误以及恶总的破坏仍是不可避免的,这些故障轻则适成运行爭务非正常中断.影响数据殖屮数据的正确性,重则破坏数据库,使数据库中全部或部分数据丢失,因此DBMS必须具冇把数据库从错误状态恢复到某一已知的正确状态的功能,这就是数据库的恢复。

(6)数据库监控

自数据库投入使用ZLI起,DBA需随时观察数据库的动态变化,监视数据库的性能变化,在必要

时对数据库作出调整,并在数据库发生错误. 故障

或产生不适应惜况时随时采取措施。

第二部分二级C语言第1章程序设计基本概念考点1程序设计1?C程序

高级语言编写的程序称为“源程序",由二进制代码表示的用序称为“R标程序” ■而"编译籾T 是指可以把卿傑获成口标程序的软件。由C语言构成的指令序列称为C源稈序,源程序文件的后缀名为0溺朝<经过C编译程序編译生成后缀为:obj”的二进制文件(称为目标文件),然后由称为“连接程序” (Link)的软件,把目标文件与C语言提供的各种库函数连接起來,牛成后缀为tcxQ 的可执行文件。

2. 算法的5个特性

算法是指为解决某个特定问题而采取的确定n有限的步骤。一个算法应当具有5个特性:冇穷性.确定性、可行性.冇o个或多个输入.有一个或多个输出。

3. 结构化程序和“模块化"设计

(1)结构化程序:结构化程序分为顺序结抱、选择结构和循环结构甘中形式。

<2) “模块化”结构结构化程序设计提侣模块化的设计方法:每个程序设计人员分别完成-个或影个小模块,称为“棋块化”方法;由一个个功能模块构成的程序结构为模块化结构。

考点2 C程序的结构和格式

1. main函数

任何一个有效的程序都有11只能有一个

main()函数,它的地位相当于程序的主体,就像人树的树干;而其它函数都杲为main()服务的,就像人树树干分出的枝干。main函数具有:?饰点:①C语盲规定必须用main作为主函呢必箕后的-对圆括号中间可以是空临但不能省略②程序中的main。是主函数的起始行.也是C 程好执行的起始行。每一个程序都必须有口只有一个主函数;③一个C程序总是从主函数开始执行,到程序执行完片,从主函数结束执行,不论main函数在程序中的位置如何。

2. 程序中的注释

在一个C程序中放在符号和之间的内容,称为对程序的注释。注釋是对程序的说明。编写注释时应遵循4条规则:①符号

? ? ? ?

少”和必须成对旳见和9’两者之间不可以有空格;②注释可以用英文、屮文,可以出现在程胪

11任意合适的地方;③在注释乙间不可以再嵌套"/*"和W 0例如,/*/*…?/*/形式翱權的;朗释从S”刑的脱i的个“叨'结束,其间的任何内容都

被编译程序忽略。

3 ?源程序的书写格式

C程序书写格式的基本习惯有:①一行内可

以写儿个语句,一个语句有以分写在多行上②毎

个语句和数据定义的最后必须由一个分号七”结

束(分号是C语句的一部分,不是语句之间的分隔符〉。

4. C语言的风格

C语言的风格主要冇:C语言简洁.紧凑, 使

用见适;运算符丰富。c语言的运算符包含的范围

很广泛,共冇34种运算;数据结构丰富,具有现

代化语言的各种数据结构:用函数作为程序模块

以实现C程序的模块化:C语言允许直接访问物

理地址,能进行位操作,能实现汇编语言的大部

分功能,可以立接对硬件进行操作;牛成冃标代

码质量高,程序执行效率高;用C语言写的程序

可移植性好。5.标识符

(1)标识符

所谓标识符就是C语盲中的变虽名.函数名.数组名.文件名.类型名等。C语言合法标识符的命名规则是:①标识符由字母.数字和下划线组成;②第一个字符必须为字母或下划线;③区分大小写:大写字母与小写字母被认为是两个不同的字符:④C语言规定了一个标识符允许的字符个数,即标识符的前若干个字符有效,超过的字符将不被识别。

(2)标识符分类

C语言的标识符可分为关键字、预建义标识

符和用户标识符3类:关健字.预定义标识符、用

户标识符。

考点3常堀和变垢

1.常量

所谓常最是指在程序运行过程中,其值不能

被改变的虽。

在C语言中,常盘分为5种:整熨常最;实

型常疑;字符常童;字符冷帝杲:符号常疑。

整熨常臺和实熨常量又称数值型常童,它

们有正值和负值的区分。两者的区别是:整型常量只用数字表示.不带小数点。实型常量必须用带小数点的数农示。

(1)整型常晶整柬常量有两利吩类方法:短整型傩长整型常気基本整型濂先符谢常昼十进制常晶丿射制常量和十六进制常量。

(2)实型常量:实型常龜又称实数或浮点数,一般用小数形式或指数形式來表示。实世常量分为小数和指数两种形式。

(3〉字符常量:C的字符常量是用单引号(撇号)括起来的一个字符。如匕、D、%等都是字符常竝。注总:W和A是不同的字符常诫。C允许用-?种特殊形式的字符常朵,就是以一个4V开头的学符序列。

(4)字符串常量:字符串常量是用一对双

引号抵起來的字符序列。

(5)符号常量:在C语言程序中,用一个符号名来代表一个常量.称为符号常量。

2?变呈

所谓“变呆”是指在程序运行过程中,可以改变的值。通俗而言,数学公式时5=y中,兀、厂都可以看作一个变呈。程序中用到Mj所有变呈都必须遵循以下6条规则:用一个名字作为标识:变址的名字由用戸定义:它必须符合标识符的命名规则;程序中所有变呆都必须先定义后使用:对变虽的定义通常放在函数体内的前部,但也可以放在函数的外部或复介语句的开头;在定义变呆的同时要说明具类型,系统在编译时就能根据苴类型为英分配相应的存储单元。一个变呈实质上是代表内存中的某个存储单元。在程序中对某个变虽的操作实际上就是对这个存储单元的操作。变量冇整型变量和实型变量两种Z分。

(1)整型变量:整型变量分为4利栄里:棊本型:以int表示;短整世:以short int 示,或以short 长整型:以long int表示二或以long表示;无符号型:以unsigned int表示,存储单元中全部二进制位用作存放数本身,而不包括符号。

(2)实型变呆:C语言中实型变最分为两种类型:①单粘度型变虽:定义的形式为? ? ? ?

"float

abc;J精度型变呈:定义IT彤式为“double x,y才。在一般计算机系统屮,为float类型的变量分配4个字节的存储单元,为double类型的变駅分配8个字节的存储单元,并按实教数的存储方式存放数据。3. 整型数据的分类

前面提到的常量中有一种称为整塑常量,变量中也有一种称为整型变因,我们统称为幣型数据。前面我们也提到整型变戢和整熨常域都可以分为基本型.短整型、长整型和无符号型。不同的编译系统或计算机系统对这儿类整型数据所占用的字节数有不同的规定。

考点4算术表达式

1. 基本的算术运算符

C语言中,基本的运算符包括5种:加(+〉、减(?)、乘(*).除(/)和求余(%)。这些运算符需要两个运算单位,称为双R运算符。加(+)、减(?)两个运算符很特殊,也可用作单忖运算符,运算符必须在运算数的左边,如-55.

+35 o

加(+人减(-).乘(*).除(/)可以使用整盘和实盘数据.而求余运算符(%), 英运算对象只能是整型,在%运算符左侧的运算数为被除数,右测的运算数为除数,运算结果是两数相除后所得的余数,如3%2 = 1 (用3除以2,余数为1)。

2. 运算符的优先级、结合性和算术表达式

(1)算术运算符的优先级

算术运算符和圆括号的优先级高低次序:

().+、?、*、/、%、+、?

同级同级同级离低

(2)算术运算符和圆括号结合性

在算术运算符中,只有单冃运算符和的结介性是从右到左的,英余运算符的结介性都是从左到右。

(3)算术表达式

用算术运算符和一对圆括号将运算数(或称操作数)连接起来的.符介C语言规则的表达式称为算术表达式。算术表达式的运算规则和要求:①在算术表达式中,使用多层圆括号,但左右括号必须配对。运算时从内层圆括号开始,由内向外依次计算:②在算术表达式中,若包含不同优先级的运算符,则按运算符的优先级由高到低进行;若表达式中运算符的级别相同,则按运算符的结合方向进行。

3. 强制类型转换表达式

利用强制类型转换运算符可以将一个我达式的值转换成所需类型。

【格式】(类型名)(表达式)

“类型名”称为强制类型转换运算符。考点5赋值表达式

1. 赋值运算符

(1)赋值运算符

赋值运算符的符号为,山赋值运算符组成的表达式称为賦值表达式。先求出右边表达式的值,然后把此值赋给赋值号左边的变虽。

【格式】变量名二表达式

(2)赋值表达式

【格式】<变量〉v赋值运算符〉(衣达式)

使用赋值衣达式时应注总6条事项:①赋值运算符的优先级别只高于逗号运致卷比任何其它运算符的优先级都低,口具有口右向左的结合性;②M 偵运算符不是数学中的“等J:号”,而是进行“赋予”的操作;③賦值农达式x=y的作用是, 将变扯y所代农的存储小元中的内容赋给变吐x 所代表的存储单元,x屮原冇的数据被替换掉;④赋值运算符的左侧只能是变量,不能是常量或表达式;

⑤赋值运算符右边的表达式也可以是一个賦值表达式;⑥在C语言中,j号被视为一个运算符.x=78是一个表达式。

(3)赋值语句

【格式】v变忖><賦值运算符〉(农达式);

【说明】在赋值表达式的尾部加上一个号,就构成了赋值语句,也称表达式语句。

2. 复合赋值表达式

在赋值运算符之前加上其它运算符可以构成复合赋值运算符。在C语言中共有10种复合赋值运算符,其中与算术运算有关的复合运算符有:十=、?=.*=、/=>一复合賦值运算符的优先级与赋值运算符的优先级相同。

3. 赋值运算中的类型转换

如果赋值运算符两狈啲数据类型不-?致,在赋值前,系统将自动先把右侧表达式求得的数值按賦值运算符左边变疑的类型进行转换,也可以用强制类型转换的方式人为地进行转换后将值赋给赋值运算符左边的变氐这种转换仅限于数值数据乙间,通常称为3武值兼容”。在C语言的表达式中,如果运算符两边的整型类型不相同,将进行类型Z间的转换。转换规则:①当赋值运算符左边的变呆为短整型变呆,右边的值为长整型变量,短整型变世只能接受长整型变ift 低位上两个字节中的数据,高位上两个字节中的数据将丢失;②当赋值运算符左边的变量为无符号整型,右边的值为有符号幣型时,则把内存中的内容原样复制。右边数值的范恫不应超出左边变戳可以接受的数值范围,此时负数将转换为正数;③当赋值运算符左边的变量为有符号整型,右边的值为无符号整型时,复制的机制同上。这时若符号位为L将按负数处理。

考点6自加、自减和逗号运算

1. 自加运算符(++)

使用口加运算符时应注总5个事项:①自加运算符“卄”的运算是使运算对喙增i o②运算符是单口运算符,运算对象叮以是整型变虽:,也可以是实整型变虽,但不能是常呈或表达式。所以像卄3、(i+j)卄是不合法的;③用白加运算符构成农达式时?既可以是前缀形式,也可以是后缀形式。

④^算符“卄”的结合方向是叩右逛了O零在一个表达式中对同- ?个变虽进行多次,诸亦i卄或4H 等运算。

2. 自减运算符(一)

使用门减运算符时应注总5个事项:①口减运算符的运算是使运算对康减1:②运算符

是单口运算符,运算对象可以是整型变呈,

也可以是实整柬变量,但不能是常量或衣达式。③用门减运算符构成表达式时,既叮以是前缀形式,也可以是后缀形式。④运算符的结合方向是白右向左。⑤不要在一个表达式屮对同一个变呈进行多次诸如二或二等运算。

3. 逗号运算符和逗号表达式

(1)逗号运算符

V’是C语言提供的一种特殊运算符,称为逗号运算符。逗号运算符的结合性为从左到右。在所有运算符屮,逗号运算符的优先级最低。

(2)逗号表达式

用逗号运算符将衣达式连接起来的式子称为迫号表达式。

【格式】表达式1,表达式2“表达式n 【说明】由于逗号运算符的结合性为从左到右,所以逗号表达式将从左到右进行运算。即先计算表达式1>然后计算表达式2,依次进行,鼓后计算表达式比最后…个农达式的值就是此逗号表达式的值。

第2章顺序结构

考点1字符型常量与变屋

1. 字符常呈

一个字符常呈代表ASCII字符集中的一个字符,在程序中用单引号把一个字符括起來作为字符常星。例如,Ala嘟是合法的字符常灵

2. 转义字符常量

转义字符乂称反斜线字符,这些字符常呈总是以…个反斜线开头后跟…个特定的字符■ 用來代表某一个特运的ASCII字符,这些宁符常量也必须括在一对单引号内。C语言中的转义字符见表2-1 o

3.

字符吊常h t是由双引号括起來的一出字符。在C语言中,字符出是借助于字符型一维数组來存放的,并规定以字符W作为“字符串结束标志”。scy是一个转义字符,称为迪,它的ASCII 码值为0。r Q作为标志占用存储空间.但不计入字符串的实际长度。

4. 字符常虽的运算

①在C程序中.字符常量可参与任何整数运算;②通过算术运算把数字字符转换为整数值或把一位整数转换为数字字符;③字符可以进行关系运算。

5. 字符变呈

C语言屮,字符变量用关键字曲L进行定

义,定义时可同时赋初值。当把字符放入字符变伉中时,字符变“中的值就是该字符的ASCII码值, 所以字符变量可以作为整型变量來处理,町以参与对整型变量所允许的任何运算。

考点2 putchar与getchar函数

(1) putchar函数输出字符【格式】

putchar(ch)

【说明】ch可以是字符变址或是字符常蛍,在以上函数调用的后血跟一个分号“;”,就形成-?行独立的输出语句。

(2) getchar()函数输入字符

【格式】ch= gctchar()

【说明】gctchar()后的一对圆括号内没冇参数,但这一对圜括号不可少,getchar()函数从终端读入一个字符作为西数值。以上调用形式把读入的一个字符赋给变晁ch。

考点3 printf函数

1. printf函数的一般调用形式

pring格式控制,输出项1?输出项2严) 【说明】“格式控制”是字符串形式,“输出项”是要输出的字符或变戢名。在printf函数的调用Z后加上“;”,则构成输出语句。

2. printf函数中常用的格式说明

格式控制中,每个格式说明都必须用“%” 开头,以一个格式字符作为结束,在此之间可以根据盂要插A仏宽度说明”.左对齐符号“几前导零符号“(T等°

①恪式字符:主要用于说明输出字符的格式;

②长度修饰符:在“%”和格式字符Z间,可以加入长度修饰符,以保证数据输出格式的止确和对齐:③输出数据所占的宽度说明:当使用%<

L %c. %f. %c. %s的格式说明时,输出数据所占的宽度由系统决定,通常按照数据本身的实际宽度输出,前后不加空格,并采用右对齐的形式:④输出数据左对齐:输出数据都默认为右对齐, 若想左对齐,可以在格式控制中的"%"和宽度之间加一个号來实现;⑤使输出数据总带“+” 和:通常输出的数据如果是负数,前面有, 但止数前而的件”一般祁省略了。如让每一个数前而都带正负号.可以在"%"和格式字符之间加一个“+”來实现。

3?使用printf函数时的注意事项

?printf的输出格式为口由格式.是否在两个数之间留逗号、空格或回车,完全取决于

格式控制:②格式控制中必须含有与输出项一一对应的输出格式说明,类型必须兀配;③在格式控制中,除了前面要求的输出格式,还可以包括任意的合法字符(包括汉字和转义符);

④如果要输出“ %”,可以在格式控制中用“%%”表示,将输出一个“%” :⑤printf函数有返回值,返回值是本次调用输出字符的个数,包括回车等控制符。

考点4 scant函数

1. scanf函数的一般调用形式

scanf函数?般用于输入数据信息。

scanf(格式控制,输入项1、输入项2*)【说明】在scanf函数调用之后加“;”,则构成输入语句。

2. scant函数中常用的格式说明

恪式控制的主要作用是指定输入时的数据转换恪式,即恪式转换说明。

每个格式说明都必须用“%”开头,以“格式宁符”作为结束。允许用于输入的字符及相应功能见农2-2<>

3.通过scant函数从键盘输入数据

①输入数值数据:输入的数拯之间必须用空格. 回车符.制表符(Tab键〉等间隔符隔开,间隔符个数不限。②指定输入数据所占的宽度:在格式字

符前加入-个止整数指定输入数据所占的宽度。③跳过某个输入数据:可在峡”和格式字符之间加入心”号,作用是跳过对应的输入数据°④在格式控制字符串中插入其他宁符:scanf函数中的格式控制字符小是为了输入数拯用的,因此若想在屏幕上输出提示信息,应该首先使用printf函数输出。考点5位运算的含义和应用

1. 位运算符的含义

C语言提供了6种位运算符,含义见农2?3。

2-3

位运算符与赋值运算符结介可以组成扩展的值运算符,其表示形式及含义见表

(1)“按位取反”运算

运算符(?)是位运算符中惟?的一?个单且运算符.运算对陳空于运算符的右边,英运算功能是把运算对象的内容按位取反(使每一位上的0变1, 1变0)。

(2)“左移”运算

左移(<<)运算符赵双口运算符。运算符左边是移动对象,右边是整型表达式,代表左移的位数。左移时,卷塑(低位)JLQ;左端(高位〉移出的部分舍弃。

大学c语言必背基础知识_c语言基础知识大全

大学c语言必背基础知识_c语言基础知识大全 对于刚学计算机编程的同学来说,没一个编程知识都觉得很重要,其实不是的。下面小编为大家整理了相关大学c语言必背基础知识,希望大家喜欢。 大学c语言必背基础知识举例说明: printf(“-”,123 ); 第二部分有三位,大于指定的两位,原样输出123 printf(“]”,123 ); 第二部分有三位,小于指定的五位,左边补两个空格123 printf(“f”,1.25 ); 小数要求补足6位的,没有六位的补0,。结果为1.250000 printf(“%5.3f”,125 ); 小数三位,整个五位,结果为1.250(小数点算一位) printf(“%3.1f”,1.25 );小数一位,整个三位,结果为1.3(要进行四舍五入) 第三节数据输入1、scanf(“a=%d,b=%d”,">2、scanf(“%d,%d”,x,y);这种写法绝对错误,scanf的第二个部分一定要是地址!scanf(“%d,%d”,注意写成这样才可以! 3、特别注意指针在scanf的考察例如:int x=2;int *p=scanf(“%d”,x); 错误scanf(“%d”,p);正确scanf(“%d”,错误scanf(“%d”,*p)错误 4、指定输入的长度(考试重点)终端输入:1234567scanf(“-M%d”,x为12,y为3456,z为7终端输入:1 234567 由于1和2中间有空格,所以只有1位给xscanf(“-M%d”,x 为1,y为2345,z为67 5、字符和整型是近亲:int x=97;printf(“%d”,x); 结果为97printf(“%c”,x); 结果为a 6、输入时候字符和整数的区别(考试超级重点) scanf(“%d”,这个时候输入1,特别注意表示的是整数1 scanf(“%c”,这个时候输入1,特别注意表示的是字符‘1’ASCII为整数48。 补充说明: 1)scanf函数的格式考察: 注意该函数的第二个部分是scanf(“%d%d%*d%d”,跳过输入的第三个数据。 2)putchar ,getchar 函数的考查:

2017全国计算机等级考试二级C语言知识点超全整(打印版).docx

全国计算机等级考试

目录 第-部分公共基础知识 第1章算法与数据结构 (1) 考点1算法........................... I 考点2数据结构.. (1) 考点3线性表及英顺序存储结构 (1) 考点4栈和队列 (1) 考点5线性链表 (2) 考点6树与二叉树 (2) 考点7查找技术 (3) 考点8排序技术 (3) 第2章程序设计基础 (4) 考点I程序设计方法与风格 (4) 考点2结构化程序设计 (5) 考点3面向对象的程序设计 (5) 第3章软件工程基础 (5) 考点1软件工程基本概念 (5) 考点2软件分析方法 (6) 考点3结构化设计方法 (7) 考点4软件测试 (8) 考点5程用的调试 (9) 笫4帝数据库设计基础 (9) 考点1数据库系统的基本概念 (9) 考点2数据带系统的基木概念 (10) 考点3关系代数 (12) 考点4数据库设计与管理 (12) 第二部分二级C语言 笫1章程序设汁基本概念 (14) 考点1程序设计 (14) 考点2 C程序的结构和格式 (14) 考点3常鱼和变蛍 (14) 考点4算术表达式 (15) 考点5赋值表达式 (16) 考点6自加.口减和逗号运算 (16) 第2章顺疗结构 (17) 考点1字符型常屋与变虽 (17) 考点 2 putchar 与gclchar 函数 (17) 考点3 printf函数 (17) 考点4 scanf函数 (18) 考点5位运算的含义和应用 (18) 第3章选择结构 (19) 考点1关系运算符和关系表达式 (19) 考点2逻轉运算符和逻辑表达式 (19) 考点3 if语句及其构成的选择结构 (19) 考点4 switch语句与break语句 (20) 第4章循环结构 (20) 考点1 while循环结构 (20) 考点2 do-while循环结构 (21) 考点3 for循环结构 (21) 考点4嵌套循环语句 (21) 第5章函数 (21) 考点I库函数 (21) 考点2函数的调用 (22) 考点3参数传递 (22) 考点4函数的递归调用 (23) 考点5局部、全局变量和存储分类 (23) 第6章地址与指针 (23) 考点1变量的地址和指针 (23) 考点2抬针变量的操作 (24) 考点3函数之间地址的传递 (24) 第7章数组 (24) 考点1 一维数组的定义及元素的引用??24 考点2函数对-维数组及元素的引用??25 考点3二维数组的定义 (25) 考点4二维数组和指针 (25) 考点5二维数组名和指针数组作为实参???26 第8章字符串 (26) 考点|用-?维字符数组存放字符出? (26) 考点2使指针指向字符串 (26) 考点3字符串的输入和输出 (26) 考点4字符串数组 (27) 考点5用于字符串处理的函数 (27) 第9章编译预处理和动态存储分配 (27) 考点I編译预处理 (27) 考点2宏替换 (27) 考点3文件包含处理 (28) 考点4动态存储分配 (28) 第10章结构体.共用体和用戸定义类型28考点1结构体 (28) 考点2共用体 (29) 考点3用户定义类型 (29) 第11章文件 (29) 考点1文件指针 (29) 考点2文件的读写 (30)

大学c语言考试基础知识复习

C 语言最重要的知识点复习资料总体上必须清楚的: 1)程序结构是三种: 顺序结构、选择结构(分支结构)、循环结构。 2)读程序都要从()入口, 然后从最上面顺序往下读(碰到循环做循环, 碰到选择做选择),有且只有一个函数。 3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址. 4)是位是指为0 或者1 。是指字节, 一个字节= 八个位. 概念常考到的: 1、编译预处理不是C语言的一部分,不占运行时间,不要加分号。C语言编译的程序称为源程序,它以数值存放在文本文件中。 2、 3.1415926; 这个写法是错误的,一定不能出现分号。 3、每个C语言程序中函数是有且只有一个。 4、在函数中不可以再定义函数。 5、算法:可以没有输入,但是一定要有输出。 6、可用于循环结构和语句。 7、逗号运算符的级别最低,赋值的级别倒数第二。 第一章 C 语言的基础知识 第一节、对C语言的基础认识 1、C语言编写的程序称为源程序,又称为编译单位。 2、C语言书写格式是自由的,每行可以写多个语句,可以写多行。 3、一个C语言程序有且只有一个函数,是程序运行的起点。第二节、熟悉 1、是软件,用来运行写的C语言程序。 2、每个C 语言程序写完后,都是先编译,后链接,最后运行。()这个过程中注意和文件时无法运行的,只有文件才可以运行。(常考!) 第三节、标识符 1、标识符(必考内容):合法的要求是由字母,数字,下划线组成。有其它元 素就错了。并且第一个必须为字母或则是下划线。第一个为数字就错了 2、标识符分为关键字、预定义标识符、用户标识符。 关键字:不可以作为用户标识符号。都不是关键字。迷惑你的地方是 可以做为用户标识符。因为中的第一个字母大写了,所以不是关键字。 预定义标识符:背诵。记住预定义标识符可以做为用户标识符。 用户标识符:基本上每年都考,详细请见书上习题。 第四节:进制的转换 十进制转换成二进制、八进制、十六进制。二进制、八进制、十六进制转换 成十进制。 第五节:整数与实数 1)C 语言只有八、十、十六进制,没有二进制。但是运行时候,所有的进制都要转换成二进制来进行处理。(考过两次) a 、C语言中的八进制规定要以0开头。018的数值是非法的,八进制是没有 8 的,逢8 进1。 b 、C语言中的十六进制规定要以Ox开头。 2)小数的合法写法:C语言小数点两边有一个是零的话,可以不用写。

计算机二级C语言高效考点

计算机二级C语言高效考点 2017年计算机二级C语言高效考点锦集 C语言基本知识 【考点1】C程序 C语言程序结构有三种:顺序结构,循环结构(三个循环结构),选 择结构(if和switch) 【考点2】main函数 每个C语言程序中main函数是有且只有一个。读程序都要从 main()入口,然后从最上面顺序往下读(碰到循环做循环,碰到选择做 选择)。 【考点3】存储形式 计算机的数据在电脑中是以二进制的形式保存。最低的存储单元是bit(位),位是由为0或者1构成。byte是指字节,一个字节=八 个位。数据存放的位置就是它的地址。 【考点4】注释 是对程序的说明,可出现在程序中任意合适的地方,注释从“/*”开始到最近一个“*/”结束,其间任何内容都不会被计算机执行, 注释不可以嵌套。 【考点5】书写格式 每条语句的后面必须有一个分号,分号是语句的一部分。一行内可写多条语句,一个语句可写在多行上。 【考点6】标识符 合法的用户标识符考查: 合法的要求是由字母,数字,下划线组成。有其它元素就错了。

并且第一个必须为字母或则是下划线。第一个为数字就错了。 C语言标识符分如下3类 (1)关键字。它们在程序中有固定的含义,不能另作他用。如int、for、switch等。 (2)预定义标识符。预先定义并具有特定含义的标识符。如define、include等。 (3)用户标识符。用户根据需要定义的标识符,符合命名规则且不与关键字相同。 关键字不可以作为用户标识符号。maindefinescanfprintf都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。 【考点7】实型数据 实型数据的合法形式:小数形式和指数形式。掌握判定指数形式合法性。 2.333e-1就是合法的,且数据是2.333×10-1。 考试口诀:e前e后必有数,e后必为整数。 【考点8】字符 字符数据的合法形式:: '1'是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号)。 '0'的ASCII数值表示为48,'a'的ASCII数值是97,'A'的ASCII数值是65。 字符型和整数是近亲: chara=65; printf(“%c”,a);得到的输出结果:a

2017年计算机一级考试MsOffice试题及答案

2017年计算机一级考试MsOffice试题及答案 成绩的取得离不开我们平时的努力,以下是为大家整理的2017年MsOffice试题及答案,希望对大家的学习起到帮助! 单选题 (1) 在Word 97的表格操作中,计算求和的函数是 A)Count B)Sum C)Total D)Average 参考答案:B (2) 在Word 97的编辑状态中,对已经输入的文档进行分栏操作,需要使用的菜单是 A)编辑 B)视图 C)格式 D)工具 参考答案:C (3) 下面哪一组是系统软件 A)DOS和MIS B)WPS和UNIX C)DOS和UNIX D)UNIX和Word 参考答案:C (4) 下列各组设备中,全部属于输入设备的一组是

A)键盘、磁盘和打印机 B)键盘、扫描仪和鼠标 C)键盘、鼠标和显示器 D)硬盘、打印机和键盘 参考答案:B (5) 6位无符号二进制数能表示的最大十进制整数是 A)64 B)63 C)32 D)31 参考答案:B (6) 在计算机中采用二进制,是因为 A)可降低硬件成本 B)两个状态的系统具有稳定性 C)二进制的运算法则简单 D)上述三个原因 参考答案:D (7) 下列叙述中,正确的一条是 A)存储在任何存储器中的信息,断电后都不会丢失 B)是只对硬盘进行管理的程序 C) 硬盘装在主机箱内,因此硬盘属于主存 D)磁盘驱动器属于外部设备 参考答案:D

(8) 将高级语言编写的程序翻译成机器语言程序,采用的两种翻译方式是 A)编译和解释 B)编译和汇编 C)编译和链接 D)解释和汇编 参考答案:A (9) 近年来计算机界常提到的"2000年问题"指的是 A)计算机将在2000年大发展问题 B)计算机病毒将在2000年大泛滥问题 C)NC和PC将在2000年平起平坐的问题 D)有关计算机处理日期问题 参考答案:D (10) 为了避免混淆,十六进制数在书写时常在后面加字母 A)H B)O C)D D)B 参考答案:A (11) 在WINDOWS 95中,下列关于"任务栏"的叙述,哪一种是错误的 A)可以将任务栏设置为自动隐藏 B)任务栏可以移动 C)通过任务栏上的按钮,可实现窗口之间的切换 D)在任务栏上,只显示当前活动窗口名

贵州大学2012-2013C语言考试A卷 附 重要考点复习资料

贵州大学2012-20103学年第一学期考试试卷 A C语言程序设计 满分100分,考试时间为120分钟。 一、单项选择题(选出一个正确答案,每小题2分,共20分) 1.完成C源文件编辑后、到生成执行文件,C语言处理系统必须执行的步骤依次为( ) A.连接、编译 B. 连接、运行 C. 编译、运行 D. 编译、连接 2.下列说法正确的是() A.一个c语言程序并非总是从主函数位置开始执行的 B.一个c语言程序有且只有一个主函数 C.函数可以嵌套定义,不可以嵌套调用 D.程序函数的位置不可以任意 3.下面是合法C语言标识符的是() A. 2A_K; B. _M+N; C. –M3; D. AC_2; 4.下列格式符中,可以用于控制字符输出的是( ) A. %d B. %f C. %o D. %c 5.设x、y、z和k都是int型变量,则执行表达式x=(y=4,z=16,k=30)后,x的值是( ) A. 4; B. 16; C. 30; D. 50; 6.执行语句“for(i=1,s=0;i<=5;i++) s+=i;”后,变量s、i的当前值是( ) A. 10,5 B. 15,6 C. 15,5 D. 10,6 7.若有定义 int x,*p;,则以下正确的赋值表达式是( ) A. p=x; B. p=&x; C. *p=&x; D. *p=*x; 8.以下对结构体类型变量的定义中,不正确的是( ) A. typedef struct aa B. #define AA struct aa { int n; AA { int n; float m; float m; }AA; } stud; AA stud; C. struct D. struct { int n; { int n; float m; float m; }aa; }stud; struct aa stud; 9.有如下函数调用语句: func(rec1,rec2+rec3,(rec4+rec5)); 函数调用语句中,含有的实参个数是( ) A. 3 B. 4 C. 5 D. 以上均不是 10.对于以下宏定义: #define SQ(x) x*x #define QQ(x,y) SQ(x)- SQ(y) 宏调用QQ(2*3,2+3)执行后值为( ) A.25 B.11 C.43 D.以上均不是

2017年全国计算机等级考试二级C语言上机题库

2017年全国计算机等级考试二级 C语言上机题库 第一套 1.程序填空 程序通过定义学生结构体数组,存储了若干个学生的学号、姓名和三门课的成绩。函数fun 的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大排序)。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 第一处struct student t; 第二处for(i=0;i0) 2程序修改 给定程序MODI1.C中函数fun的功能是:在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向上顺序移动。 /**found**/ q=p+i; /**found**/ while(q>p) 3程序设计 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。 int fun(STREC *a,STREC *b,int l,int h) {int i,j=0; for(i=0;i=1&&a[i].s<=h) b[j++]=a[i]; return j; } 第二套 1.程序填空 给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序连接。函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。 第一处free(q); 第二处q=p->next; 第三处q=q->next; 2. 程序修改 给定程序MODI1.C中函数fun的功能是:用选择法对数组中的n各元素按从小到大的顺序进行排序。 /**found**/ p=j; /**found**/ p=i; 3. 程序设计 请编写一个fun函数,它的功能是:求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。void fun(int m,int *a,int *n) { int i; *n=0; for(i=7;i<=m;i++) if((i%7==0)||(i%11==0)) a[(*n)++]=i; } 第三套 1. 程序填空 函数fun的功能是:逆置数组元素是的值。例如:若a所指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则逆置后依次为:9、8、7、6、5、4、3、2、1。形参n给出数组中数组中数据的个数。 第一处for(i=0;i

大学c语言学习心得感悟

大学c语言学习心得感悟 通过这次大学c语言计算机实习学习,我们了解了一些关于c 语言的知识,理解巩固了我们c语言的理论知识,着对我们将来到社会工作将会有莫大的帮助。下面是WTTWTT为大家收集整理的大学c语言学习心得感悟,欢迎大家阅读。 大学c语言学习心得感悟篇1 林林总总的计算机语言,林林总总的计算机技术,林林总总的计算机书籍让我们初入计算机的菜鸟一次就吓的没有勇气。迷茫和徘徊让我们丧失了时间和信心。没有诀窍吗?有的,看你怎么把握了,接下来我就以C语言为例子,讲一下有关学习的方法和技巧,同时也分享一下我学C的感想。 许多人第一次接触C语言都会觉得C语言难懂和不容易使用,其实就我个人的看法,C语言其实是很基础的汇编语言,除了一些必须要记忆的关键字、语法和库函数,其余的都是需要靠自己的逻辑思维通过这些关键字、语法和库函数来组织或构成一个完整的函数,所以C语言大多数的学习时间都是在锻炼我们的抽象逻辑思维能力。只有当你具有了抽象逻辑思维能力和弄清楚了关键字、语法和库函数的相关知识后,编写C语言就不是难事了。 通过C语言初步的学习后都很容易弄懂关键字、语法和库函数的相关知识,但是由于大部分人因为以前没有接触过电脑或电

脑语言的相关知识所以缺乏抽象逻辑思维能力,不知道如何将所学到C语言的知识如何组织和构成一个完整的函数,那么如何来有效的锻炼自己的抽象逻辑思维能力呢? 在这里是我个人的一套自学心得,通过学习后所掌握的知识使用上课老师所提到的案例或找一段简单的完整的案例,然后将案例读懂,也就是把它转换成我们日常所能接受的自然语言(在这里不妨把你所能理解的自然语言写下来)。例如下面这段代码是手工输入两个整数数字并计算两个数字之间从最小的数字开始到最大的数结束其中所有奇数相加的和: void main { 首先INT是表示整数形数据的定义,那么接下来有两个未知的整数和一个已知的整数0;这里出现的3个整数数字用C语言里的变量来替代它们,这时第一个数字就用取名为NUM1的变量,第二个数字就用取名为NUM2的变量,第三个数字就用取名为X的变量并且用赋值符号来为它赋予0这个值。 int num1,num2,x=0; 由于知道了有两个未知的整数,所以要通过键盘输入使这两个未知的整数变成已知的整数并且储存在前面所提到的变量中。 scanf("%d%d ",&;num1,&;num2) ; 得到数字后下面就开始进行一系列的运算和判断,如果NUM1小于NUM2的话最小的数字就是NUM1最大的数字就是NUM2,如果

国家二级C语言公共基础知识要点及历年真题

1算法 1.1 算法的基本概念 1.算法的概念(必记): 算法是指解题方案的准确而完整的描述。 分析:要用计算机实现某一任务时,先应设计出一整套解决问题的指导方案,然后具体实现。整套的指导方 案称之为算法,而具体的实现称之为程序。并且在设计指导方案时,可不用过多考虑到实现程序的具体细节(即可以一点点的理想化),但在程序实现时,必须受到具体环境的约束(现实不同于理想)。 结论:算法不等于程序,也不等于计算方法,程序的编制不可能优于算法的设计。 2.算法的基本特征(必记): a.可行性:由于算法总是在某个特定的计算工具上实现并执行的,因而受到计算工具的限制,所以在设计算法时,要考虑到设计的算法是否是可性的。 b.确定性:算法中的每一个步骤都必须是有明确定义的,不允许有模棱两可的解释,也不允许有多义性。 c.有穷性:算法必须能在有限的时间内做完,即算法必须能在执行有限个步骤之后终止。 d.拥有足够的情报:算法有相应的初始数据。 3.算法的基本要素: 一个算法通常由两个基本要素所组成:一是对数据对象的运算和操作,二是算法的控制结构。 基本运算和操作分为四类: a. 算术运算: (加、减、乘、除等运算) b. 逻辑运算: (与、或、非等运算) c. 关系运算: (大于、小于、等于、不等于等运算) d. 数据传输: (赋值、输入、输出等操作) 算法的控制结构: 算法中各操作之间的执行顺序称之为算法的控制结构。一个算法一般都可以用顺序、选择、循环三种基本控 制结构组合而成。 注意:一个计算机系统能执行的所有指令的集合,称为该计算机系统的指令系统。 4.算法设计基本方法: 列举法、归纳法、递推、递归、减半递推技术、回溯法。 1.2 算法的复杂度 (必记) 算法的复杂度主要包括时间复杂度和空间复杂度。 1.算法的时间复杂度: 是指执行算法所需要的计算工作量,是由算法所执行的基本运算次数来度量。 可用平均性态和最坏情况两种分析方法。其中平均性态分析是指用各种特定输入下的基本运算次数的加权平 均值来度量算法的工作量;而最坏情况分析是指在所有特定输入下的基本运算次数据的最大次数。 2.算法的空间复杂度: 一个算法的空间复杂度,是指执行这个算法所需要的内存空间。包含有三部分所组成:算法程序所占的空间 +输入的初始数据所占的存储空间+算法执行过程中所需要的额外空间。 历届的考题: 1、算法具有五个特性,以下选项中不属于算法特性的是(______) [2005.4] A)有穷性B)简洁性C)可行性D)确定性 2、问题处理方案的正确而完整的描述称为______。[2005.4] 3、下列叙述中正确的是________。[2006.9] A)一个算法的空间复杂度大,则其时间复杂度也必定大

2017年计算机二级MSOffice考试试题及答案

2017年计算机二级MSOffice考试试题及答案 1). 把用高级程序设计语言编写的源程序翻译成目标程序(.OBJ)的程序称为( )。 A.汇编程序 B.编辑程序 C.编译程序 D.解释程序 正确答案:C 2). 下列关于计算机病毒的叙述中,错误的是( )。 A.计算机病毒具有潜伏性 B.计算机病毒具有传染性 C.感染过计算机病毒的计算机具有对该病毒的免疫性 D.计算机病毒是一个特殊的寄生程序 正确答案:C 答案解析:计算机病毒,是指编制者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机使用并且能够自我复制的一组计算机指令或者程序代码,具有寄生性、破坏性、传染性、潜伏性和隐蔽性。 3). 现代计算机中采用二进制数字系统是因为它( )。 A.代码表示简短,易读 B.物理上容易表示和实现、运算规则简单、可节省设备且便于设计 C.容易阅读,不易出错 D.只有0和1两个数字符号,容易书写 正确答案:B 4). 计算机网络分为局域网、城域网和广域网,下列属于局域网的是( )。 A.ChinaDDN网

B.Novell网 C.Chinanet网 D.Internet 正确答案:B 5). 下列的英文缩写和中文名字的对照中,错误的是( )。 A.URL——统一资源定位器 https://www.360docs.net/doc/0152873.html,N——局域网 C.ISDN——综合业务数字网 D.ROM——随机存取存储器 正确答案:D 6). 存储一个32×32点的汉字字形码需用的字节数是( )。 A.256 B.128 C.72 D.16 正确答案:B 8). 无符号二进制整数101001转换成十进制整数等于( )。 A.41 B.43 C.45 D.39 正确答案:A 9). 按的分类,UNIX操作系统是( )。 A.批处理操作系统

C语言循环知识点总结

循环 特点:在满足特定条件的情况下,反复执行某程序段。 While循环 While循环的格式是这样的:while(条件表达式){语句代码},意思是满足括号内的条件时,执行花括号内的语句代码。或者更专业一点来说,当括号内的条件表达式返回值为真时,执行花括号内的代码,一直到条件表达式的返回值为假时,跳出循环。 While循环很容易出现死循环这种状况,就是因为忘记写了“增量”这个东西。 上面的代码就是少了count++,这个增量,所以,条件表达式一直满足,就一直执行,就造成了死循环。 此时,应该这样改进:

一些例子:

Do-while循环 与while不同的只有一个地方,就是先执行一遍代码,再进行判断。也就是说,不管你while的条件表达式成不成立,返回值为不为假,我都执行一遍循环体的代码。 随机数arc4random() 产生随机数的方法,arc4random()可以产生int范围内的任意一个随机数,包括有正数和负数,为什么会出现负数呢?因为,在存储的时候,生成的数的最高位的数字为1,此时,会认为这个1是符号位的负,因此会出现负数。这时,我们应该把这些情况避免掉,在输出之前,用unsigned 来定义一个变量来接收产出的随机数;在输出的过程中,占位符不再用%d,而是用%u来代替。 另一个值得注意的是,随机数产生的时候,数字会很大,而我们在代码过程中,

不需要这么大的数,此时,想要把这个数减小,可以用取余的办法来限制。 在产生一个随机数的时候,可以让它在固定的区间内产生,那么就会用到这个公式: 若是规定在负空间生成随机数,那么就将公式改成: 一些例子:

全国计算机等级考试二级C语言考点(完整版)

C语言二级考点(完整版) 第一章…… C语言基础知识 第二章……顺序结构 第三章……选择结构 第四章. ……循环结构 第五章……函数 第六章……指针 第七章……数组与指针 第八章……数组与函数 第九章……字符串 第十章……结构体与共用体 第十一章……文件 第一章C语言基础知识 考点1. C语言程序的结构认识 本节通过一个简单的c程序例子,介绍c语言的基本构成、格式、以及良好的书写风格,使读者对c语言有个初步认识。 例1 计算两个整数之和的c程序: #include main() { int a,b,sum; /*定义变量a,b,sum为整型变量*/ a=20; /*把整数20赋值给整型变量a*/ b=15; /*把整数15赋值给整型变量b*/ sum=a+b; /*把两个数之和赋值给整型变量sum*/ printf("a=%d,b=%d,sum=%d\n",a,b,sum); /*把计算结果输出到显示屏上*/ } 重点说明: 1、任何一个c语言程序都必须包括以下格式: main() { } 这是c语言的基本结构,任何一个程序都必须包含这个机构。括号内可以不写任何内容,那么该程序将不执行任何结果。 2、main()----在c语言中称之为“主函数”,一个c程序有且仅有一个main函数,任何一个c程序总是从main函数开始执行,main函数后面的一对圆括号不能省略。 3、被大括号{ }括起来的内容称为main函数的函数体,这部分内容就是计算机要执行的内容。 4、在{ }里面每一句话后面都有一个分号(;),在c语言中,我们把以一个分号结尾的一句话叫做一个c语言的语句,分号是语句结束的标志。 5、printf(“a=%d,b=%d,sum=%d\n”,a,b,sum); ----通过执行这条c语言系统提供给我们直接使用的屏幕输出函数,用户即可看到运行结果,本程序运行后,将在显示器上显示如下结果: a=20,b=15,sum=35 6、#include 注意:(1)以#号开头(2)不以分号结尾

全国计算机等级考试二级MS+Office高级应用真题精彩试题库2+20173月

全国计算机等级考试二级MS Office高级应用真题题库2 2016年3月 (总分100, 做题时间120分钟) 一、选择题(每小题1分。共20分) 1. 英文缩写CAM的中文意思是()。 A 计算机辅助设计 B 计算机辅助制造 C 计算机辅助教学 D 计算机辅助管理 该问题分值: 1 答案:B CAM是计算机辅助制造。 2. 若网络的各个节点通过中继器连接成一个闭合环路,则称这种拓扑结构称为()。 A 总线型拓扑 B 星型拓扑 C 树型拓扑 D 环型拓扑

该问题分值: 1 答案:D 环型拓扑结构是指各个节点通过中继器连接到一个闭合的环路上,环中的数据沿着一个方向传输,由目的节点接收。 3. 有三个关系R、S和T如下: 则由关系R和s得到关系T的操作是()。 A 自然连接 B 交 C 投影 D 并 该问题分值: 1 答案:A 关系R和关系S有公共域,关系 T是通过公共域的等值进行连接的结果,符合自然连接,选A。 4. 对下列二叉树进行前序遍历的结果是()。

A DYBEAFCZX B YDEBFZXCA C ABDYECFXZ D ABCDEFXYZ 该问题分值: 1 答案:C 前序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树;并且,在遍历左右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。前序遍历描述为:若二叉树为空,则执行空操作。否则:①访问根结点;②前序遍历左子树;③前序遍历右子树,C正确。 5. 字长是CPU的主要技术性能指标之一,它表示的是()。 A CPU的计算结果的有效数字长度 B CPU一次能处理二进制数据的位数 C CPU能表示的最大的有效数字位数 D CPU能表示的十进制整数的位数

上海理工大学 c语言复习卷以及答案

参考解答 一、单选题 1. 以下C程序中预处理命令写法正确的是: D 。[知识点:编译预处理命令] A. #include “studio.h” B. #include [stdio.h] C. #include {stdio.h} D. #include “stdio.h” 2.执行下列语句序列后,不可能出现的运行结果是___ C ____。[知识点:开关语句] int n; scanf( "%d", &n); switch ( n ) { case 1: case 2: putchar('X'); case 3: case 4: putchar('Y'); break; default: putchar('Z'); A. 显示:z B. 显示:xy C. 显示:x D. 显示:y 3.设a,b为整型变量, 且二者均不为0, 以下关系表达式中恒成立的是___ C ___。[知识点:运算与数据类型] A. a/b*b/a==1 B. a/b*b==a C. a*b/a==b D. a*b/ a*b ==1 4.设有定义:int x=10,y=20,z=30; 则执行下列语句后的结果是___B____。[知识点:if语句] if ( x>y ) z=x; x=y; y=z; printf("%d,%d,%d",x, y, z ); A. 20,30,20 B. 20,30,30 C. 20,30,10 D. 10,20,30 5.下列程序的输出结果是__ B ____。[知识点:整型常量的表示和自增运算] main() { int a = 011; printf( "%d\n", ++a ); } A. 9

2019年全国计算机二级C语言知识点复习:指针

2019年全国计算机二级C语言知识点复习:指针 【考点1】指针变量 指针变量是用来存储地址的,而一般变量是存储数值的。指针变量可指向任意一种数据类型,但不管它指向的数据占用多少字节,一个指针变量占用四个字节。 【考点2】指针变量的定义 格式为:类型名 *指针变量名。二维指针int **p;能够理解为基类型为(int *)类型。 【考点3】指针变量的初始化 指针变量在使用前必须要初始化,把一个具体的地址赋给它,否则引用时会有副作用,如果不指向任何数据就赋“空值”NULL。 指针变量两种初始化 方法一:int a=2,*p=&a;(定义的同时初始化) 方法二:int a=2,*p; (定义之后初始化) p=&a; 【考点4】指针变量的引用 &是取地址符,*是间接访问运算符,它们是互逆的两个运算符。在指针变量名前加间接访问运算符就等价它所指向的量。 【考点5】指针的运算 int *p 中 *p 和p 的差别: *p 能够当做变量来用;*的作用是取后面地址p 里面的数值

p 是当作地址来使用。 *p++ 和(*p)++的之间的差别:改错题目中很重要 *p++是地址会变化。 (*p)++ 是数值会要变化。 三名主义:(考试的重点) 数组名:表示第一个元素的地址。数组名不能够自加,他是地址常量名。(考了很多次) 函数名:表示该函数的入口地址。 字符串常量名:表示第一个字符的地址。 考试重要的话语: 指针变量是存放地址的。并且指向哪个就等价哪个,所有出现*p 的地方都能够用它等价的代替指向的变量。 例如:int a=2,*p=&a; *p=*p+2; (因为*p 指向变量a,所以指向哪个就等价哪个,这里*p 等价于a,能够相当于是a=a+2)

全国计算机等级考试调整方案

全国计算机等级考试调整方案 从2018年3月开始,全国计算机等级考试将实施2018版考试大纲,并按新体系开考各个考试级别。具体调整内容如下: 一、考试级别及科目 (一)一级 新增“网络安全素质教育”科目(代码:17),考试时长90分钟,将于2019年9月首次开考。 (二)二级 取消“Visual FoxPro数据库程序设计”科目(代码:27),2017年12月是其最后一次组考。新增“Python语言程序设计”科目(代码:66),考试时长:120分钟,软件要求:Python 3.5.2版本及以上IDLE,2018年9月首次开考。 自2019年3月考试起,二级语言类及数据库类科目(即除MS Office高级应用外的其他二级科目)调整获证条件为:总分达到60分且选择题得分达到50%及以上,(即选择题得分要达到20分及以上)的考生方可取得合格证书。 (三)三级 2018年3月起暂停“软件测试技术”科目(代码:37)。 自2018年3月考试起改变三级获证条件要求,考生只需通过三级考

试即可获得该三级科目的合格证书,不再要求二级证书。 (四)四级 暂停“软件测试工程师”科目(代码:43)。专业基础课程暂停软件工程(课程代码:405)。四级数据库工程师科目考试课程由“404、405”调整为“401、404”。 四级获证条件不变:通过四级科目的考试,并已经(或同时)获得三级相关证书。 二、考试软件 二级C、C++两个科目应用软件由Visual C++6.0改为Visual C++ 2010学习版(即Visual C++ 2010 Express)。 三、教材及宣传 新科目教材预计2018年3月出版,其他科目教材2017年11月上市。新科目、新教材的宣传资料,将在NCRE网站()公布。 附表:(1)全国计算机等级考试证书体系(2018版) (2)全国计算机等级考试科目设置(2018版) (3)全国计算机等级考试课程、教材列表(2018版)

苏科大 C语言知识整理

五、思考与实践 一.在()里填写正确答案。 1. 一个C语言编写的程序总是从(main函数)开始执行。 2. 在C语言程序中,用关键字(int )定义基本整型变量,用关键字(float)定义单精度实型变量,用关键字(double)定义双精度实型变量。 3. 通常一个字节包含(8)个二进制位。在一个字节中存放的最大(十进制)整数是(127),最小(十进制)整数是(-128)。 4. 在C语言中,注释部分两侧的分界符号分别为(/*)和(*/)。 5. 用字符串的形式表示China(“China”) 6. 字符串“ab\034\\\x79”的长度为(5)。 7. 若s是int型变量,且s=6,则s%2+(s+1)%2表达式的值为(1) 8. 若a,b,c均是int型变量,则计算表达式a=(b=4)+(c=2)后,a,b,c的值分别为(6)(4)(2)。 9. 若有定义int x=3, y=2; float a=2.5, b=3.5;则表达式 (x+y)%2+(int)a/(int)b的值为(1)。 10. 若x和n均是int型变量,且x的初值为12,n的初值为5,则执行表达式x%=(n%=2)后的值为(0)。 11. 假设所有变量的类型均为整型,则表达式 (a=2,b=5,a++,b++,a+b)的值为(9)。 12. 以下所有变量的类型均为整型,则sum=pad=5; pad=sum++, pad++, ++pad; 后,pad的值为(7)。 13. 已知int a,b=1; 执行语句a=-b++;后a的值为(-1)。 14. 已知int m=5, y=2; 则执行y+=y-=m*=y后y 的值为(16)。 15. 表达式8.0*(1/2)的值为(0.0)。 二.下列程序完成交换两个变量的功能,请填空。 #include void main() {int x,y; x=10;y=15; printf("before swap:x=%d,y=%d\n",x,y); x+=y ;y=x-y ; x=x-y ; printf("after swap:x=%d,y=%d\n",x,y); } 注意:在填写程序中不可修改其它行的程序,包括增加变量定义等。 四、思考与实践 1 在C语言中,关系运算符有() 2 在C语言中,当表达式值为()时表示“假”,当表达式值为()时表示“真”。 3 逻辑运算符优先级从高到低:() 4 计算下面表达式的值。设a=1,b=2,c=3。(设每小题开始时a,b,c均为此值) (1)a = a!=b?b:c (2)a>b?b+1:c+1 (3)(a=4) ? a--:b-- 5 写出满足下面条件的关系或逻辑表达式。 (1)a在区间(3,10)内。 (2)x是3的倍数。 (3)x和y的和大于100且x大于45。 (4)a等于c或b不等于0 (5)a是小写字母 6 计算下面逻辑表达式的值。设a=0,b=1,c=2,d=4。(设每小题开始时a,b,c,d均为此值) (1)a>=b (2)c-b==a (3)c!=d-b (4)b>a && c>b (5)a && d-c (6)!a && b>c (7)(b>a) || cd (10)(a||b) && cd 五、思考与实践 填空题:(每空2分) 1. C语言中的语句可分为5类,即(控制语句)、(函数调

C语言基础必须掌握的 知识点

C语言基础必须掌握的知识点 C程序的结构和格式。 1.main函数 任何一个有效的程序都有且只能有一个main()函数,它的地位相当于程序的主体,就像大树的树干,而其他函数都是为main()服务的,就像大树树干分出的枝干。 main函数具有以下3个特点: ① C语言规定必须用main作为主函数名。其后的一对圆括号中间可以是空的,但不能省略。 ②程序中的main()是主函数的起始行,也是C程序执行的起始行。每一个程序都必须有一个且只能有一个主函数。 ③一个C程序总是从主函数开始执行,到main函数体执行完后结束,而不论main函数在整个程序中的位置如何。 2.程序中的注释 在一个C程序中放在符号“/*”和“*/”之间的内容,称为对程序的注释。注释是对程序的说明。编写注释时应遵循以下4条规则: ①符号“/*”和“*/”必须成对出现,“/”和“*”两者之间不可以有空格。 ②注释可以用英文、中文,可以出现在程序中任意合适的地方。 ③在注释之间不可以再嵌套“/*”和“*/”。例如,/*/*…*/*/形式是非法的。 ④注释从“/*”开始到最近的一个“*/”结束,其间的任何内容都被编译程序忽略。换句话说,注释只是为了更好地看懂程序而做的标记,不对程序产生任何影响。 3.源程序的书写格式 C程序书写格式的基本习惯有: ①一行内可以写几个语句,一个语句可以分写在多行上。 ②每个语句和数据定义的最后必须由一个分号“;”结束(分号是C语句的一部分,不是语句之间的分隔符)。 4.C语言的风格 C语言的风格主要有以下几个方面: ●C语言简洁、紧凑,使用方便、灵活; ●运算符丰富。C语言的运算符包含的范围很广泛,共有34种运算; ●数据结构丰富,具有现代化语言的各种数据结构; ●用函数作为程序模块以实现C程序的模块化; ●C语言允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作; ●生成目标代码质量高,程序执行效率高; ●用C语言写的程序可移植性好(与汇编语言比)。 5.标识符 所谓标识符就是C语言中的变量名、函数名、数组名、文件名、类型名等。 C语言合法标识符的命名规则是: ①标识符由字母、数字和下划线组成; ②第一个字符必须为字母或下划线;

2017年3月计算机二级MSOffice提分试题及答案(1)

2017年3月计算机二级MSOffice提分试题及答案(1) 一、选择题 1.一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、c、D、E依次入栈,然后再依次出栈,则元素 出栈的顺序是()。 A.12345ABCDE B.EDCBA54321 C.ABCDE12345 D.54321EDCBA 2.下列叙述中正确的是()。 A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构 B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况 C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况 D.循环队列中元素的个数是由队头指针和队尾指针共同决定的 3.在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是()。 A.O(n) B.O(n2) C.O(1og2n D.O(n1og2n) 4.下列叙述中正确的是()。 A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的 B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构 C.顺序存储结构能存储有序表,链式存储结构不能存储有序表 D.链式存储结构比顺序存储结构节省存储空间

5.数据流图中带有箭头的线段表示的是()。 A.控制流 B.事件驱动 C.模块调用 D.数据流 6.在软件开发中,需求分析阶段可以使用的工具是()。 A.N-S图 B.DFD图 C.PAD图 D.程序流程图 7.在面向对象方法中,不属于“对象”基本特点的是()。A.一致性 B.分类性 C.多态性 D.标识唯一性 8.—间宿舍可住多个学生,则实体宿舍和学生之间的联系是()。A.一对一 B.一对多 C.多对一 D.多对多 9.在数据管理技术发展的三个阶段中,数据共享最好的是()。A.人工管理阶段 B.文件系统阶段 C.数据库系统阶段

相关文档
最新文档