计算机二级C语言知识点

计算机二级考试C语言选择题知识点总结,易错点总结(持续更新) 最近要考计算机二级c语言,是因为自我感觉 自己的编程能力实在是太差了,课堂上有没有好好的学,所以简单抽时间看看二级的题库,做一些经常出错的知识点的总结!有错的希望大家能够提出来,谢谢大家了! 但是知识点是混杂的随机出来的 不能将一个整数直接赋给指针变量做地址 函数的返回值可以是地址,即指针 函数的调用中形参值的变化不会传递给实参 数组 x[2][3]是指两行三列的二维数组 字符串的输入... 阅读详情

第一章 数据与算法

1.1 算法

  1. 各种排序方法中最坏情况下需要比较的次数分别为:冒泡排序n(n-1)/2、快速排序n(n-1)/2、简单插入排序n(n-1)/2、简单选择排序n(n-1)/2、希尔排序O(n1.5)、堆排序O(nlog2n)。

  2. 算法复杂度,即算法在编写成可执行程序后,运行时所需要的资源,资源包括时间资源和内存资源。一个算法的评价主要从时间复杂度和空间复杂度来考虑。算法的时间复杂度是指执行算法所需要的计算工作量。空间复杂度是指算法在计算机内执行时所需存储空间的度量。

  3. 对于长度为n的有序线性表,在最坏情况下,二分法查找只需比较log2n次,而顺序查找需要比较n次。

  4. 所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。在循环队列中,用队尾指针rear指向队列中的队尾元素,用队头指针front指向队头元素的前一个位置。循环队列的主要操作是:入队运算和退队运算。每进行一次入队运算,队尾指针就进一。每进行一次退队运算,队头指针就进一。当rear或front等于队列的长度加1时,就把rear或front值置为1。所以在循环队列中,队头指针可以大于队尾指针,也可以小于队尾指针。

  5. 算法的空间复杂度是指执行这个算法所需要的内存空间。这个内存空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。

  6. 冒泡排序、简单选择排序和直接插入排序法在最坏的情况下比较次数为:n(n-1)/2。而堆排序法在最坏的情况下需要比较的次数为O(nlog2n)。其中堆排序的比较次数最少。

  7. 栈是一种限定在一端进行插入与删除的线性表。在主函数调用子函数时,要首先保存主函数当前的状态,然后转去执行子函数,把子函数的运行结果返回到主函数调用子函数时的位置,主函数再接着往下执行,这种过程符合栈的特点。所以一般采用栈式存储方式。

  8. 算法的有穷性,是指算法必须能在有限的时间内做完,即算法必须能在执行有限个步骤之后终止。

  9. 算法的时间复杂度,是指执行算法所需要的计算工作量。算法的工作量可以用算法在执行过程中所需基本运算的执行次数来度量

1.2 数据结构的基本概念

  1. 影响程序执行效率的因素有很多,如数据的存储结构、程序处理的数据量、程序的算法等。顺序存储结构和链式存储结构在数据插入和删除操作上的效率就存在差别。其中,链式存储结构的效率要高一些。

1.3 线性表及其顺序存储结构

  1. 根据数据结构中各数据元素之间的前后件关系的复杂程度,一般将数据结构分这两大类型:线性结构与非线性结构。如果一个非空的数据结构满足两个条件:①有且只有一个根结点;②每一个结点最多有一个前件,也最多有一个后件。称该数据结构为线性结构,又称为线性表。对于这个题目来说,有且只有一个根结点的数据结构可能是线性结构,也可能是非线性结构。具有一个根结点的树就是一个非线性结构。
  2. 栈是允许在栈顶进行插入和删除的线性表,不允许在栈底进行插入与删除。通常用指针top来指示栈顶的位置,用指针bottom指向栈底。对栈的操作有入栈和退栈两种。入栈运算:首先将栈顶指针进一(即top加1),然后将新元素插入到栈顶指针指向的位置。退栈运算:首先将栈顶元素(栈顶指针指向的元素)赋给一个指定的变量,然后将栈顶指针退一(即top减1)。因为初始状态为top=0,经过入栈和退栈操作后栈中的元素个数就是top指针指向的位置。
  3. 排序方法 最坏时间复杂度 最好时间复杂度 平均时间复杂度
    直接插入 O(n2) O(n) O(n2)
    简单选择 O(n2) O(n2) O(n2)
    冒泡排序 O(n2) O(n) O(n2)
    快速排序 O(n2) O(nlog2n) O(nlog2n)
    堆排序 O(nlog2n) O(nlog2n) O(nlog2n)
    归并排序 O(nlog2n) O(nlog2n) O(nlog2n)
  4. 有序表的对分查找条件是有序表为顺序存储。
  5. 顺序查找:①如果线性表为无序表(即表中元素的排序是无序的),则无论是顺序存储结构还是链式存储结构,都只能用顺序查找;②即使是有序线性表,如果采用链式存储结构,也只能用顺序查找。分块查找(又称索引顺序查找):分块有序表结构分为两部分,①线性表本身采用顺序存储结构;②在建立一个索引表,在索引表中,对线性表的每个子表建立一个索引结点,每个结点包括两个域:一是数据域,用于存放对应子表中的最大元素值;二是指针域,用于指示对应子表的第一个元素在整个线性表中的序号。显然索引表关于数据域是有序的。
  6. 计算机中数据按照其数据逻辑结构,可以分为线性结构和非线性结构。而数据在内存或磁盘中的存储,可以分为顺序存储和链式存储。数据的逻辑结构与存储结构之间没有对应的关系。

