模块1 初识C语言 1
案例引入 1
1.1 C语言简介 3
1.1.1 计算机语言概述 3
1.1.2 C语言概述 4
1.2 C程序介绍 6
1.2.1 C程序的总体结构 6
1.2.2 C程序的书写规则 8
1.3 C程序的开发过程 8
1.3.1 C程序的实现过程 8
1.3.2 在Turbo C下实现C程序 9
1.3.3 在Visual C++环境下实现C程序 11
等级考试重难点讲解与真题解析 14
思考与练习 16
模块2 C程序数据描述与计算 18
案例引入 18
2.1 C程序的词法 20
2.1.1 字符集 20
2.1.2 标识符 20
2.2 常量与变量 21
2.2.1 常量 21
2.2.2 变量 22
2.3 基本数据类型 23
2.3.1 整型数据 23
2.3.2 实型数据 26
2.3.3字符型数据 27
2.4 C语言的运算符和表达式 29
2.4.1 算术运算符与算术表达式 30
2.4.2 赋值运算符和表达式 31
2.4.3 自增自减运算符和表达式 33
2.4.4 逗号运算符和逗号表达式 34
2.4.5 不同类型数据间的转换 34
等级考试重难点讲解与真题解析 35
思考与练习 38
模块3 顺序结构程序设计 40
案例引入 40
3.1 程序设计基础 42
3.1.1 程序 42
3.1.2 程序设计 42
3.1.3 算法 43
3.1.4 结构化程序 44
3.1.5 模块化程序 45
3.2 赋值语句 46
3.3 复合语句和空语句 47
3.3.1 复合语句 47
3.3.2 空语句 47
3.4 数据的输入与输出 48
3.4.1 字符的输入与输出 48
3.4.2 输出格式函数 50
3.4.3 输入格式函数 53
3.5 技能训练 55
等级考试重难点讲解与真题解析 57
思考与练习 59
模块4 选择结构程序设计 62
案例引入 62
4.1 关系运算符和关系表达式 65
4.1.1 关系运算符 65
4.1.2 关系表达式 65
4.2 逻辑运算符和逻辑表达式 66
4.2.1 逻辑运算符 66
4.2.2 逻辑表达式 66
4.3 if语句 68
4.3.1 简单if语句 68
4.3.2 if…else语句 69
4.3.3 嵌套if语句 71
4.3.4 多分支if…else…if语句 72
4.4 条件运算符和条件表达式 73
4.5 switch语句 74
4.6 技能训练 76
等级考试重难点讲解与真题解析 79
思考与练习 82
模块5 循环结构程序设计 85
案例引入 85
5.1 while语句 87
5.2 do…while语句 90
5.3 for语句 92
5.4 循环嵌套 95
5.5 break语句和continue语句 97
5.5.1 break语句 97
5.5.2 continue语句 99
5.6 技能训练 100
等级考试重难点讲解与真题解析 103
思考与练习 106
模块6 应用数组程序设计 110
案例引入 110
6.1 一维数组 113
6.1.1 一维数组的定义 113
6.1.2 一维数组的初始化 114
6.1.3 一维数组的引用 114
6.2 二维数组 117
6.2.1 二维数组的定义 117
6.2.2 二维数组的初始化 118
6.2.3 二维数组的引用 118
6.3 字符数组和字符串 122
6.3.1 字符数组 122
6.3.2 字符串 123
6.3.3 字符串的输入/输出 123
6.3.4 字符串处理函数 126
6.4 技能训练 131
等级考试重难点讲解与真题解析 134
思考与练习 139
模块7 应用函数程序设计 141
案例引入 141
7.1 函数概述 144
7.1.1 库函数 144
7.1.2 自定义函数 145
7.2 函数的定义和返回值 147
7.2.1 函数的定义 147
7.2.2 函数的返回值 148
7.3 函数的调用 148
7.3.1 函数调用的一般形式 148
7.3.2 函数调用时的语法要求 150
7.3.3 函数的声明 151
7.3.4 调用函数与被调用函数之间的数据传递 152
7.3.5 数组作为参数 153
7.4 函数的嵌套调用和递归调用 155
7.4.1 函数的嵌套调用 155
7.4.2 函数的递归调用 157
7.5 局部变量和全局变量 158
7.5.1 程序的存储空间 158
7.5.2 局部变量 158
7.5.3 全局变量 161
7.5.4 全局变量的作用域和生存期 162
7.6 内部函数和外部函数 164
7.6.1 内部函数 164
7.6.2 外部函数 165
7.7 编译预处理 165
7.7.1 宏定义 165
7.7.2 文件包含 167
7.8 技能训练 168
等级考试重难点讲解与真题解析 172
思考与练习 178
模块8 应用指针程序设计 184
案例引入 184
8.1 地址与指针 187
8.1.1 内存和内存地址 187
8.1.2 变量、变量名、变量的地址和变量值 187
8.1.3 指针、变量的指针和指针变量 188
8.1.4 系统访问变量的两种方式 188
8.2 指针变量的定义与引用 188
8.2.1 指针变量的定义 188
8.2.2 指针变量的引用 189
8.3 对指针变量的操作 190
8.3.1 指针变量的赋值 190
8.3.2 指针变量的算术运算(移动) 191
8.3.3 指针比较 192
8.4 指针与一维数组 193
8.4.1 通过指针访问一维数组 193
8.4.2 函数中一维数组名作为实参 195
8.5 指针与二维数组 198
8.5.1 二维数组和数组元素的地址 198
8.5.2 函数中二维数组作为实参 200
8.6 指针与字符串 202
8.6.1 通过指针访问字符串常量 202
8.6.2 通过指针访问字符串数组 202
8.6.3 字符串指针作为函数参数 203
8.6.4 使用字符指针和使用字符数组处理字符串的区别 204
8.7 指针与函数 206
8.7.1 函数间地址传递 206
8.7.2 函数型指针 207
8.7.3 指针型函数 208
8.7.4 指针数组和指向指针的指针 209
8.8 技能训练 213
等级考试重难点讲解与真题解析 214
思考与练习 219
模块9 结构体和其他构造类型 221
案例引入 221
9.1 结构体变量 224
9.1.1 结构体类型的定义 224
9.1.2 结构体变量的定义 225
9.1.3 结构体变量的初始化 226
9.1.4 结构体变量的引用 226
9.2 结构体数组与指针 228
9.2.1 结构体数组 228
9.2.2 结构体指针变量 230
9.3 函数之间结构体类型的数据传递 232
9.3.1 结构体变量作实参 233
9.3.2 结构体变量指针作实参 234
9.3.3 结构体函数 234
9.3.4 结构体指针函数 236
9.4 链表 237
9.4.1 链表的概念 237
9.4.2 链表的主要操作 238
9.5 共同体 241
9.5.1 共同体类型的声明 241
9.5.2 共同体变量的定义 241
9.5.3 共同体成员的引用 242
9.6 枚举类型 245
9.6.1 枚举类型的定义 245
9.6.2 枚举变量的定义与赋值 245
9.6.3 关于枚举的说明 245
9.6.4 枚举变量的输入与输出 246
9.7 定义类型别名 247
9.7.1 定义已有类型的别名 247
9.7.2 定义构造类型的别名 247
9.8 技能训练 248
等级考试重难点讲解与真题解析 250
思考与练习 255
模块10 位运算 259
案例引入 259
10.1 位运算符 260
10.2 位运算符的运算与应用 261
等级考试重难点讲解与真题解析 263
思考与练习 265
模块11 文件 267
案例引入 267
11.1 文件概述 271
11.1.1 文件的概念 271
11.1.2 文件指针 272
11.2 文件的基本操作 272
11.2.1 文件的打开和关闭 273
11.2.2 字符读/写函数 275
11.2.3 字符串读/写函数 276
11.2.4 数据块读/写函数 278
11.2.5 格式读/写函数 280
11.3 文件定位函数 280
11.3.1 rewind函数 280
11.3.2 fseek函数 281
11.3.3 ftell函数 282
等级考试重难点讲解与真题解析 283
思考与练习 287
附录A 常用字符的ASCII码对照表 290
附录B C语言标准库函数 291
参考文献 294