本文是博主在备考时整理的一些笔记,内容若存在错误,可在评论区指正,非常感谢!<(^-^)>

系列笔记导航🚌🚌
1.🧬计算机应用基础笔记(一)
2.🎣计算机应用基础笔记(二)

开始学习前,先来听猫猫唱歌吧!🎶

计算机软件

软件的基本概念

  1. 软件系统包含系统软件应用软件
  2. 软件的定义:是用户与硬件之间的接口;用户通过软件才能使用硬件
    (裸机:没有软件的计算机,硬件什么都干不了)
  3. 程序:是指令的序列(或程序设计语言语句的序列)
    程序的特性:
    • 用于完成某一确定的信息处理任务
    • 使用某种计算机语言描述如何完成任务
    • 预先存储在计算机中,启动运行后才能完成任务
  4. 数据:计算机执行程序过程中的输入和输出数据
  5. 软件按用途和作用分为:
    • 应用软件:专门用于帮助最终用户解决各种具体应用的软件
    • 系统软件:帮用户完成最基本操作的软件
  6. 软件按知识产权分为:
    • 商品软件:先购买后使用,受到版权和许可证保护。例如windows操作系统
    • 共享软件:具有版权,可免费试用,允许拷贝散发,但不能修改。例如微软Visio
    • 自由软件(开源):用户可共享,随意拷贝,修改其源代码,允许销售或传播。例如Linux
    • 免费软件: 无需付款即可获得的软件。自由软件很多是免费软件,但反之不一定
  7. 购买一个软件,用户仅得到软件的使用权,并没有获得版权