1.4 栈和队列

  1. 在循环队列中元素的个数为“(rear-front+M)%M”,式中rear为队尾指针,front为队首指针,M为存储容量,%为取余符号。

  2. A)(91,85,53,36,47,30,24,12)
    B)(91,85,53,47,36,30,24,12)
    C)(47,91,53,85,30,12,24,36)
    D)(91,85,53,47,30,12,24,36)

    堆可以看成一棵完全二叉树:任一根节点>=左右孩子(或者<=),(大的叫大根堆,小的叫小根堆)。注意一个堆中的这种性质有一致性,不能既有大于又有小于情况存在。此题可以这么做,把结点按照完全二叉树画出来就一目了然了。这个题目很明显91是最大的根,而选项C是“左根右”的排序,那么91的左边只有47,其他都在右边,而右边无法按照此顺序排列,所以选项C不是堆。3. 带链栈的栈底指针是随栈的操作而动态变化的

1.5 线性链表

  1. 算法的时间复杂度,是指执行算法所需要的计算工作量,算法的工作量用算法所执行的基本运行次数来度量,所以与运行算法时特定的输入有关,

  2. 在一个长度为n的线性表中顺序查找值为x的元素时,在等概率情况下查找成功时平均查找长度为(n+1)/2

  3. 在顺序存储的线性表中寻找最大项,其平均情况与最坏情况下的时间复杂度都是n/2。

  4. 在具有2n个结点的完全二叉树中,叶子结点个数为:(2n+1)/2取整,其值等于n。

1.6 树与二叉树

  1. 冒泡排序只交换相邻元素,但不是每次移动都产生新的逆序。简单插入排序的元素移动不会产生新的逆序。快速排序每一次交换移动都会产生新的逆序,因为当不会有新的逆序产生时,本轮比较结束。

1.7 查找技术

  1. 堆中某个结点的值总是不大于或不小于其父结点的值、堆总是一棵完全二叉树,可以以顺序存储结构存储;队列的存储结构分为链式存储、顺序存储两种;栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表,可以以顺序存储结构存储

  2. 带链栈的栈底指针是随栈的操作而动态变化的;若带链队列的队头指针与队尾指针相同,则队列可能为0也可能为1。

  3. 双向链表是线性结构链式存储的;

  4. 循环队列、循环队列、二维数组是顺序存储结构。

  5. 循环链表中有一个表头结点、循环链表实现了空表与非空表运算的统一、循环链表的表头指针与循环链表中最后一个结点的指针均指向表头结点

1.8 排序技术

  1. 在希尔排序法中,每经过一次数据交换后能消除多个逆序

  2. 根据数据结构中各数据元素之间的前后件关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。有序线性表既可以采用顺序存储结构,又可以采用链式存储结构。所有的线性结构都可以采用顺序存储结构。

第二章 程序设计基础与软件工程(基本会)

2.1 程序设计方法与风格

  1. 在软件开发中,需求分析阶段产生的主要文档是软件需求规格说明书。

  2. 程序流程图、通常也称为程序框图。其中,用带箭头的线段表示控制流,用矩形表示加工步骤,用菱形表示逻辑条件。

  3. 结构化程序设计方法的主要原则可以概括为:自顶向下,逐步求精,模块化和限制使用GOTO语句,其中不包括多态性。

  4. 在软件开发中,需求分析阶段常使用的工具有数据流图(DFD),数据字典(DD)、判断树和判断表。

  5. 对象具有如下特征:标识惟一性、分类性、多态性、封装性、模块独立性。

  6. 数据流图是从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。其中带箭头的线段表示数据流,沿箭头方向传递数据的通道,一般在旁边标注数据流名。

  7. 一般一个较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。

  8. 软件测试是为了发现错误而执行程序的过程。

  9. 结构化程序的基本结构有:顺序结构、选择结构和循环结构,没有GOTO跳转结构。

  10. 需求分析阶段的工作可分为4个阶段:需求获取、需求分析、编写需求规格说明书、需求评审。

  11. 软件危机主要表现在6个方面:① 软件需求的增长得不到满足;② 软件开发成本和进度无法控制;③ 软件质量难以保证;④ 软件不可维护或维护程度非常低;⑤ 软件的成本不断提高;⑥ 软件开发生产率的提高赶不上硬件的发展和应用需求的增长。

  12. 软件规格说明书主要有三个作用:①用户和软件开发人员之间的合同;②开发人员进行设计和编程的依据;③软件工程项目验收的依据。

  13. 采用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误推测、因果图和综合策略。

  14. 数据流图(Data Flow Diagram):简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。数据流程图的主要元素包括:数据项、数据结构、数据流、数据源、数据存储、对数据的处理;而数据字典的组成包括:数据项、数据结构、数据流、数据存储和处理过程。说明数据字典所定义的对象均包含于数据流图。

  15. 白盒测试的主要方法有逻辑覆盖、基本路径测试等。

  16. 对象是面向对象方法中最基本的概念。操作描述了对象执行的功能,通过消息传递,还可以为其它对象使用。操作过程是被封装在对象中,用户看不到,称之为对象的封装性。对象的多态性是指同一个操作可以是不同对象的行为。不是所有的对象都必须有继承性。

  17. 软件测试实施的步骤有单元测试、集成测试和确认测试。

  18. 在软件开发的过程中,应该尽早的制定测试计划,其中在需求分析阶段制定系统测试计划,在概要设计阶段制定集成测试计划,在详细设计阶段制定单元测试计划。

