上机考试和笔试(目前大部分省份已将笔试改为机考,但内容和形式基本一致),满分100分,其中选择题40分(占40%),程序设计题60分(占60%),总分达到60分及以上即为合格。
下面我将详细拆解考试内容。
第一部分:公共基础知识 (约占10%,即4分)
是所有二级语言(C、C++、Java、Python等)共通的,主要考查计算机科学的基础知识。
-
数据结构与算法
- 算法的基本概念:算法的特征(有穷性、确定性、可行性、输入、输出)、算法的复杂度(时间复杂度和空间复杂度)。
- 数据结构:
- 线性表:线性表的顺序存储结构和链式存储结构(单链表)的特点。
- 栈和队列:它们的定义、特点和基本操作(栈的“后进先出”,队列的“先进先出”)。
- 树与二叉树:二叉树的定义、基本性质、三种遍历方式(前序、中序、后序)。
- 查找技术:顺序查找、二分查找(折半查找)的原理和适用场景。
- 排序技术:插入排序、选择排序、冒泡排序的基本思想。
-
程序设计基础
程序设计风格、结构化程序设计方法(顺序、选择、循环三种基本结构)。
-
软件工程基础
软件工程基本概念、软件开发工具与环境、软件开发方法(结构化方法与面向对象方法)。
-
数据库设计基础
- 数据库、数据库管理系统、数据库系统的基本概念。
- 数据模型(E-R模型)、关系代数、数据库设计(需求分析、概念设计、逻辑设计、物理设计)。
第二部分:C语言程序设计 (约占90%,即96分)
这是考试的核心部分,内容非常具体,主要围绕C语言的语法和编程能力。
选择题 (40分,约30-40道题)
选择题覆盖面广,主要考查对基本概念、语法规则、库函数等的理解和记忆。
-
C语言程序的结构
- C程序的构成(函数、main函数)。
- 头文件的作用(
#include)。 - 数据说明的风格。
- 源程序的书写格式。
-
数据类型及其运算
- 基本数据类型:
int,float,double,char的定义、取值范围、存储方式。 - 常量与变量:常量的表示(整型、实型、字符型、字符串、符号常量
#define),变量的定义、初始化和命名规则。 - 运算符与表达式:
- 算术运算符(, , , , )及优先级。
- 赋值运算符()和复合赋值运算符(, 等)。
- 自增自减运算符(, )的前置和后置区别。
- 关系运算符(
>,<, , 等)和逻辑运算符(&&, , )。 - 条件运算符()。
- 逗号运算符()。
- 类型转换(自动转换和强制转换)。
- 基本数据类型:
-
基本语句
- 表达式语句。
- 空语句。
- 复合语句(块)。
- 输入输出函数:
printf(),scanf()的格式控制符(%d,%f,%c,%s等)的使用。 - 控制语句:
if...else语句(单分支、双分支、多分支)。switch语句(与if的区别,break的作用)。for循环、while循环、do...while循环的结构和执行流程。break,continue,return语句的用法。
-
数组
- 一维数组的定义、初始化和引用。
- 二维数组的定义、初始化和引用。
- 字符数组的定义、初始化和引用(特别注意字符串结束符
\0)。 - 常用字符串处理函数:
strlen(),strcpy(),strcmp(),strcat()(需包含string.h头文件)。
-
函数
- 函数的定义、声明(函数原型)、调用。
- 函数参数的传递方式(值传递)。
- 函数的返回值。
- 函数的嵌套调用和递归调用。
- 局部变量和全局变量的作用域和生存期。
- 变量的存储类别(
auto,static,register,extern)。
-
指针
- 指针变量的定义、初始化和引用(和
&运算符)。 - 指针与数组的关系(通过指针操作一维数组、二维数组)。
- 指针与字符串的关系。
- 指针作为函数参数。
- 函数指针的概念(了解即可,考试不深入)。
void指针的概念(了解即可)。
- 指针变量的定义、初始化和引用(和
-
结构体(共用体)与链表
- 结构体:结构体类型的定义、结构体变量的定义和初始化、结构体成员的引用(和
->操作符)。 - 共用体(联合):了解其与结构体的区别(成员共享同一段内存)。
- 链表:链表的基本概念(节点、指针域、数据域)、链表的创建、遍历、插入和删除操作(这是考试的重点和难点)。
- 结构体:结构体类型的定义、结构体变量的定义和初始化、结构体成员的引用(和
-
位运算
- 位运算符:
&(按位与), (按位或),^(按位异或), (按位取反),<<(左移),>>(右移)。 - 简单的应用,如清零、取指定位等。
- 位运算符:
-
文件操作
- 文件指针(
FILE *)的概念。 - 文件的打开(
fopen())和关闭(fclose())。 - 文件的读写函数:
fputc(),fgetc(),fputs(),fgets(),fread(),fwrite(),fprintf(),fscanf()。 - 文件定位函数:
rewind(),fseek()。
- 文件指针(
程序设计题 (60分,通常为2-3道大题)
这部分是考试的重中之重,要求考生根据题目要求,编写完整的C语言程序代码,题目通常以以下形式出现:
-
简单应用题 (约20-30分)
- 通常涉及数组、字符串、简单的数学计算或逻辑判断。
- 常见题型:
- 在一维数组中查找最大/最小值、特定元素。
- 对数组进行排序(如冒泡排序、选择排序)。
- 统计字符串中某个字符出现的次数。
- 判断一个数是否为素数、水仙花数等。
- 要求:编写一个完整的函数或一个
main函数。
-
综合应用题 (约30-40分)
- 难度较大,通常需要综合运用多种知识点,特别是结构体和链表。
- 常见题型:
- 链表操作:这是最常见、最重要的题型,题目会给出一个链表的结构,要求考生实现一个函数,该函数的功能可能包括:
- 创建一个链表。
- 在链表的头部、尾部或指定位置插入一个节点。
- 删除链表中满足条件的节点(如删除某个值的节点、删除重复节点等)。
- 遍历并输出链表内容。
- 反转链表。
- 结构体数组处理:定义一个包含多个成员(如姓名、学号、成绩)的结构体,然后对结构体数组进行排序、查找、统计等操作。
- 链表操作:这是最常见、最重要的题型,题目会给出一个链表的结构,要求考生实现一个函数,该函数的功能可能包括:
- 要求:编写功能完整的函数,并注意代码的健壮性(如处理空指针、内存分配失败等情况)。
考试形式与建议
- 考试环境:通常是在Windows操作系统下,使用全国计算机等级考试专用软件,该软件集成了代码编辑、编译、运行和提交功能。
- 复习建议:
- 吃透教材:选择一本官方推荐的教材(如高等教育出版社的《全国计算机等级考试二级教程——C语言程序设计》),系统学习所有知识点。
- 动手实践:C语言是实践性很强的学科,一定要多写代码,特别是链表、指针、结构体这些难点,必须亲手敲代码、调试、运行才能真正理解。
- 刷真题:历年真题是最好的复习资料,通过做真题,可以了解考试的题型、难度、重点和高频考点,并练习在规定时间内完成编程题。
- 掌握调试技巧:学会使用编译器的错误提示信息,并熟练使用单步调试、设置断点等工具来排查程序中的逻辑错误。
- 注意规范:养成良好的编程习惯,如清晰的注释、合理的变量命名、适当的代码缩进,这有助于在考试中写出易于阅读和检查的代码。
二级C语言考试内容全面,重点突出,只要系统学习,勤加练习,特别是攻克链表和指针这两个难点,通过考试是完全有希望的,祝你考试顺利!
