考试概述
- 考试性质:全国计算机等级考试是由教育部教育考试院主办,用于考查应试人员计算机应用知识与技能的全国性水平考试。
- 考试科目:二级 C 语言程序设计。
- 考试目标:
- 掌握基本数据类型、运算符和表达式。
- 掌握基本语句、循环结构和选择结构。
- 掌握数组的定义和使用。
- 掌握函数的定义和调用。
- 掌握指针的概念和基本使用。
- 掌握结构体、共用体的定义和使用。
- 掌握文件的基本操作。
- 具备利用 C 语言进行简单程序设计的能力。
考试形式与结构
二级 C 语言考试采用上机考试形式,考试时间为 120 分钟。

(图片来源网络,侵删)
考试满分为 100 分,由两部分组成:
| 题型 | 题量 | 分值 | 考试时间 | 题目特点 |
|---|---|---|---|---|
| 选择题 | 40 题 | 40 分 | 约 40 分钟 | 主要考察基础知识,包括 C 语言语法、概念、算法等。 |
| 操作题 | 大题共 3 道 | 60 分 | 约 80 分钟 | 主要考察编程能力,要求在 Visual C++ 6.0 (或类似环境) 中编写、编译、运行程序。 |
操作题具体分为三部分:
-
程序填空题 (1题, 18分)
- 形式:给出一个完整的 C 语言程序,其中有 3 处代码被删除(用
________标出)。 - 要求:考生需要在补充完整后,使程序能够实现题目描述的功能。
- 考点:通常考察对特定语法结构(如循环、判断、函数调用)的理解。
- 形式:给出一个完整的 C 语言程序,其中有 3 处代码被删除(用
-
程序改错题 (1题, 18分)
(图片来源网络,侵删)- 形式:给出一个含有 2-3 处错误的 C 语言程序,程序的功能是正确的,但代码实现有误。
- 要求:考生需要找出错误并修改,使其能够正确运行并得到正确结果。
- 考点:考察对语法细节、逻辑错误的排查能力,如变量未初始化、运算符错误、边界条件等。
-
程序设计题 (1题, 24分)
- 形式:只给出题目要求(问题描述和功能要求),不提供任何代码。
- 要求:考生需要根据题目要求,独立编写一个完整的 C 语言程序。
- 考点:综合考察算法设计、数据结构(数组、结构体)、函数封装、指针运用等核心能力,是分值最高、难度最大的一题。
核心知识点详解 (按重要性排序)
备考时,请务必把精力集中在高频考点上。
基础语法与数据类型
- 数据类型:
int,float,double,char的存储、取值范围和使用场景。 - 常量与变量:
const关键字,变量的定义、初始化和作用域。 - 运算符:
- 算术运算符:, , , , (注意整数除法和取余)。
- 关系运算符:
>,<,>=,<=, , 。 - 逻辑运算符:
&&(与), (或), (非),注意短路求值。 - 赋值运算符:, , 等。
- 逗号运算符和条件运算符 ()。
- 表达式:类型转换(隐式和强制转换),运算符优先级。
基本语句与流程控制
- 顺序结构:
printf,scanf的格式化输入输出(重中之重,必须熟练掌握)。 - 选择结构:
if-else语句(特别是if-else if-else嵌套)。switch语句(注意case后的常量、break的作用、default分支)。
- 循环结构:
for循环(最常用,适合已知循环次数的场景)。while循环(适合未知循环次数,依赖条件的场景)。do-while循环(至少执行一次)。break和continue的区别。
函数
- 定义与声明:函数头、函数体、返回值类型、参数列表。
- 参数传递:
- 值传递(默认方式):形参是实参的副本,修改形参不影响实参。
- 地址传递(指针传递):传递变量的地址,可以通过指针修改实参的值。
- 递归函数:理解递归的“递归”和“回溯”两个阶段,掌握经典的递归问题(如阶乘、斐波那契数列、汉诺塔)。
- 变量的作用域与存储类别:
auto,static,register,extern关键字。
数组
- 一维数组:定义、初始化、元素访问(
arr[i])、遍历。 - 二维数组:定义、初始化、元素访问(
arr[i][j])、遍历。 - 数组作为函数参数:
- 将数组名作为参数传递(本质是传递数组首元素的地址)。
- 一维数组参数:
void func(int arr[], int n)或void func(int *arr, int n)。 - 二维数组参数:
void func(int arr[][N], int m)。
指针 (重中之重,是难点也是核心)
- 指针基础:指针变量的定义(
int *p;)、取地址(&)、解引用()、指针的运算(p++,p--)。 - 指针与数组:指针可以像数组一样使用(
*(p+i)等价于p[i]),数组名可以像指针一样使用(arr等价于&arr[0])。 - 指针与函数:
- 指针作为函数参数,实现“地址传递”。
- 指针作为函数的返回值。
- 指针数组与数组指针:
- 指针数组:
int *p[5];(一个数组,其元素是指针)。 - 数组指针:
int (*p)[5];(一个指针,指向一个包含 5 个 int 元素的数组)。
- 指针数组:
- 多级指针:指向指针的指针(
int **p;)。 - 函数指针:指向函数的指针(
int (*p)(int, int);),常用于作为函数参数,实现回调。
结构体与共用体
- 结构体 (
struct):- 定义:
struct Student { int id; char name[20]; }; - 定义变量、初始化、成员访问(
student.id)。 - 结构体数组。
- 结构体指针:通过指针访问成员(
->操作符)。 - 结构体作为函数参数(值传递和地址传递)。
- 定义:
- 共用体 (
union):理解其所有成员共享同一块内存空间的特点。
文件操作
- 文件指针:
FILE *fp; - 常用函数:
fopen()/fclose():打开和关闭文件。fgetc()/fputc():字符读写。fgets()/fputs():字符串读写。fscanf()/fprintf():格式化读写。fread()/fwrite():二进制块读写。feof():判断文件是否结束。
备考策略与建议
- 教材为主,大纲为纲
以官方推荐的教材(如《全国计算机等级考试二级教程——C语言程序设计》)为主,吃透每一个知识点。

(图片来源网络,侵删)