1.9 扇出指的是由一个模块直接调用的其它模块数。扇入数指该模块在结构图中的直接上层模块数

2.2结构化程序设计

  1. 软件工程包括三个要素:方法、工具和过程。

  2. 通常软件测试实施的步骤是:单元测试、集成测试、确认测试

  3. 结构化分析方法的常用工具:数据流图(DFD)、数据字典(DD)、判定表、判定树。常用的过程设计工具如下所述:图形工具(程序流程图、N-S图、PAD图、HIPO)、表格工具(判定表)、语言工具(PDL)。结构化设计方法使用的描述方法是系统结构图。

  4. 软件定义阶段包括:①问题定义;②可行性研究;③需求分析–系统必需完成哪些任务。

  5. 面向对象的编程方法具有四个基本特征:抽象、继承、封装和多态性。

2.3面向对象的程序设计

  1. 在软件设计阶段不使用DFD图(数据流程图)

第三章 数据库设计基础

3.1 软件工程基本概念

  1. 关键字是指属性或属性的组合,其值能够唯一地标识一个元组

  2. 将E-R图转换为关系模式时,实体和联系都可以表示为关系。

  3. 构成E-R图的基本要素是实体型、属性和联系,其表示方法为:实体型(Entity)-用矩形表示;属性(Attribute)-用椭圆形表示,联系(Relationship)-用菱形表示,菱形框内写明联系名。

  4. 数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。

  5. 在关系数据库中,实体间的联系由一个二维表来表示。

3.2 结构化分析方法

  1. 数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和物理设计。

  2. 关系模型中可以有3类完整性约束:实体完整性约束、参照完整性约束和用户定义的完整性约束。实体完整性约束是指,若属性M是关系的主键,则属性M中的属性值不能为空值。参照完整性约束是指,具有参照完整性约束的表中的外键字段,是其参照表的主键字段。外键取值必须取参照表中主键字段已经有的值,可以为空也可不为空。

  3. 数据模型按照不同的应用层次分为以下3种类型;概念数据模型着重于对客观世界中复杂事物的描述及对它们内在联系的刻画;逻辑数据模型,是面向数据库系统的模型,着重于在数据库系统一级的实现;物理数据模型,是面向计算机物理实现的模型,此模型给出了数据模型在计算机上物理结构的表示。

3.3 结构化设计方法

  1. 在数据库系统中的数据模型有三个要素:数据结构、数据操作和数据的约束条件。其中数据的约束条件包括三种:实体完整性约束条件、参照完整性约束条件和用户定义的完整性约束条件。

  2. 如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF。简单的说,就是每一个列(属性)只有一个,没有重复。第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。

3.4 软件测试

  1. 数据库三级模式体系结构的划分有利于保持数据库的逻辑独立性和物理独立性,即数据独立性。

  2. 关系数据模型的三个组成部分中包括关系的数据操纵、关系的数据结构和关系的完整性约束。

  3. 第二范式是在第一范式的基础上消除了非主属性对键的部分函数依赖

  4. 第三范式是在第二范式的基础上消除了非主属性对键的传递函数依赖

3.5 程序的调试

  1. 范式(数据库设计范式,数据库的设计范式)是符合某一种级别的关系模式的集合。构造数据库必须遵循一定的规则。在关系数据库中,这种规则就是范式。关系数据库中的关系必须满足一定的要求,即满足不同的范式。目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、Boyce-Codd范式(BCNF)、第四范式(4NF)和第五范式(5NF)。
    所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。
    第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性。如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。
    满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息,第三范式就是属性不依赖于其它非主属性。
    相对于第三范式,BC范式的要求更加严格,BC范式是对R的每个属性都做要求。

