这一部分只是记录一些单项选择题里面的常考的知识点和一些易错点(并非全部知识点),和答题技巧,知识的讲解不是很严谨,持续更新
第一章 公共基础知识
计算机系统
计算机各部件之间的信息传输线称为系统总线,它不包括通讯总线
操作系统在操作和管理进程的过程中,进程存在的唯PCB
RAM在计算机和数据系统中用来暂时存储程序,数据和中间结果
理论上计算机虚拟内存最大容量取决于计算机地址位数
一进程已获得除CPU以外的所有所需运行资源,经调度分配CPU给它后,该进程将进入运行状态
当一进程在运行状态下结束时要调用 撤销进程原语
一个正在运行的进程由于所申请的资源得不到满足要调用.阻塞进程原语
两个整数的补码之"和"等于两整数"和"的补码
虚拟存储技术是对主存逻辑扩展的技术
在一个程序中,如果各个模块是设计良好的独立单元,并且遵循一定的编程规范和接口设计原则,那么在很多情况下,各个模块是可以独立编译的。比如在面向对象编程中,将不同的功能封装在不同的类中,每个类可以单独编译成目标文件。 然而,并不是每个模块都能独立运行。一个模块可能依赖于其他模块提供的数据、功能或环境设置等。例如,一个模块可能调用了另一个模块中的特定函数,或者依赖于特定的全局变量或配置。如果单独运行这个模块,可能会因为缺少依赖而无法正常工作。 所以,在一个程序中,每个模块通常可以独立编译,但不一定都能独立运行。
数据结构与算法
算法
空间复杂度指算法在执行过程中所需要的计算机存储空间
时间复杂度指执行算法所需要的基本运行次数
顺序存储和链式存储
1、他们都是一种数据的存储方式,即数据放到电脑内存的两种方法
2、前者存放的数据在内存中的地址是有顺序的,后者数据在内存中的地址是不一样的,这些数据靠结点连接在一起。
3、顺序存储结构的存储一定是连续的,链式存储结构的存储不一定是连续的。
4、循环队列是队列的顺序存储结构,若题目出现循环链表是循环队列的存储结构,是错误的
5、结点中具有多个指针域的链表称为多重链表
6、在线性表的链式存储结构中,其存储空间一般是不连续的,并且前件结点的存储序号可以小于也可以大于后件结点的存储序号
7、有多个指针域的链表有可能是线性结构(双向链表)
栈和队列
1、带链的栈和队列和不带链的栈和队列都是线性结构
2、栈中元素 “ 先进后出 ”,队列元素 “ 先进先出 ”
3、在栈中,栈顶指针的动态变化决定栈中元素的个数
二叉树
在树中,结点数为所有结点的度和再加一
设二叉树的所有节点个数为N,度为零的结点(叶子结点)个数为n0,度为一的结点个数为n1,度为二的结点个数为n2。有如下性质
二叉树的性质
1、N = n1 + n2 + n0
2、n0 = n2 + 1
满二叉树
定义:除最后一层外,所有结点都有两个子结点
堆:属于满二叉树结构,但是要满足出最后一行外,每个节点和其两个子结点要有一定的关系
(1,2,3,4,5,6,7,8)是(8,7,6,5,4,3,2,1)是
(2,1,3,6,5,4,8,7)不是
性质:
1、满二叉树在第 i 层 上有2 ^ ( i - 1 )个结点,即满二叉树叶子结点数为2 ^ ( i - 1 )
2、深度为m的满二叉树有 2 ^ m - 1 个结点
完全二叉树
定义:除最后一层外,每层的节点数达到最大,最后一层只缺少右边的若干节点(从右往左依次缺几个都可以,但是不能间接缺少)。
二叉树的遍历
前序遍历
在二叉树的前面画点,再一次来连接即可
中序遍历
在二叉树的中间画点,再一次来连接即可
后序遍历
在二叉树的后面画点,再一次来连接即可
程序设计基础
结构化程序设计
结构化程序设计的原则
(1)自顶向下(2)逐步求精(3)模块化(4)限制使用GOTO语句(并不是禁止使用GOTO语句)
结构化程序设计的基本结构
(1)顺序结构(2)选择结构(3)重复(循环)结构
结构化程序设计强调
程序的易读性
面向对象的程序设计
面向对象的方法的本质
(1)对象
对象的基本特点:标识唯一性、分类性、多态性、封装性、模块独立性
(2)类(3)实例(4)消息(5)继承(6)多态性
软件工程基础
软件的特点
(1)软件是一种逻辑实体,而不是物理实体,具有抽象性
(2)软件的生产与硬件不同,他没有明显的制作过程
(3)软件在运行、试用期间不存在磨损、老化问题
(4)软件的开发、运行对计算机系统有依赖性,受计算机系统的限制,这导致了软件移植问题。
(5)软件的复杂性较高、成本昂贵
(6)软件的开发涉及诸多社会因素
结构化分析方法
需求分析阶段的工作:需求获取、需求分析、编写需求规格说明书、需求评审
编写需求规格说明的内容不包括算法详细设计
结构化分析常用的工具
(1)数据流图(DFD图)
①“→”:表示数据流。沿箭头方向传送数据的通道,一般在旁边标注数据流名。(程序流程图中箭头表示控制流)
②“□”:表示数据的源点和终点。表示系统和环境的接口,属系统之外的实体。
“O”:表示对数据进行加工处理。输入数据经加工变换产生输出。
“=”:表示存储文件。表示处理过程中存放各种数据的文件。
(2)数字字典
(3)判定树
(4)判定表
结构化设计方法
软件设计是把软件需求转换为软件表示的过程
概要设计
四个任务:设计软件系统结构、数据结构及数据库设计、编写概要设计文档、概要设计文档评审
详细设计的工具
(1)图形工具:程序流程图、N-S图、PAD图、HIPO图




(2)表格工具:判定表
(3)语言工具:PDL(伪码)
软件测试
软件(程序)测试目的:发现错误
程序的调试目的:改正错误
软件测试实施步骤
单元测试、集成测试、确认测试
软件测试的方法
软件测试用例包括输入数据和预期输入结果
白盒测试用例主要根据是程序内部逻辑,黑盒测试用例主要根据是程序外部功能。(白内-障)
黑盒测试又称功能测试,着重测试软件功能
白盒测试:逻辑覆盖法、基本路径测试法(白逻基)
黑盒测试:等价类划分、边界值分析、错误推测法(等边错)
数据库设计基础
数据库的三级结构
关系模型
第二章 C语言程序设计
1、
int a,b,c=4;
a=(b=4)=c;
a=(b=4)=c;这个赋值语句是非法的,不能将常量赋给常量,也就是说等号左边必须是变量才能赋值