c 语言常考知识点覆盖基础语法 数据类型 指针 数组 函数 内存管理 预处理 关键字 结构体 文件操作这些模块,是大学期末考试 计算机二级 校招笔试面试的核心内容,考题一般分为选择题 填空题 读程序写结果 代码编程题,其中指针 内存 关键字 运算符优先级是分值最高的重点板块,也是最容易丢分的部分。出题人喜欢利用易混淆概念设置陷阱,比如数组名和指针的区别,static volatile const 关键字,野指针 内存泄漏,宏定义和函数的差别,还有自增自减 类型转换 分支循环的执行顺序,掌握这些常考知识点不能只背概念,一定要结合读代码题理解运行逻辑,很多题目就是考察代码执行过程中的值变化,理解栈 堆 静态存储区的内存模型之后,大部分常考知识点都可以串联起来,不会零散记忆,复习的时候优先攻克高频考点,再补充文件操作 位运算这类次重点内容。
基础语法与数据类型
这个板块是所有 c 语言常考知识点的地基,主要考察基本数据类型所占字节数,不同平台下 int char long long long double 的长度,有符号和无符号的取值范围,溢出规则,自动类型转换和强制类型转换,运算符优先级与结合性。
重点考点清单
1 标识符命名规则,关键字不能作为变量名
2 整型 浮点型 字符型存储,字符本质是 ASCII 码整数
3 算术运算符 关系运算符 逻辑运算符 位运算符
4 自增自减前置后置区别,短路逻辑运算
5 三目运算符,逗号表达式
6 数据溢出,无符号数和有符号数比较的坑
流程控制语句
主要考察 if switch for while do while break continue,属于基础必考,读程序题大量出现。
重点考点清单
1 if 语句就近匹配 else 规则
2 switch case 穿透特性,case 必须是常量,default 可选
3 for 循环执行顺序,初始化 条件判断 循环体 增量表达式
4 while 和 do while 差别,do while 至少执行一次循环体
5 break 跳出当前循环或者 switch,continue 只跳过本次循环进入下一次判断
6 嵌套循环执行次数计算
函数相关考点
函数是 c 语言核心模块,也是 c 语言常考知识点高频板块,重点考察函数定义 声明 调用,值传递,递归函数,函数参数,返回值。
重点考点清单
1 函数声明和定义的区别,声明可以多次,定义只能一次
2 值传递,形参是实参副本,函数内部修改形参不影响外部实参
3 递归三要素,递归出口 递归表达式,递归栈溢出问题
4 函数返回值类型,void 函数不能写 return 带数值
5 局部变量 全局变量,作用域生命周期
指针核心考点
指针属于最高频难点,笔试大题读程序题必考,很多考生失分都在这里。
重点考点清单
1 指针本质是内存地址,指针变量本身也占用内存
2 一级指针 二级指针,指针加减运算,指针和整数偏移
3 数组名含义,数组名是首元素地址,但是 sizeof 和取地址的时候数组名不退化
4 指针数组,数组指针,函数指针,三者概念区分
5 野指针,空指针,悬空指针的成因
6 传指针能不能修改外部变量,传值和传址对比
数组与字符串考点
数组经常和指针结合出题,字符串是单独高频考点。
重点考点清单
1 一维数组 二维数组内存连续存储
2 数组初始化,未初始化数组默认值
3 字符串以零作为结束标记,字符数组和字符串常量区别
4 字符串库函数 strlen strcpy strcat strcmp,重点区分 strlen 和 sizeof
5 二维数组行指针,数组名加 1 的偏移量
关键字专项考点
const static extern volatile register sizeof 是选择题必考,属于经典 c 语言常考知识点。
重点考点清单
1 const 修饰变量 指针,区分 const int p 和 int const p
2 static 修饰局部变量 全局变量 函数,生命周期和作用域变化
3 extern 声明跨文件全局符号
4 volatile 禁止编译器优化,嵌入式高频考点
5 sizeof 是运算符不是函数,编译期计算为主
内存管理考点
堆内存是笔试编程题高频,考察 malloc calloc realloc free。
重点考点清单
1 内存四区划分 栈区 堆区 全局静态区 代码段
2 malloc 申请堆内存,返回 void 指针,需要强制转换
3 free 释放内存,释放之后指针变成悬空指针
4 内存泄漏,重复释放,越界访问
5 calloc 会自动清零,realloc 调整堆内存大小
预处理与其他考点
预处理,结构体 联合体 枚举,位运算,文件操作属于次重点,期末和笔试都会出现。
重点考点清单
1 宏定义 define,宏只是文本替换,没有类型,不做运算检查,和内联函数区别
2 include 头文件包含,条件编译 ifdef ifndef
3 struct 结构体,结构体对齐,内存对齐是面试高频
4 union 联合体,所有成员共用同一块内存,大小取最大成员
5 枚举 enum,枚举常量默认从 0 递增
6 文件操作 fopen fread fwrite fclose,文本文件和二进制文件
7 位运算 与或非异或移位,交换数字,置位清位操作
高频考点分值优先级表格
| 模块 | 考察频率 | 难度 | 常见题型 |
|---|---|---|---|
| 指针 | 极高 | 高 | 读程序 选择 编程 |
| 关键字 | 极高 | 中 | 选择 判断 |
| 函数递归 | 高 | 中高 | 读程序 编程 |
| 数组字符串 | 高 | 中 | 选择 读程序 |
| 内存管理 | 高 | 高 | 选择 编程 |
| 流程控制 | 高 | 低 | 读程序 |
| 数据类型运算符 | 高 | 低 | 选择填空 |
| 结构体对齐 | 中高 | 高 | 选择 面试问答 |
| 预处理宏 | 中 | 中 | 选择读代码 |
| 文件操作 | 中 | 中 | 编程填空 |
复习备考建议
复习 c 语言常考知识点的时候,优先刷读程序写结果题型,这一类题目最能检验是否真正理解代码运行逻辑,不要只背诵概念,很多概念背熟但是看到代码依然算错。对于指针 结构体对齐 宏定义这类难点,最好自己写小代码上机调试,观察内存变化。真题里面重复出现的考点要单独整理错题,尤其是运算符优先级 自增自减 数组名退化这类陷阱题,历年考试反复出现。编程题常考内容一般是字符串处理 排序 递归 链表基础操作,链表虽然部分教材属于拓展内容,但是校招笔试经常结合 c 语言常考知识点一起出题。
【常见问题】
问题 1 c 语言常考知识点里面最难的部分是什么
回答 1 c 语言常考知识点里面难度最高的是指针模块,同时结合数组 函数传参 二级指针 数组指针指针数组,读程序题大量在这里设置陷阱,复习 c 语言常考知识点的时候建议把指针作为重点突破内容。
问题 2 c 语言常考知识点里面 static 为什么经常出题
回答 1 c 语言常考知识点里面 static 是经典关键字考点,static 修饰局部变量改变生命周期,修饰全局变量和函数改变链接属性,概念容易混淆,选择题和简答题经常考察 static 相关内容,属于必背 c 语言常考知识点。
问题 3 期末考试 c 语言常考知识点会考结构体内存对齐吗
回答 1 很多院校期末考试 c 语言常考知识点会包含结构体内存对齐,校招笔试更是高频考点,复习 c 语言常考知识点的时候,要掌握对齐规则,能够手动计算结构体占用总字节数。
问题 4 c 语言常考知识点里面宏定义和函数的区别怎么记
回答 1 c 语言常考知识点里面宏定义是预处理文本替换,没有类型检查,不占用栈空间,函数是编译运行时调用,有类型检查,存在栈帧开销,这个对比是选择题高频考点,属于必须掌握的 c 语言常考知识点。
【免责申明】
本文内容仅作为 c 语言常考知识点备考学习参考,不同考试大纲比如计算机二级 期末考试 企业笔试考察范围存在差异,考点侧重点会根据考试要求调整,本文不保证覆盖全部考试原题,备考请结合官方考试大纲复习,学习使用产生的相关问题由使用者自行承担。