3.6

  1. 在关系代数运算中,有五种基本运算:并∪、差、投影、选择、笛卡儿积。
  2. 在数据库系统的组织结构中,外模式/模式映射把用户数据库与概念数据库联系了起来。
  3. 线性链表的描述:只含有一个指针域来存放下一个元素地址;指针域中的指针用于指向该节点的前一个或后一个节点(即前件或后件);节点由两部分组成:数据域和指针域。
  4. 关于数据库三级模式结构的正确叙述:外模式可以有多个,内模式和模式只能有一个。
  5. 快速排序
  6. 数据库设计的任务:设计数据库概论结构、设计数据库逻辑结构、设计数据库物理结构。
  7. 数据库技术的根本目标是:数据共享。
  8. 需求分析是软件定义时期的最后一个任务,它的基本任务就是详细调查现实世界要处理的对象,充分了解原系统的工作概况,明确用户的各种需求,然后在这些基础上确定新系统的功能。
    9. 只有人工管理阶段没有专门的软件对数据进行管理。

第一章 C语言和程序设计

  1. C语言编写的源程序就是一ASCII的形式存放在文本文件中的。C源程序经过C编译程序编译之后生成一个后缀为.obj的二进制文件(称为目标文件),然后由称为“连接程序”(Link)的软件,把此.obj文件与C语言提供的各种库函数连接起来生成一个后缀为.EXE的可执行文件。

  2. C语言中的非执行语句例如宏定义命令,在预编译之后替换到代码中,该命令本身也就不存在了,不会转换成二进制的机器指令。由高级语言编写的程序称为“源程序”,把由二进制代码表示的程序称为“目标程序”。

  3. 转义字符以一个反斜线开头后跟一个特定的字符,可以利用’\ddd’3位八进制数代表的一个ASCII字符,也可以’\xhh’2位十六进制数代表的一个ASCII字符。

  4. 转义字符以一个反斜线开头后跟一个特定的字符,可以利用’\ddd’3位八进制数代表的一个ASCII字符,也可以’\xhh’2位十六进制数代表的一个ASCII字符。

  5. 在赋值表达式中,赋值符号“=”的左边只能为赋值的变量,不能为表达式,右边可以为常量或者是表达式;在取余运算中,运算符“%”两边都必须是整型数据

  6. 逗号表达式的求解过程是:先求解表达式1,再求解表达式2,整个逗号表达式的值是表达式2的值

  7. 用逗号将表达式连接起来的式子称为逗号表达式。其表达式的一般形式为:表达式1,表达式2,……,表达式n。最后一个表达式的值就是此逗号表达式的值

  8. 条件表达式的形式如下:表达式1?表达式2 : 表达式3。其含义为当“表达式1”的值为非零时,求出“表达式2”的值,此时“表达式2”的值就是整个条件表达式的值;当“表达式1”的值为零时,则求“表达式3”的值,这时“表达式3”的值就是整个表达式的值。

  9. 逻辑运算符两侧的运算对象可以是任意合法的表达式。逻辑表达式的运算结果或者为1(“真”),或者为0(“假”)。

  10. 关系运算结果仅有0和1。

第二章 C语言程序设计

  1. C语言本身没有提供输入输出语句,但是可以通过调用标准库函数中提供的输入和输出函数来实现输入和输出
  2. 采用printf输出数据,输出数据都默认为右对齐,若要左对齐,可以在格式控制中的“%”和宽度之间加一个“-”号来实现
  3. printf的输出精度由变量的类型决定,与域宽无关,
  4. 输出“%”,可以在格式控制中用“%%”表示,将输出一个“%”,
  5. scanf和getchar函数分别从键盘上读入一个字符,因此输入12空格34,则变量a中存放的为1,b中存放2,c中存放空格,d中存放3。
  6. 在scanf函数的格式字符前可以加入一个正整数指定输入数据所占的宽度,但不可以用实数指定小数位的宽度。
  7. break语句可以使程序流程跳出switch语句体,也可用break语句在循环结构中终止循环体,从而提前结束循环,而当break出现在循环体中的switch语句体内时,其作用只是跳出该switch语句体,并不能中止循环体的执行。若想强行终止循环体的执行,可以在循环体中,但并不在switch语句中设置break语句,满足某种条件则跳出循环体。continue语句的作用是结束本次循环,在while和do-while循环中,continue语句使得流程直接跳到循环控制条件的测试部分,然后决定循环是否继续进行。
  8. “auto”类定义的自动变量实质上是一个函数内部的局部变量,作用域是在所说明的函数中;“register”说明只能用于说明函数中的变量和参数中的形参,因此不允许将外部变量或静态变量说明为register;“extern”是定义在所有函数之外的全局变量,它可以被所有的函数访问,在所有函数体的内部是有效的,所以函数之间可以通过外部变量直接传递数据;“static”为允许本源文件中所有函数使用的全局变量。

