计算机二级C语言笔记

计算机二级C语言笔记

一、公共基础题

1.存储结构

(1)链式存储结构:一组不连续的存储单元存储表中的各个元素,各数据结点是可连续,也可不连续;链表通常有单链表,双链表,循环链表。

(2)树形存储结构: 所谓树形存储结构,就是数据元素与元素之间存在着一对多关系的数据结构。在树形存储结构中,树的根节点没有前驱结点,其余的每个节点有且只有一个前驱结点,除叶子结点没有后续节点外,其他节点的后续节点可以有一个或者多个。
在这里插入图片描述
(3)图型存储结构: 数据元素与元素之间的关系是任意的,任意两个元素之间均可相关,即每个节点可能有多个前驱结点和多个后继结点,因此图形结构的存储一般是采用链接的方式。图分为有向图和无向图两种结构,如下图
在这里插入图片描述
参考链接

2.求结点数性质

(1)叶子结点数:结点个数n,总结点数=n+各度的结 点数相加
(2)数的性质:数的结点数为树中所有结点的度数之和再加1
(3)二叉树性质:度为0的结点数总是比度为2的结点数多1
(4)二叉树基本性质:深度为k的二叉树,最多有2^k-1个结点
(5)完全二叉树:度为1的结点个数为0或1
(6)满二叉树:深度为k的二叉树,最多有2^k-1
个结点,第k层的结点数2^(k-1)
(7)完全二叉树:具有2n个结点的完全二叉树中,叶子节点数为n

3.三种遍历方法

(1)先(根)序遍历(根左右)
(2)中(根)序遍历(左根右)
(3)后(根)序遍历(左右根)
举个例子:
在这里插入图片描述
先(根)序遍历(根左右):A B D H E I C F J K G
中(根)序遍历(左根右) : D H B E I A J F K C G
后(根)序遍历(左右根) : H D I E B J K F G C A

4.笛卡尔积等运算

参考链接

5.范式

第一范式(1NF):主键不为空且不重复,字段不可再分
第二范式(2NF):属于第一范式,每个非主属性都没有对主键的部分依赖
第三范式(3NF):属于第二范式,没有非主属性对主键的传递依赖
BCNF范式:所有属性都不传递依赖于关系的候选键

6.关系数据模型

(1)三个组成部分:数据结构,数据操作,数据完整性约束
(2)三大模式:概念模式也称为模式,是数据库系统中全局数据逻辑结构的描述,全体用户的公共数据视图。外模式也称子模式或者用户模式,是用户的数据视图,也就是用户所能够看见和使用的局部数据的逻辑结构和特征的描述,是与某一应用有关的数据的逻辑表示。内模式又称物理模式,是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。

7.时间复杂度和最坏情况比较次数

(1)最坏情况下:有序表的二分查找:log2(n),顺序查找:n, 寻找最大项:n-1,寻找最小项:n-1,快速排序(简单插入,冒泡排序):n(n-1)/2,堆排序:nlog2(n)
(2)时间复杂度:有序表的对分查找:O(log2n),寻找最大项:O(n-1),顺序查找:O(n),堆排序:O(nlog2n)

8.数据库操作系统

(1)基本功能:处理机管理(进程),存储管理,设备管理,文件管理,用户接口
(2)数据库系统包括数据库和数据库管理系统
(3)逻辑模型:层次模型,网状模型,关系模型,面向对象模型
(4)数据库系统特点:减少数据冗余和增强数据独立性,文件系统则不能。文件及数据系统均能管理庞大的数据量和管理各种文件
(5)数据库管理系统:
数据定义:负责数据模式定义
数据操纵:数据的增删改查
数据控制:数据完整性,安全性的定义与检查以及并发控制
(6)数据库管理技术的三阶段:人工管理阶段,文件系统阶段,数据库系统阶段
(7)数据库三模式:概念模式(模式)、外模式、内模式
(8)关系数据库的基本特征:
在这里插入图片描述

在这里插入图片描述
(8)数据库系统模型:概念数据模型、逻辑数据模型、物理数据模型
在这里插入图片描述

9.线性结构和非线性结构

(1)非空线性结构条件:1.有且只有一个根节点 2.每个结点最多一个前件一个后件;
在这里插入图片描述

10.软件工程基础

(1)宽度:最大模块层数的层的控制跨度
在这里插入图片描述
(2)软件设计阶段工具(结构设计、数据设计、接口设计、过程设计):结构图,程序流程图,N-S图,PAD图、HIPO图、判定表,PDL
(3)软件需求阶段工具:DFD(数据流程图)
(4)软件概要设计任务:①设计软件系统结构;②数据结构及数据库设计;③编写概要设计文档;④概要设计文档评审;
(5)软件设计准则:
在这里插入图片描述

11.软件测试