操作系统(OS)

  1. 未安装操作系统的主机,是无法使用的
  2. 操作系统承担着用户与硬件之间的接口,也是软件与硬件之间的接口
  3. 定义:控制和管理整个计算机系统的硬件,软件和数据资源,并合理地调度计算机的工作和资源的分配,它是计算机系统中最基本的系统软件
  4. 操作系统的三个主要作用:
    • 为运行软件合理分配软/硬件资源
    • 为用户提供友善的人机界面(图形用户界面
    • 为开发应用程序提供了高效率的平台
  5. 操作系统的类型:批处理操作系统、分时操作系统、实时操作系统、个人计算机操作系统、网络操作系统、分布式操作系统、嵌入式操作系统
  6. 操作系统的基本功能:
    • 多任务与处理器管理(进程管理):CPU 资源分配。
    • 存储管理:对内存的管理,虚拟内存=物理内存+硬盘的虚拟接口。
    • 文件管理:对外存的管理,主要是创建(或保存)文件而分配存储空间,为删除文件而回收空间,
      对空闲空间进行分配 。通常采用文件目录来组织和管理外存中的信息。
    • 设备管理:对所有硬件设备管理,驱动程序是操作系统和硬件之间的接口。

      PS: 所以说为什么重装系统通常会先装驱动

  7. 常用的操作系统
    • Windows:
      Windows 桌面版是单用户、多任务操作系统。 如 Windows XP,Windows 10 等
      Windows 服务器版是多用户、多任务操作系统,如 Windows 2003 Sever。
    • UNX 操作系统:
      美国贝尔实验室开发的一种通用多用户交互式分时操作系统。
      可移植性好,90%以上的代码用 C 语言编写。
    • Linux 操作系统。
      Linux 是多用户、多任务、分时操作系统。
      Linux 是”自由软件”,其源代码向大众开放。
      Linux 系统最初是由一名芬兰大学生开发的,不是美国的研究机构。
    • HarmonyOS(鸿蒙 OS)
      HarmonyOS 是多用户、多任务、分布式操作系统。

程序设计语言

源程序编译过程
源程序编译过程
  1. 定义:程序设计语言是由人使用但计算机可以理解的一种语言,用于人与计算机之间的通信
  2. 分类:机器语言汇编语言高级程序设计语言
    • 机器语言
      (1)机器语言就是计算机的指令系统,指令是使用二进制编码表示的。
      (2)机器语言使用二进制代码编写,可以被计算机直接识别并执行,不需要翻译
      (3)机器语言编写的程序记不住、难理解、编程效率低、不易维护,但是执行效率高
      (4)机器语言对机器(硬件)有依赖性,移值性比较差。
      (5)现在已经不直接用机器语言编写程序
    • 汇编语言:符号语言
      (1)汇编语言是用助记符来表示机器指令中的操作符号与操作数。
      (2)汇编语言是面向机器的程序设计语言(对机器仍有依赖性),属于低级语言
      (3)汇编语言程序操作数直接使用十进制表示,程序相对容易理解
      (4)汇编语言程序不能直接执行,也是不可移植的
    • 高级程序设计语言(三要素:语法,语义,语用)
      (1)高级语言(按近自然语言)容易理解、记忆和使用,降低了编程难度。
      (2)高级语言克服汇编语言的缺陷,提高编程和维护效率
      (3)高级语言程序移值性好,对硬件不太依赖
      (4)高级语言对使用的符号、词汇、语法和语义等各种语言成分都有严格的规定
      (5)高级语言程序计算机不能直接执行

程序设计语言的四大成分:
(1)数据成分:程序中所涉及的数据部分(变量、数组、结构体等即,数据名、数据类型、数据结等)
(2)运算成分:程序中所包括的运算部分(算术运算、逻辑运算、关系运算等)
(3)控制成分:程序中控制构造(顺序结构、选择结构、循环结构等)
(4)传输成分:程序中数据的传输(数据交换[赋值语句]、拷贝(strcpy、memcpy)、I/O 操作(输输出库函数调用)、函数传参与返回等)

  1. 程序的控制结构
    (1)顺序结构:最基本的结构形式,按先后顺序逐条进行
    (2)选择控制结构:单分支选择if、双分支选择if..else、多分支选择if..elseif.../switch...case
    (3)循环控制结构fordo-whilewhile
  2. 编译程序和解释程序的区别
    解释:解释器直接解释并且执行源程序,不产生目标程序,相当于“口译”
    编译:把源程序编译为机器语言目标程序后,再由计算机运行,相当于“笔译” 编译程序的执行效率比解释程序高
  3. 常用程序设计语言
    (1)FORTRAN∶面向过程程序设计言,用于数值计算
    (2)Java∶跨平台,适用于网络,面向对象程序设计语言,(单继承)
    (3)C 面向过程,多用于系统、底层软件的开发等,linux 内核是 C 写的
    (4)C++;面向对象(多继承)
    (5)C#;面向对象(单继承)
    (7)VB:面向对象
    (8)BASIC 面向过程或结构化程序设计语言。
    (9)人工智能语言主要有 LISP、Prolog、Smalltalk、C++等。
    (10)脚本语言:VBA、JavaScript、VBScript、ActionScript、PHP 等

算法与数据结构

  1. 基本概念:算法是指解决问题的一个方法或一个过程,算法和程序不是一一对应的

  2. 算法的基本要求: 确定性、有穷性、可行性、至少有一个输出,可以没有输入

  3. 算法和程序的区别:

    • 算法是解决问题的方法,程序是算法的具体代码实现
    • 算法是程序设计的核心,算法的好坏决定了程序的效率
    • 程序中的语句必须是机器可执行的,算法中的操作无限制
  4. 算法的表示方法:文字叙述,流程图表示,伪代码描述,程序设计语言

  5. 评价算法的优劣应考虑的主要因素(算法的分析)
    算法分析是指对一个算法的运行时间和占用空间做定量的分析,一般计算出相应的数量级,常用时间复
    杂度和空间复杂度表示。分析算法的目的就是要降低算法的时间复杂度和空间复杂度,提高算法的执行
    效率。
    (1)算法的复杂度:时间复杂度和空间复杂度
    (2)正确性:算法的正确性是评价一个算法优劣的最重要的标准。
    (3)可读性(易理解):算法的可读性是指一个算法可供人们阅读的容易程度,算法是否容易理解。
    (4)健壮性:健壮性是指一个算法对不合理数据输入的反应能力和处理能力,也称为容错性。

  6. 算法的复杂度:分为时间复杂度和空间复杂度(算法效率的度量)

    • 时间复杂度:指执行算法所需要的计算工作量。通常,一个算法所用的时间包括编译时间和运行时
      间。度量方法是执行算法所需要的基本运算次数。
    • 空间复杂度:指执行这个算法所需要的内存空间。包括算法程序所占的空间,输入的初始数据所占
      的空间,算法执行过程中所需的额外空间。
  7. 数据结构:带结构的数据元素的集合

    • 数据的逻辑结构:是对数据元素之间的逻辑关系的描述,与数据的存储无关,是面向问题的,是独立于计算机的。
    数据逻辑结构种类
    数据逻辑结构种类

    ① 集合结构∶数据中的元素同属于一个集合。
    ② 线性表结构∶数据元素按先后次序连接。
    ③ 树形结构∶数据元素间存在一对多的关系。
    ④ 网状结构∶数据元素有各种各样的复杂连接,数据元素间存在多对多的关系。

    • 数据的存储结构(物理结构):是逻辑结构在计算机中的实现。常见的存储结构:顺序,链式,索引
    • 线性结构:栈、队列、双向链表
      非线性结构:不满足线性结构条件的数据结构。如树、二叉树为非线性结构。
  8. 线性表:是n(n>=0)个具有相同特性的数据元素的有限序列

    • 非空线性表的结构特征: ①、有且只有一个根结点 a1,它无前件 ②、有且只有一个终端结点 an,它无后件; ③、除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。
    • 结点个数 n 称为线性表的长度,当 n=0 时,称为空表
    • 线性表的顺序存储结构: 用一组 地址连续的 存储单元 依次 存储线性表的数据元素
    • 线性表采用顺序结构的优点:查询速度快,简单,运算方便
      缺点:删除和插入的效率比较低

      顺序存储结构的插入运算
      1.元素依次向后移动一个元素,最后的元素先移动
      2.将新元素插入到表中
      3.表中元素长度加一

      删除运算:删除表中第 i 位置上的元素,处于位置i及后面的元素将会依次向前挪一位

  9. 栈和队列

    • 栈只允许在表的一端进行插入和删除的线性表;插入,删除的一端为栈顶,另一端为栈底;当表中没有元素时为空栈
      遵循后进先出原则:LIFO
    • 队列只允许在表的一端插入,在另一端删除,允许插入的一端是队尾(rear),允许删除的一端为队头(front);当表中没有元素是空队列;
      遵循先进先出原则:FIFO
    • 定义:树是一种非线性结构,是 n 个结点的有限集。当 n=0 时为空树,n>0 时为非空树。

      关于树的基本术语
      1.根:即根结点(没有前驱结点),结点1为根节点
      2.叶子:即终端结点(没有后继结点)
      3.分支结点:除叶子结点以外的结点。
      4.结点的层次:根结点在第一层,同一层上左右结点的子结点在下一层。
      5.树的深度:所处层次最大的那个结点的层次。从根节点(结点 1)开始数有多少层,就是多少深度,如图上所示,有三层。即深度为 3。
      6.树的度:树中所有结点的度的最大值。即 1 结点有三个子结点(2,3,4),且为最大,度为 3。

      二叉树图例
      二叉树图例
    • 二叉树是一种特殊的树形结构,每个结点最多只有两棵子树,且有左右之分不能互换,因此,二叉树有五种不同的形态。
      性质 1 在二叉树的第k层上,最多有 2k-1(k≥1)个结点。
      性质 2 深度为m的二叉树最多有2m个结点。
      性质 3 在任意一棵二叉树中,度为0的结点(叶子结点)总是比度为2的结点多一个。
      性质 4 具有n个结点的二叉树,其深度不小于[log2n]+1,其中[log2n]表示为 log2n 的整数部分。
    • 满二叉树:除最后一层外,每一层上的所有结点都有两个子结点。
      满二叉树。
      满二叉树。
    • 完全二叉树:除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边(连续)的若干结点。
      完全二叉树。
      完全二叉树。
    • 二叉树的遍历
      前序遍历:先访问根结点、然后遍历左子树,最后遍历右子树;(根左右
      中序遍历:先遍历左子树、然后访问根结点,最后遍历右子树;(左根右)
      后序遍历:先遍历左子树、然后遍历右子树,最后访问根结点;(左右根
  10. 软件工程

    • 软件危机:软件危机泛指在计算机软件的开发和维护过程中遇到的一系列严重的问题,集中表现在成本,生产效率等几个方面。
    • 定义:软件工程是指采用工程的概念、原理、技术和方法指导软件的开发与维护。
    • 三要素:方法,工具,过程
    • 软件的生命周期
      1.软件定义:可行性分析,需求分析
      2.软件开发:概要设计详细设计,编码,测试
      3.运行维护:维护
    • 结构化设计方法:总体设计和详细设计,是面向过程的设计方法,强调程序的可读性和易维护性
    • 总体设计
      设计原理:模块化、抽象、逐步求精、信息屏蔽和局部化、模块独立 模块的独立程度可以由两个定性标准衡量:耦合和內聚 软件设计应尽量追求松散耦合,避免强耦合,原则是低耦合
      总结:软件设计应做到高內聚,低耦合
  11. 软件测试:为了发现错误而执行程序的过程,成功的测试是发现了至今尚未发现的错误的测试。
    目的:希望能以最少的人力和时间发现潜在的各种错误和缺陷。
    一般软件测试分为:单元测试、集成测试、系统测试和验收测试

    • 白盒测试:把程序看成装在一只透明的白盒子里,测试者完全了解程序的结构和处理过程。
      方法:逻辑覆盖,基本路径测试
    • 黑盒测试:是把程序看成一只黑盒子,测试者完全不了解,或不考虑程序的结构和处理过程。
      方法:等价划分法,边界值分析法,错误推测法
  12. 程序调试 程序员狂喜(bushi
    在对程序进行了成功的测试之后将进入程序调试(Debug,即排错)。程序的调试任务是诊断和改正程序中的错误。
    基本步骤:错误定位;修改设计和代码,以排除错误;进行回归测试,防止引进新的错误

    静态测试:不运行程序,仅修改代码定位错误

    动态测试:实际运行程序,通过输入测试数据,发现和定位程序中错误

补充

  1. 在windows XP中,用作虚拟内存的页面文件名为PAGEFILE.SYS,它位于系统盘的根目录下
  2. 操作系统中,负责处理用户的输入/输出请求,方便,高效,安全地完成输入输出操作的是:设备管理模块
  3. 数据结构包括三方面的内容,它们是:数据的逻辑结构、数据的存储结构和数据的运算
  4. 编译程序用于将高级语言程序转换成目标程序
  5. 操作系统存储管理的主要功能包括对内存空间的分配,回收,共享,保护和补充
  6. windows操作系统之所以能同时进行多个任务的处理,取决于CPU的线程数
  7. 软件的可靠性包括正确性和健壮性
  8. 已经运行了操作系统的计算机称为“虚计算机”
  9. 一种数据的逻辑结构根据需要可以表示成多种存储结构
  10. 程序语言中的控制成分包括顺序结构选择结构重复结构
  11. GUI:图形用户界面
  12. 编译型语言:C,C++,C#等;解释型语言:Java