第三章 函数和数组

  1. 一个C语言源程序可以由一个或多个源文件组成,每个源文件可由一个或多个函数组成,这些函数可以是自定义函数,也可以是库函数,各个函数之间没有主从关系,不能嵌套定义函数。

  2. 字符串比较函数strcmp的功能是对s1和s2所指字符串进行比较。如果s1<s2,返回负数,如果s1==s2,返回0,如果s1>s2,返回正数

  3. 在C程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内

  4. C程序函数中定义的自动变量,系统不自动赋确定的初值

  5. C程序函数的形参不可以说明为static型变量

  6. 全局变量是在函数外部任意位置上定义的变量,它的作用域是从变量定义的位置开始,到整个源文件结束止。在同一编译单位内用extern说明符扩展全局变量的作用域(当全局变量定义在后,引用它的函数在前时,应该在引用它的函数中用extern对此全局变量进行说明,以便通知编译程序:该变量是一个已在外部定义了的全局变量,已经分配了存储单元,不需要再为它分配存储单元。这时全局变量的作用域从extern说明处起,延伸到该函数末尾)。当一个程序由多个编译单位构成,并且在每个文件中均需要引用同一个全局变量,这时只在其中一个文件中定义所有的全局变量,而在其他用到这些全局变量的文件中用extern对这些变量进行说明。

  7. 在C语言中,动态变量(auto)存储在内存中的动态存储区,在程序运行中,只有当调用变量所在的函数时,系统才临时给变量分配内存单元;全局变量(extern)一经定义,系统为其分配固定的内存单元;静态变量(static),编译系统为其分配固定的存储空间;寄存器变量(register)不保存在内存上,而是直接存储在CPU的寄存器中。

  8. 二维数组ss,可以用于存储字符串,但是字符串的存储不能通过赋值,仅可以初始化或者输入得到。

  9. 。’\0’作为标志占用存储空间,但不计入字符串的实际长度。在C语言中,系统在每个字符串的最后自动加入一个字符(’\0’)作为字符串的结束标志。

  10. 字符数组不能直接赋值。可以赋初值

第四章 编译预处理和指针

  1. 在C语言中,凡是以“#”号开头的行,都称为“编译预处理”命令行。预处理命令可以放在程序中的任何位置,其有效范围是从定义开始到文件结束。预处理命令有宏定义、文件包含和条件编译三类。#include <stdio.h>命令行表示程序中要引用C标准函数库中的标准输入输出函数。

  2. 预处理语句后面不能加分号

  3. 宏替换分为简单的字符替换和带参数的宏替换两类。使用宏时应注意以下几点:
    ①宏定义仅仅是符号替换,不是赋值语句,因此不做语法检查;②为了区别程序中其他的标识符,宏名的定义通常用大写字母,但不是必须用大写;③双引号中出现的宏名不替换;④使用宏定义可以嵌套,即后定义的宏中可以使用先定义的宏。

  4. 预处理命令行是在系统对源程序进行编译之前进行处理的,不是在程序执行的过程中。

  5. #include文件包含命令,使用时应注意以下5个规则:
    ①包含文件的#include命令行通常应书写在所用源程序文件的开头,故有时也把包含文件称作“头文件”。头文件名可以由用户指定,其后缀不一定用“.h”。
    ②包含文件中,一般包含有一些公用的#define命令行、外部说明或对(库)函数的原型说明。
    ③当包含文件修改后,对包含该文件的源程序必须重新进行编译连接。
    ④在一个程序中,允许有任意多个#include命令行。
    ⑤在包含文件中还可以包含其他文件。

  6. 函数指针的定义形式是:数据类型标识符(*指针变量名)();void(*pf)()定义了一个没有返回值的函数指针pf,在给函数指针变量赋值时,只需给出函数名而不必给出参数。所以给pf给赋值时,把函数名fun赋给pf即可。

  7. 指针变量定义形式为:
    类型 指针变量名;
    其中
    号的个数决定了几级指针,指针变量赋地址值的方式有3种方式:
    ①通过求地址运算符(&)获得地址值
    ②通过指针变量获得地址值
    ③通过标准函数获得地址值

  8. NULL是在stdio.h头文件中定义的预定义符。NULL的代码值为0。可以给指针变量赋NULL值。例如p=NULL;赋值语句,称p为空指针。这条语句等价于p=’\0’;或p=0; 这时,指针p并不是指向地址为0的存储单元,而是具有一个确定的值–“空”。

  9. 定义指针变量时,必须将指针变量初始化为NULL(为空),否则,如果不赋给它地址,系统会随机给它分配一个地址。

  10. 在指针定义语句double a,p=&a中,指针变量p前面的号,只是一个说明符,说明变量p是指针类型的变量。