(1)黑盒测试(功能测试,数据驱动测试):着重测试软件功能;方法:等价划分法,边界值分析法,错误推测法,因果图;
(2)白盒测试:技术有逻辑覆盖测试和基本路径测试,逻辑覆盖测试包括语句覆盖、路径覆盖、判定覆盖、条件覆盖、判定-条件覆盖;
(3)软件测试步骤:单元测试、集成测试、确认测试(验收测试)、系统测试
(4)确认测试:检查软件的功能、性能及其他特征是否与用户的需求一致,以需求说明书作为依据的测试;
(5)集成测试(组装测试):对个模块按照设计要求组装成的程序进行测试,主要目的发现与接口有关的错误。方法:非增量()和增量(自顶向下,自顶向上,自顶向下和自底向上结合)
(6)单元测试:对模块进行正确性的检验测试,以尽早发现个模块内部可能存在的错误;

13.关系代数

在这里插入图片描述

二、程序基础设计

(1)类是对象的抽象,一个对象是其对应类的一个实例;
(2)对象主要特征:标识唯一性,分类性,封装性,多态性,模块独立性
(3)对象:描述该对象属性的数据以及可以对这些数据施加的所有操作封装在一起构成的统一体;

三、C语言基础

算法的特征:有穷性:在执行有穷步骤后能够结束,并在有限时间内完成;
(2)确定性:算法中每一步都有确切的含义
(3)可行性:算法中的操作能够用已经实现的基本运算执行有限次来实现
(4)输入:一个算法有零个或者多个输入
输出:有一个或多个输出
·算法的描述:伪代码,流程图,N-S结构图
·字符常量:单个字符,单引号,可进行关系运算不能进行数值运算,可在定义时赋值
·整性变量:int型,short型,long型,unsigned型
·十进制没有前缀,输出格式为%d;八进制以0位前缀,输出格式为%o;十六进制为0X或0x为前缀,输出格式为%x;

1.运算符与表达式

(1)&:按位与,两个二进制都为1,则结果为1否则为0
(2)|:按位或,两个二进制有一个为1,则结果为1;
(3)^:异或,个二进制有一个为1,则结果为1;同为1或同为0结果为0;
(4)~:按位取反,0的按位取反为-1
(5)||

2.基本语句

(1)scanf函数遇到空格会结束输入,格式控制字符串是为了输入数据,不会输出到屏幕上;
(2)gets函数用于从终端读入字符串
(3)getchar函数用于从终端读入字符
(4)fputs函数用于把字符串输出到文件
(5)fwrite函数用于以二进制形式输出数据到文件
(6)printf(),%md指输出带符号的十进制整数,最小宽度m位,不足m位右端补空格补全,超过m按实际位数输出;%.nf表示以小数形式,小数n位支持四舍五入

3.选择结构

(1)Switch语句:switch(x)x不能为浮点型,long类型也不能是字符串;只能是整性和字符型
(2)break用于开关语句switch时,可使程序跳出switch而执行switch以后的语句
当break语句用于do-while,for,while循环语句时,可使终止循环而执行循环后面的语句

4.数组

(1)strcpy:字符串拷贝函数,strcpy(p,q)将q所指向的字符串拷贝至p开始的存储位置;
(2)strcat:字符串连接函数,strcat(p,q)将元素加到p上;内存空间会减少一个字符位置
(3)strcmp:字符串比较函数,strcmp(p,q)两个字符串自左向右逐个字符比较(安照ASCII码值比较),以第一个不相同字符大小作为比较结果;
(4)x[1]+1:x[1]表示二位数组x的第二行的行地址,x[1]+1表示二位数组x的第二行第二列的地址

5.函数

(1)auto:函数的局部变量,动态分配空间,调用时系统分配空间,调用结束就会自动释放;
(2)static:静态局部变量属于静态存储类别,在静态存储区分配存储空间,在程序运行时间都不会释放;

6.指针

(1)定义:类型名 *指针变量
(2)赋值:将某个变量的地址即&x赋给指针,例:float x; float *p=&x;
(3)字符串:是用一对双引号括起来的字符序列,并用字符型数组存放;char str[]="\0";
(4)int(*f)(int):f是指向函数的指针变量,该函数具有一个int类型的形参;

6.编译预处理和动态存储分配

(1)宏定义:宏定义写在函数的花括号外边,作用域为其后的函数,宏定义只做简单替换。末尾不需要分号不属于C语言语句,宏展开不需要占用运行时间,只占编译时间;例:#define S(x) 4xx+1
在这里插入图片描述
(2)NULL:是在stdio.h头文件中定义的预定义符,值为0;
(3)x[1]+1:x[1]表示二位数组x的第二行的行地址,x[1]+1表示二位数组x的第二行第二列的地址

7.结构体与公用体

(1)结构体一般形式
在这里插入图片描述

(2)关键字typede:将C语言中已有的数据类型作了置换;
在这里插入图片描述
在这里插入图片描述

8.结构体传值、传参

参考链接
参考链接
在这里插入图片描述

9.文件

(1)fread(buffer,size,count,fp)
Buffer:用于接受数据的内存地址,如果被调用成功返回count
Size:单个元素的大小,单位是字节
Count:元素的大小,单位是字节
Stream:输入流
(2)fwrite()函数:回到头文件时,覆盖字符(不全部覆盖,写入多少字符覆盖多少字符)
(3)rewind函数
(4)fprintf(f,abc)函数:将文件内容变成abc;
(5)feof函数:从输入流读取数据,如果到文件末尾(遇文件结束符)eof函数数值为非零值;

总结

多做练习题,多总结;

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值