C语言基础知识.docx
- 文档编号:3967967
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:20
- 大小:64.61KB
C语言基础知识.docx
《C语言基础知识.docx》由会员分享,可在线阅读,更多相关《C语言基础知识.docx(20页珍藏版)》请在冰点文库上搜索。
C语言基础知识
一、数据存储结构
数据的存储结构:
数据在计算机中的存储方式。
顺序存储(常用于存储具有线性结构的数据)
链式存储(运用到指针)
数据的存储方式索引存储(每个结点有唯一的索引号)
散列存储(思想:
构造一个从集合K到存储区域M的一个函数h)
二、算法
有穷性:
一个算法必须在有穷步之后终止,即必须在有限时间内完
成。
确定性:
算法的每一步必须有确切的定义,无二义性。
可行性:
算法中的每一步都可以通过已经实现的基本运算的有限次
执行得以实现。
算法设计的要求:
正确、可读、健壮、高效。
算法的时间复杂度:
指执行算法所需要的计算工作量,即算法执行过程中所需要的基本运算的次数。
算法的空间复杂度:
指执行这个算法所需要的内存空间。
算法的平均情况下=(最好情况下+最坏情况下)/2
O
(1)常阶数
时间复杂度O(n)线性阶
O(
)平方阶
三、线性表
A1
A2
A3
A4
A5
…
A1是A2的直接前驱,A2是A1的直接后继。
顺序存储(简称顺序表)
线性表的存储方式链式存储(简称线性链表)
按链的类别分单链表
线性链表循环链表
双向链表
双向循环链表
静态链表
按节点分配方式分
动态链表
四、栈(先进后出的线性表)
栈顶:
允许插入和删除的一端。
栈低:
不允许插入和删除的另一端。
栈的存储方式顺序存储
链式存储
五、队列
定义:
一端插入操作,一端删除操作;(先进先出的线性表)允许插入的一端为队尾,允许删除的一端为对头。
注意:
头指针并不是结点,只是一个指针,头指针可以没有data域。
六、树
结点的度:
结点拥有的子树个数。
树的度:
树中所有结点的度的最大值。
叶子:
度为0的结点(终端结点)。
分支结点:
度不为0的结点(非终端结点)。
树的深度:
树中结点的最大层次值,又名树的高度。
双亲与孩子:
结点的子树的根称为该结点的孩子结点,而该结点称作孩子结点的双亲结点。
祖先与子孙:
结点的祖先是指从根到该结点经历分支上得所有结点,以结点为根的子树中的任一结点都是该结点的子孙。
兄弟:
具有同一双亲结点的孩子结点之间互称为兄弟(有堂兄弟之分)。
七、二叉树
特点1、每个结点最多有两棵子树。
2、子树有左右次序。
满二叉树(有
个结点)
特点1、每一层的结点数都是最大值,即它是具有最多结点数的二叉树。
2、不存在度数为1的结点,且树叶都在最底层。
完全二叉树
特点1、若某个结点没有左孩子,则它一定没有右孩子。
2、完全二叉树的任一结点的右分支下的子孙的最大层次为L,则其左分支下的子孙最大层次为L或L+1。
满二叉树与完全二叉树的关系1、满二叉树是完全二叉树,完全二叉树不一定是满二叉树
2、满二叉树最底层,从最右边开始连续删去若干结点后得到的二叉树仍然是一棵完全二叉树。
二叉树的存储方式顺序存储
链式存储
二叉树是非线性结构
先序遍历:
先访问根结点,然后访问左子树、右子树,又称根序访问。
中序遍历:
先访问左子树,然后访问根结点、右子树。
后序遍历:
先访问左子树,然后访问右子树、根结点。
八、软件开发
软件开发方法是在总体设计阶段完成的任务。
软件开发工具是在实现阶段完成的任务。
软件开发费用是在可行性研究阶段完成的任务。
软件系统功能是在需求分析阶段完成的任务。
]
九、图
1.无向图:
顶点V的度是和V想并联的边的数目。
2.有向图:
分为入度和出度。
入度:
把指向V的边的条数称为顶点V的入度,ID(V)。
出度:
把从顶点V发出去的边的条数称为顶点V的出度,OD(V)。
D(V)=ID(V)+OD(V).
邻接矩阵存储
图的存储方式邻接表存储
十、排序
直接插入排序法
插入排序希尔排序法
冒泡排序法
交换排序法快速排序法
直接选择排序法
选择排序法堆排序
排序分为内排序(在内存中处理)和外排序(在内存不足情况下,使用外存)。
关键码可以是排序码,但排序码不一定是关键码。
如:
把一个班的所有同学的学号、年龄、身高看成一个记录的三个字段;如果按全班同学的身高进行排序,身高是排序码,但不是关键码;如果按全班同学的学号进行排序,学号是排序码,也是关键码,因为每个学生的学号不同。
十一、文件操作
feof(文件指针);
功能:
当feof的返回值为零时,表示文件未结束;当返回值为非零值时,则表示文件结束。
ferror(文件指针);
功能:
当ferror函数的返回值为零时,则表示文件未出错;当返回值为非零值时则表示文件出错了。
clearer(文件指针);
功能:
用于清除文件指针所指向的文件的出错标志和文件结束标志,使它们的值为零。
假设在调用一个输入函数时出现错误,这时ferror函数值为一个非零值,在调用clearer函数后,ferror函数值为零。
字符的输入和输出
fputc(ch,fp);
将一个字符输出到文件,当输出成功时,fputc的返回值为所输出的字符;当输出失败时,fputc的返回值为EOF,它的值为-1.
ch=fgetc(fp);正确写法;
fgetc(ch,fp);错误写法。
EOF函数适用,while(ch!
=EOF);
文件使用方式
含义
“r”(只读)
为输入打开一个文本文件
“w”(只写)
为输出打开一个文本文件
“a”(追加)
向文本文件末尾增加数据
“rb”(只读)
为输入打开一个二进制文件
“wb”(只写)
为输出打开一个二进制文件
“ab”(追加)
向二进制文件尾增加数据
“r+”(读写)
为读/写打开一个文本文件
“w+”(读写)
为读/写建立一个新的文本文件
“a+”(读写)
为读/写打开一个文本文件
“rb+”(读写)
为读/写打开一个二进制文件
“wb+”(读写)
为读/写建立一个新的二进制文件
“ab+”(读写)
为读/写打开一个二进制文件
字符串的输入和输出
fgets(str,n,fp);
n是字符串的长度。
fputs(str,fp);
读写文本文件
fprintf(文件指针,“控制符”,存储的地址);
fscanf(文件指针,“控制符”,存储地址);
读写二进制文件
freed(str,size,count,fp);
size是一次要读/写的字节数;count是要读/写大小为size个字节的数据项的个数。
fwrite(str,size,count,fp);
文件定位
rewind(文件指针);
功能:
将文件的位置指针置于文件的开头,此函数没有返回值。
fseek(文件类型指针,位移量,起始点);
功能:
移动文件的位置指针到指定的位置,随后的读/写操作将从此位置开始。
ANSIC标准指定的标识符
起始点
标识符
用数字代表
文件开始
SEEK_SET
0
文件当前位置
SEEK_CUR
1
文件末尾
SEEK_END
2
位移量是long型数据,指以起始点为基点,向前移动的字节数。
当位移量为正整数时,表示位置指针从指定的起始点向文件尾部方向移动;当位移量负数时,表示位置指针从指定的起始点向文件首部方向移动。
fseek函数一般用于二进制文件,因为文本文件要进行字符转换,计算位置时会产生混乱。
fseek(fp,20L,0);/*将位置指针移到离文件头20个字节处*/
fseek(fp,10L,1);/*将位置指针移到离当前位置10个字节处*/
fseek(fp,-30,2);/*将位置指针从文件末尾处回退30个字节*/
0可以用SEEK_SET代替;
1可以用SEEK_CUR代替;
2可以用SEEK_END代替。
ftell(文件指针);
功能:
获得文件位置指针的当前位置。
ftell函数的返回值是相对于文件开头的位移量(字节数),如果函数返回值为-1L,表示出错。
十二、排序
长度为n的线性表进行排序,在最坏的情况下,每种排序的排序次数:
快速排序法
冒泡排序法n(n-1)/2次
直接排序法
堆排序法--------n
n次
二分查找--------
n次
十三、真题知识
带箭头的线段在图元之间表示图元关系,在数据流程图之间表示数据流,在程序流程图之间表示控制流,在模块之间表示调用关系。
抽象
软件设计原则模块化
信息隐蔽
数据独立性
任意一棵满二叉树中,度为0的结点总是比度为2的结点多一个。
长度为n的线性表进行排序,在最好的情况下,每种排序的排序次数:
直接排序n
n次
快速排序
堆排序-----n(n-1)/2次
数据耦合度
标记耦合度
模块间的耦合度公共耦合度
内容耦合度
外部耦合度
控制耦合度
非直接耦合度
概念设计
数据库设计内容逻辑设计
关系表中,每一行称为一个元组,对应表中的一条记录;每一列称为一个属性,对应表中的一个字段;在二维表中凡能唯一标识元组的最小属性集称为该表的键和码。
C语言中只有在使用时才占用内存单元的变量auto:
自动变量
register:
寄存器变量
测试用例包括输入值集和输出值集。
在树形结构中,树根结点没有前件,叶子结点没有后件。
数据结构分为逻辑结构和存储结构,其中线性表属于存储结构。
需求分析阶段
概念设计阶段
逻辑设计阶段
数据库设计物理设计阶段
实施阶段
运行和维护阶段
分类性
多态性
对象的基本特点封装性
唯一性
模块独立性
程序执行的效率与数据的存储结构密切相关。
线性表的顺序存储结构和线性表的链式存储结构分别是随机存取的存储结构和顺序存取的存储结构。
需求分析的最终结果是产生需求规格说明书。
为了便于对照检查,测试用例应由输入数据和预期的输出结果两部分组成。
为了提高测试的效率,应该集中对付那些错误集的程序。
程序的清晰第一,效率第二。
程序的可读性好
程序的设计风格要求程序中要有必要的注释
输入数据前要有提示信息
软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指系统结构部件转换成软件的过程描述。
数据处理的最小元素是数据项,数据项由数据元素组成。
满二叉树中,叶子结点数为
,结点数为
-1。
数据库系统的核心是数据库管理系统。
数据库设计是数据库的核心问题。
数据模型是数据库设计的核心。
在关系模型的数据库中,基本结构是二维表,这种二维表称为关系。
关系的列称为属性,一个具有N个属性的关系称为N元关系。
C语言中的函数可以进行递归调用,但是不能在函数中定义函数的。
函数的形参和实参分别占用不同的存储单元。
软件定义时期主要包括可行性研究和需求分析两个阶段。
改正性维护
软件维护活动包括适应性维护
完整性维护
预防性维护
数据的逻辑结构有线性结构和非线性结构。
E-R图,又称实体-联系图,其基本要素为实体型、属性和联系;其中矩形表示实体,椭圆表示属性,菱形表示联系。
N-S图是无线流程线图,又称盒图。
程序流程图中的方框表示处理步骤,菱形框表示逻辑判断,箭头表示控制流向。
程序设计通常分为问题建模、算法设计、编写代码和编译调试四个阶段。
PAD图即问题分析图,它是一种由左往右展开的二维树形结构。
一对一联系:
(1:
1)
联系一对多联系:
(1:
N)
多对多联系:
(M:
N)
在结构化程序设计中,模块划分的原则是模块内具有高内聚度,模块间具有低耦合度。
测试的挑剔性
软件测试的特征完全测试的不可能性
测性的经济性
C函数定义的一般格式有两种,传统格式和现代格式;传统格式也成K&R格式,是早期编译系统使用的格式;现代格式又称ANSI格式,是现代编译系统使用的格式。
C语言中,变量的隐含存储类别是auto。
无static声明的局部变量,用作存储类别的声明时,可省略。
常用的黑箱测试有等价划分法、边值分析法和错误推测法。
数据库管理系统常见的数据模型有层次模型、网状模型和关系模型。
将软件产品从提出、实现、使用、维护到停止使用退役过程成为软件生命周期。
数据库保护分为安全性控制、完整性控制、并发性控制和数据的恢复。
源程序要文档化
良好的程序设计风格数据说明的次序要规范化
避免滥用goto语句
瀑布模型
软件开发模型快速原型法模型
螺旋模型
单个用户使用的数据视图的描述称为外模式。
概念模式:
能见到全局数据结构视图(数据库中的整体逻辑结构描述)。
内模式(存储模式):
物理存储结构。
数据库技术的根本目标是要解决数据的共享问题。
structex
{
intx;
floaty;
charz;
}example;
struct:
结构体类型的关键字。
example:
是结构体变量名。
x,y,z:
都是结构体成员名。
structex:
是结构体类型名。
长度为n的顺序存储线性表,当在任何位置上插入一个元素所需移动元素的平均个数为n/2.
自顶向下
结构化程序设计方法逐步求精
模块化
限制使用goto语句
软件测试的主要目的是尽可能多地发现软件中的错误。
在面向对象方法中,属性与操作相似的一组对象称为类。
程序测试分为静态分析和动态测试,其中静态分析是指不执行程序,而只是对程序文件进行检查,通过阅读和讨论,分析和发现程序中的错误。
当数据的物理结构(存储结构)时,不影响数据库的逻辑结构,从而不致于引起应用程序的变化,只是指数据的物理独立性。
栈和队列的共同点特点是只允许在端点处删除和插入元素。
工具
软件工程三要素过程
方法
数据库系统的数据具有高共享性和低冗余性,但不能完全避免数据冗余;数据的一致性是指在系统中间一数据的不同出现应保持相同的值。
相对于数据库系统,文件系统的主要缺陷有数据关联差,数据不一致和冗余性。
C语言的标识符可分为三类,关键字、预定义标识符和用户标识符。
结构化程序设计方法有三种基本控制结构,循环结构、顺序结构和选择结构。
在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小。
在数据管理技术的发展过程中,可实现数据共享的时数据库系统阶段。
需求分析
数据库设计的四个阶段概念设计
逻辑设计
物理设计
软件工程研究的内容主要包括软件开发技术和软件工程管理。
常用的黑箱测试有等价分类法、边值分析法、因果图法和错误推测法。
百箱测试有逻辑覆盖(名字不一定)和基本路径测试。
数据库保护分为安全性控制、完整性控制、并发性控制和数据的恢复。
计算队列中元素个数:
(队尾-对头+数组容量)%数组容量。
软件是程序、数据和文档的集合。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 基础知识