第五章 结构体、共用体、位运算及文件操作

  1. a>>3 --> 变量a的值执行右移3位运算,相当于a/8,

  2. |为按位或运算,&为按位与运算,按位与(&)运算符的作用是:把参加运算的两个运算数按对应的二进制位分别进行“与”运算,当两个相应的位都为1时,该位的结果为1;否则为0。按位或(|)的运算规则是:参加运算的两个运算数中,只要两个相应的二进制位中一个为1,则该位的运算结果即为1;只有当两个相应位的数都为0时,该位的运算结果才为0。

  3. 在C语言中,对输入、输出的数据都按“数据流”的形式进行处理。数据可以按文本形式或二进制形式存放在介质上,因此文件可以按数据的存放形式分为文本文件和二进制文件。

  4. 文件指针是程序中用FILE定义的指针变量

  5. gets和 getchar函数用于从标准输入设备终端读入字符串和字符,并非从磁盘文件读入,fputs用于把字符串输出到文件,fwrite用于以二进制形式输出数据到文件。

  6. ANSI C提供的feof函数的功能是判断fp所指的文件的位置是否已达到文件尾,如果达到文件尾,则feof函数的值为1,否则为0,表示文件尚未结束。

  7. fputc()是以字符(字节)为单位的读写函数。 每次可从文件读出或向文件写入一个字符。使用格式为fputc(ch,fp);
    其中ch是待输出的某个字符,它可以是一个字符常量,也可以是一个字符变量;fp是文件指针。fputc(ch,fp)的功能是将字符ch写到文件指针fp所指的文件中。如果输出成功,fputc函数返回所输出的字符;如果输出失败,则返回一个EOF值。EOF是在stdio.h库函数文件中定义的符号常量,其值等于-1。

  8. EOF是在stdio.h库函数文件中定义的符号常量,其值等于-1。EOF用作文件结束标志,在二进制或者文本文件内部有一个位置指针,用以指示文件内部的当前读写位置。使用fgetc函数,每读写一次,该指针均向后移动,

【计算机二级考试C语言】重点+题库!必考知识点总结,包你过! 全国计算机等级考试(NationalComputerRankExamination,简称NCRE) 是教育部考试中心主办,面向社会,用于考查应试人员计算机应用知识与技能的全国性计算机水平考试。 级别分为一二三四级,二级考试科目有: C语言程序设计,MSOffice高级应用,Java语言程序设计等等。 今天主要介绍C语言程序设计考试相关内容及备考方法。 01 题型分数分布 (1)单项选择题,40题,40分(含公共基础知识部分10分); (2)程序填空题,3小空,18分... 阅读详情

相关推荐

【脑电分析系列】第15篇:脑电功能连接性与脑网络分析(二):Granger因果性、图论指标与复杂网络构建

摘要: 本文深入探讨了脑电(EEG)分析中的高阶连接性方法——有效连接(Effective Connectivity),重点介绍了Granger因果性(Granger Causality, GC)的原理与应用。GC通过统计预测揭示脑区间信息流动方向,超越了传统功能连接的同步性分析。文章还结合图论指标(如度、路径长度、聚类系数和模块化)量化脑网络的拓扑结构,并通过Python代码(MNE和NetworkX库)演示了从EEG数据构建、分析复杂脑网络的完整流程。该研究为理解大脑动态互动、认知任务信息流及神经系统疾

qq_32516809的博客 1562

计算机二级C语言知识点复习资料,精简版

C语言知识复习资料 第一章 C语言基本知识 【考点1】C程序 用C语言编写的程序称为C语言源程序,源程序文件后缀名为“.c”。 源程序经编译后生成后缀名为“.obj”的目标文件。 再把目标文件与各种库函数连接起来,生成后缀名为“.exe”可执行文件。 C语言有三种基本结构:顺序结构、选择结构、循环结构。 【考点2】main函数 main函数(又称主函数),是C程序的入口。main后面跟一对小括号和一对花括号,花括号括起来的部分称为main函数的函数体。一个C程序从main函数开始执行,到

京京子小姐的博客 2万+

用C#语言实现记事本

本次程序设计作业为用C#语言设计一个记事本,设计的记事本应与电脑系统自带的记事本类似,最后实现的界面及功能应类似于下图。

qq_57738695的博客 2847

C语言 些许笔记

static函数  使一个变量长期有效;函数:abs 求整数的绝对值,fabs求浮点数的绝对值;z =(x&gt;y) ? x : y  的意思是:如果(x&gt;y)为真,将x的值赋给z,否则将y的值赋给z进行倒序时,应当除以二,否则无效c语言中的非执行语句不会被编译,不会生成二进制的机器指令。c语言中八进制整型常量的开头是数字0,十六进制整形常量的开头是0xc语言中实型常量有两种表达方式,:小...

qq_41698045的博客 519

【Codex Sandbox 与审批机制:小白也能看懂的实用教程】

这篇教程介绍了Codex工具中的沙盒(Sandbox)和审批(Approvals)机制,帮助用户安全高效地使用Codex协作。沙盒限制Codex访问范围,审批机制则控制敏感操作权限。文章详细讲解了五种常见模式:最安全的安全只读浏览、只读非交互、仓库内编辑、Auto预设和不推荐的YOLO模式。还提供了新手使用路径建议、配置示例和实战场景范式,包括如何测试沙盒行为、不同系统下的实现方式以及常见问题解答。最后附上速查清单,帮助用户快速选择合适的权限组合。

zsr154278963的博客 6706

雷达杂波的基础知识

