第1部分 C语言考级教程 3
第1章 程序设计和计算思维 3
1.1 引言 3
1.1.1 第一个C语言程序例子 3
1.1.2 编程语言中的思维训练 4
1.1.3 非常受欢迎的编程语言 4
1.2 C语言的特征 5
1.2.1 C语言的编程语言特征 6
1.2.2 结构化程序设计 7
1.3 计算思维在C语言程序中的运用 9
1.3.1 C语言编程学习中的计算思维 9
1.3.2 学习C语言的一些建议 10
第2章 C语言概述 11
2.1 程序的组成结构 11
2.2 数据类型 12
2.3 常量、变量、标识符 13
2.3.1 常量和变量 13
2.3.2 标识符 14
第3章 运算符和表达式 17
3.1 C语言运算符 17
3.1.1 运算符分类 17
3.1.2 运算符的结合性和优先级 18
3.2 算术运算符和算术表达式 18
3.2.1 基本的算术运算符 18
3.2.2 算术表达式的运算规则和要求 18
3.2.3 自增、自减运算符 19
3.2.4 算术运算中的类型转换 19
3.3 赋值运算符和赋值表达式 20
3.4 逗号运算符和逗号表达式 21
3.5 位运算符和位运算 22
第4章 输入输出函数 23
4.1 格式化输入输出函数 23
4.1.1 格式化输出函数 23
4.1.2 格式化输入函数 26
4.2 字符和字符串输入输出函数 28
4.2.1 字符输入、输出函数 28
4.2.2 字符串输入、输出函数 30
第5章 选择结构 31
5.1 关系运算符与关系表达式 31
5.1.1 关系运算符 31
5.1.2 关系表达式 31
5.2 逻辑运算符和逻辑表达式 32
5.2.1 逻辑运算符 32
5.2.2 逻辑表达式 33
5.2.3 逻辑运算的短路原则 34
5.3 条件运算 34
5.4 if选择语句 35
5.4.1 if语句的3种形式 35
5.4.2 使用if语句编程 37
5.5 多分支switch选择语句 39
5.5.1 switch语句的形式 39
5.5.2 使用switch语句编程 40
5.6 选择结构的嵌套 41
第6章 循环结构 44
6.1 while语句 44
6.2 do-while语句 46
6.3 for语句 47
6.4 循环嵌套 49
6.5 break和continue语句 50
6.5.1 break语句 50
6.5.2 continue语句 51
第7章 数组 53
7.1 一维数组 53
7.1.1 一维数组的定义 53
7.1.2 一维数组的初始化 53
7.1.3 一维数组的引用 54
7.2 二维数组 58
7.2.1 二维数组的定义 58
7.2.2 二维数组的初始化 59
7.2.3 二维数组的引用 60
7.3 字符数组和字符串 63
7.3.1 字符数组 63
7.3.2 字符串结束标志 64
7.3.3 字符串的输出和输入 65
7.3.4 字符串处理函数 66
第8章 函数 70
8.1 函数定义和说明 70
8.2 函数的参数与返回值 71
8.2.1 函数的参数 71
8.2.2 函数的返回值 71
8.3 函数调用 72
8.4 递归调用 74
8.5 全局变量和局部变量 75
8.5.1 变量的作用域类别 75
8.5.2 变量的存储类别 76
第9章 指针 78
9.1 指针变量 78
9.1.1 指针变量的定义 78
9.1.2 指针变量的引用 79
9.2 指针与数组 81
9.3 指针与字符串 86
9.4 指向函数的指针 90
第10章 编译预处理和内存管理 93
10.1 编译预处理 93
10.1.1 宏定义命令 93
10.1.2 文件包含命令 95
10.1.3 条件编译命令 95
10.2 内存管理 96
10.2.1 变量的存储方式 96
10.2.2 动态内存分配 97
第11章 用户定义类型、结构体和共用体 99
11.1 用户定义类型typedef 99
11.2 结构体的定义和使用 99
11.3 结构体指针 102
11.4 共用体 103
第12章 文件 105
12.1 文件的概念 105
12.2 文件的打开与关闭 106
12.2.1 文件的打开 106
12.2.2 文件的关闭 107
12.3 文件的读写 108
12.3.1 以字符形式读写文件 108
12.3.2 以字符串形式读写文件 109
12.3.3 以数据块形式读写文件 110
12.3.4 格式化读写文件 110
12.4 文件的定位 111
第13章 上机操作 113
13.1 有关数的运算 113
13.1.1 数据交换 113
13.1.2 数据整除 114
13.1.3 素数 116
13.1.4 阶乘 119
13.1.5 计算公式的值 120
13.1.6 数的分解与合并 124
13.2 一维数组类型 129
13.2.1 一维数组的平均值 129
13.2.2 一维数组的最大值和最小值 133
13.2.3 数组的排序 135
13.2.4 在数组中查找数据 136
13.2.5 数组元素的删除和移动 137
13.3 字符串类型 141
13.3.1 字母字符的判定与统计 141
13.3.2 字母大小写的转换 144
13.3.3 数字字符的判定与统计 145
13.3.4 数字字符转换为对应数值 147
13.3.5 字符串中字符的删除 149
13.3.6 字符串中字符的移动 155
13.3.7 字符串中查找子串 158
13.3.8 字符串的回文判断与逆置 161
13.3.9 字符串的复制 163
13.3.10 字符串数组 166
13.4 二维数组-矩阵 173
13.4.1 矩阵行列的最大值和最小值 173
13.4.2 矩阵周边元素下标的特点 174
13.4.3 二维数组的行列 176
13.4.4 矩阵对角线元素的特点 179
13.4.5 矩阵转置 183
13.5 结构体类型 184
13.5.1 结构体成员的访问 184
13.5.2 结构体数组的平均值 185
13.5.3 结构体数组的最大值和最小值 187
13.5.4 结构体数组元素的查找 189
13.5.5 结构体数组元素的排序 191
13.6 链表类型 195
13.6.1 链表的顺序访问 195
13.6.2 链表的插入 202
13.6.3 链表的删除 204
13.6.4 链表的排序 205
第2部分 C语言实训任务 209
第14章 软件工程基础 209
14.1 软件 209
14.2 软件生命周期 209
14.3 结构化程序设计 210
14.4 面向对象的程序设计 212
14.5 软件测试 212
14.6 软件调试 213
第15章 编码规范 214
15.1 程序文件规范 214
15.2 模块和变量规范 216
第16章 实训任务内容和要求 218
16.1 实训任务安排和要求 218
16.2 实训任务题目需求 218
16.3 实训任务示例需求 220
第17章 实训任务需求分析 221
17.1 可行性分析 221
17.2 需求分析 221
第18章 实训任务概要设计 223
18.1 软件结构设计 223
18.2 数据设计 225
18.3 接口设计和过程设计 225
第19章 实训任务详细设计 228
19.1 主模块main()的详细设计 228
19.2 添加和显示记录模块的详细设计 233
19.3 删除和修改记录模块的详细设计 245
19.4 查询、插入和排序记录模块的详细设计 253
19.5 C语言代码的调试 261
第20章 实训任务测试和文档 264
20.1 实训任务测试 264
20.2 文档 266
第21章 实习任务总结和改进方案 269
21.1 实训任务总结 269
21.2 进一步改进的方法 269
21.3 其他实现方案 273
参考文献 274
附录1 全国计算机等级考试(二级C语言)程序设计考试大纲(2022年版) 275
附录2 全国计算机等级考试二级公共基础知识考试大纲(2022年版) 277