例如工作在海上的机载雷达,航行在海上的船用雷达,它们都不想要海杂波,会影响它们对小目标的检测,从而以为“漏掉”海面飞行的巡航导弹而被击毁。海杂波的反射系数是非常复杂的,影响的因素很多,除了和雷达参数有关,显然还和海况息息相关,经验模型经常将反射系数表示成海况的函数,在不同条件和不同模型的情况下,反射系数的值不同。说到“杂波”,你可能想到的就是如何去抑制它,去减少它在雷达回波中的分量,在很多情况是这样的。云雨的反射对飞机雷达来说是不希望的,但确是气象雷达所利用的,可以用来测量降雨率,提升天气预报的准确性。

qq_43416206的博客 2133

计算机二级C语言知识点总结

C语言二级最重要的知识点 总体上必须清楚的: 1)程序结构是三种: 顺序结构 、选择结构(分支结构)、循环结构。 2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。 3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是 他的地址. 4)bit是位 是指为0 或者1。 byte 是指字节,一个字节 = 八个位 概念...

果果小师弟的博客 3万+

【数据同化第一期】基本概念介绍

【数据同化第一期】基本概念介绍

WW、forever的博客 1904

计算机二级C语言知识点大全,弄懂这些题集所含知识点稳过(一)

综合题集一 以下是备考计算机二级C语言冲刺阶段总结的题集中所含的知识点!踏踏实实弄懂每一个知识点,就稳了。 2020年8月9日星期日 二叉树遍历可以分为3种: 1.前序遍历(访问根节点在访问左子树和访问右子树之前); 2.中序遍历(访问根节点在访问左子树和访问右子树两者之间); 3.后序遍历(访问根节点在访问左子树和访问右子树之后)。 一个非空的数据结构如果满足以下两个条件: 1.有且只有一个根节点; 2.每一个节点最多有一个前件,也最多有一个后件; 称为线性结构,也称线性表,可以采用线性存储和链式存储,其

热爱学习 1626

全志V3S嵌入式驱动开发(编译器升级到7.5)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 看过我们文章的朋友都知道,前面为了做v3s的驱动,对linux kernel进行了两次升级。第一次升级时从4.10.y升级到4.14.y,另外一次升级是从4.14.y升级到5.2.y。这中间最主要的原因,就是为了驱动适配的需要,更新的内核可以对硬件驱动有更好的支持,架构也更合理。 如果说内核升级尚且可以理解,那为什么要对编译器升级呢?这里面,最重要的一点就是语言的升

嵌入式-老费,一个分享专业嵌入式知识的blog 1166

beegfs源码分析

BeeGFS的客户端是由一个内核模块和两个系统服务组成的,这里咱们主要分析内核模块。由于BeeGFS的目录树解析,是在父目录DEntry里找子目录或文件DEntry,逐级迭代完成的,所以在Mount文件系统时,须要从管理节点获取根元数据节点的ID,而后再向根元数据节点查询根目录的DEntry的信息,为后续的目录解析打下基础。获取类似/data/beeond/data/dentries/38/51/root/#fSiDs#/文件fileId的父路径。1.1 FileID的生成。Session网络消息。

wfzy的博客 1913

2024C语言入门学习这一篇就够了-知识点总结(三万字二级必看)

c语言入门复习这一篇就够了-知识点总结(三万字)

2402_84051608的博客 2万+

基于Simulink建模仿真的滑模控制的磁悬浮轴承稳定控制仿真

磁悬浮轴承(Magnetic Bearing)利用电磁力来支撑和定位转子,无需机械接触,因此在高速旋转设备中具有广泛应用。滑模控制(Sliding Mode Control, SMC)是一种鲁棒性强的非线性控制方法,适用于磁悬浮轴承的精确控制。以下是基于Simulink的磁悬浮轴承滑模控制系统的详细设计与仿真步骤。通过上述步骤,设计并实现了基于 Simulink 和 Control System Toolbox 的磁悬浮轴承滑模控制系统。

MHD0815的博客 780

2018二级c语言知识点,2017年计算机二级考试C语言语言必考知识点16个

2017年计算机二级考试C语言语言必考知识点16个C语言的知识点有很多,但是计算机二级考试不可能每个知识点都考到。你知道哪些知识点是必考的吗?下面是yjbys小编为大家带来的16个C语言语言必考知识点。欢迎阅读。C语言基本知识【考点1】C程序C语言程序结构有三种: 顺序结构 , 循环结构(三个循环结构), 选择结构(if 和 switch)【考点2】main函数每个C语言程序中main 函数是有且...

weixin_39873208的博客 122

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

c语言计算机二级知识点总结,计算机二级考试C语言知识点总结

计算机二级考试C语言知识点总结计算机二级考试C语言知识点总结(完全针对考试大纲)概述总体上必须清楚的:1)程序结构是三种: 顺序结构 , 循环结构(三个循环结构), 选择结构(if 和 switch)2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。3)计算机的数据在电脑中保存是以 二进制的形式. 数据存放的位置就是 他的地址.4)bit是位 是指为0 ...

weixin_34264495的博客 1202

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

计算机二级C语言冷门知识点

计算机二级冷门知识点 文件操作

m0_55206809的博客 188

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

二级c语言知识大全,2017计算机二级C语言知识点汇总

2017计算机二级C语言知识点汇总以下是应届毕业生考试网小编搜索整理的2017计算机二级C语言知识点汇总,更多计算机二级考试信息请继续关注应届毕业生考试网。选择结构特别要注意:c 语言中是用非0 表示逻辑真的,用0 表示逻辑假的。【考点1】关系运算关系运算符有6个,分别是>,>=,关系表达式:关系表达式真时为1,假时为0当关系的表达是为真的时候得到1。如 9>8 这个是真的,所以...

weixin_26846533的博客 162

计算机二级语音C语言知识点,计算机二级考试C语言知识点

程序设计语言可划分为低级语言和高级语言两大类,与高级语言相比,用低级语言开发的程序,其运行效率高,但开发效率低。以下是关于计算机二级考试C语言知识点,希望大家认真阅读!一、基本概念在计算机中,程序设计语言可划分为低级语言和高级语言两大类,与高级语言相比,用低级语言开发的程序,其运行效率高,但开发效率低。与程序设计相关的基本概念如下。(1)低级语言:又称面向机器语言,它是特定的计算机系统所固有的语言...

weixin_35934979的博客 674

计算机二级c语言全部知识点归纳,计算机二级C语言知识点总结.doc

计算机二级C语言知识点总结2011年计算机二级考试C语言知识点总结(完全针对考试大纲)总体上必须清楚的:1)程序结构是三种: 顺序结构 , 循环结构(三个循环结构), 选择结构(if 和 switch)2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。3)计算机的数据在电脑中保存是以 二进制的形式. 数据存放的位置就是 他的地址.4)bit是位 是指为0...

weixin_39633774的博客 339

全国计算机二级c语言程序设计知识点,2017年计算机二级C语言程序设计知识点

计算机二级考试是全国计算机等级考试四个等级中的一个等级,考核计算机基础知识和使用一种高级计算机语言编写程序以及上机调试的基本技能。下面是小编整理的关于计算机二级C语言程序设计知识点,欢迎参考!(考点1)赋值是表达式就一定有数值。赋值表达式:表达式数值是最左边的数值,a=b=5;该表达式为5,常量不可以赋值。复合赋值运算符:注意:a*=m+2 是 a=a****m+2***自加、自减表达式:假设a=...

weixin_30958745的博客 212

全国计算机二级c知识,全国计算机二级考试C语言知识点

全国计算机二级考试C语言知识点本篇是CN人才小编为大家收集整理的计算机二级考试C语言知识点,希望对大家有所帮助,欢迎阅读。1)合法的用户标识符考查:合法的要求是由字母,数字,下划线组成。有其它元素就错了。并且第一个必须为字母或则是下划线。第一个为数字就错了。关键字不可以作为用户标识符号。main define scanf printf 都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中...

weixin_29357339的博客 399

二级c语言程序基础知识,计算机二级《C语言》基本知识点

计算机二级《C语言》基本知识点同学们在备考二级C语言过程中,有掌握好所学知识点。以下是百分网小编搜索整理的关于计算机二级《C语言》基本知识点,供参考学习,希望对大家有所帮助!想了解更多相关信息请持续关注我们应届毕业生考试网!【考点1】C程序C语言程序结构有三种: 顺序结构 , 循环结构(三个循环结构), 选择结构(if 和 switch)【考点2】main函数每个C语言程序中main 函数是有且只...

weixin_39936134的博客 126

c语言中x=(2 5 6),计算机二级考试C语言知识点

计算机二级考试C语言知识点计算机人工智能的研究是建立在现代科学基础之上。智能化是计算机发展的一个重要方向,新一代计算机,将可以模拟人的感觉行为和思维过程的机理,进行“看”、“听”、“说”、“想”、“做”,具有逻辑推理、学习与证明的能力。下面是小编整理的关于计算机二级考试C语言知识点,欢迎大家参考!第一章1)合法的用户标识符考查:合法的要求是由字母,数字,下划线组成。有其它元素就错了。并且第一个必须...

weixin_32751907的博客 3264

计算机二级C语言知识点大全,弄懂这些题集所含知识点稳过(四)

综合题集知识点四 以下是备考计算机二级C语言冲刺阶段总结的题集中所含的知识点!踏踏实实弄懂每一个知识点,就稳了。 2020年11月6日星期五 补充:不出所料,一次性顺利通过,虽然还是有点不太满意。可能是自己当时考完太过自信。选择题有两三道涉及的知识点一无所知,另外的可能就是会的但因为粗心做错了,编程题大概率是满分,扣分也可能只是扣在修改题,因为当时做完回想了下好像还有其他答案。 请编写函数fun,其功能是:判断t所指字符串中的字母是否由连续递增字母序列组成(字符串长度大于等于2)。例如字符串:uvwxy

热爱学习 890
上一篇: 树与二叉树的相互转换以及森林和二叉树的相互转换
下一篇: 基于Python实现自动查找未交作业人员名单
nufe_wwt
博客等级 码龄7年 40粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值