目 录
第1章 程序设计思想与方法 01
1.1 如何跟计算机交流 02
1.1.1 计算机语言 02
1.1.2 计算机语言的发展 02
1.1.3 程序设计 03
1.2 为什么要学C语言 04
1.2.1 C语言发展史 04
1.2.2 C语言的特征 05
1.2.3 C语言的应用 06
1.3 如何利用C语言解决问题 06
1.3.1 分析问题 07
1.3.2 确定数据结构及模型 07
1.3.3 算法设计 07
1.3.4 编程实现 11
1.3.5 调试运行 12
1.4 项目实战 13
1.4.1 项目问题分析 13
1.4.2 数据模型的构建 13
1.4.3 算法的设计 13
1.4.4 代码编写 14
1.4.5 程序调试运行 15
总结拓展 20
【本章小结】 20
【思政故事】 20
【课后练习】 22
第2章 数据存储 25
2.1 什么是数据存储 26
2.1.1 计算机工作原理 26
2.1.2 计算机存储器 27
2.1.3 什么是数据存储 28
2.2 数据在计算机中如何存储 29
2.2.1 C语言的基本数据类型 29
2.2.2 不同数据类型的存储方式 30
2.2.3 不同数据类型的取值范围 33
2.3 C语言中如何使用数据 34
2.3.1 标识符 35
2.3.2 常量 35
2.3.3 变量 38
2.4 项目实战 41
2.4.1 项目问题分析 41
2.4.2 数据模型的构建 41
2.4.3 算法的设计 42
2.4.4 项目实现 42
总结拓展 43
【本章小结】 43
【思政故事】 43
【课后练习】 44
第3章 数据运算 47
3.1 什么是数据运算 48
3.1.1 数据运算基础 48
3.1.2 表达式与语句 48
3.2 C语言中的运算 50
3.2.1 赋值运算 50
3.2.2 算术运算 51
3.2.3 位运算 52
3.2.4 关系运算 53
3.2.5 逻辑运算 54
3.2.6 复合运算 54
3.3 C语言中的混合运算规则 58
3.3.1 优先级与结合性 59
3.3.2 数据类型的转换 60
3.4 项目实战 62
3.4.1 项目问题分析 62
3.4.2 数据模型的构建 62
3.4.3 算法的设计 62
3.4.4 项目实现 62
总结拓展 63
【本章小结】 63
【思政故事】 63
【课后练习】 65
第4章 顺序结构程序设计 67
4.1 顺序结构程序设计 68
4.2 数据的格式化输入 69
4.2.1 格式输入函数scanf( ) 69
4.2.2 字符数据输入函数 72
4.3 数据的格式化输出 74
4.3.1 格式输出函数printf 74
4.3.2 字符数据输出函数 79
4.4 项目实战 81
4.4.1 项目问题分析 81
4.4.2 数据模型的构建 81
4.4.3 算法的设计 81
4.4.4 项目实现 82
总结拓展 83
【本章小结】 83
【思政故事】 83
【课后练习】 85
第5章 选择结构程序设计 89
5.1 if-else语句 90
5.1.1 if语句的基本结构 90
5.1.2 if语句的嵌套 94
5.2 switch语句 97
5.2.1 switch语句的基本结构 97
5.2.2 switch语句举例说明 98
5.3 项目实战 101
5.3.1 项目问题分析 102
5.3.2 数据模型的构建 102
5.3.3 算法的设计 102
5.3.4 项目实现 103
总结拓展 106
【本章小结】 106
【思政故事】 106
【课后练习】 107
第6章 循环结构程序设计 111
6.1 什么是循环结构 112
6.1.1 循环结构的定义 112
6.1.2 循环结构的要素 112
6.1.3 循环结构的分类 112
6.2 常见的循环结构语句 113
6.2.1 while语句 113
6.2.2 do-while语句 117
6.2.3 for语句 119
6.3 循环嵌套与跳出语句 121
6.3.1 循环嵌套 121
6.3.2 跳出语句 123
6.4 项目实战 129
6.4.1 项目问题分析 129
6.4.2 数据模型的构建 129
6.4.3 算法的设计 129
6.4.4 项目的实现 130
总结拓展 132
【本章小结】 132
【思政故事】 132
【课后练习】 134
第7章 数组与字符串 139
7.1 数组 140
7.1.1 什么是数组 140
7.1.2 数组的作用 140
7.2 数组的组织形式 141
7.2.1 一维数组 141
7.2.2 二维数组与多维数组 149
7.3 字符串与字符数组 154
7.3.1 字符串 154
7.3.2 字符数组 155
7.3.3 字符串处理函数 160
7.4 项目实战 164
7.4.1 项目问题分析 164
7.4.2 数据模型的构建 164
7.4.3 算法的设计 164
7.4.4 项目实现 165
总结拓展 167
【本章小结】 167
【思政故事】 167
【课后练习】 168
第8章 函数 173
8.1 函数概述 174
8.1.1 函数的概念 174
8.1.2 函数的分类 174
8.2 函数定义与调用 175
8.2.1 函数定义 175
8.2.2 函数调用 177
8.2.3 函数声明 178
8.3 函数参数的传递 179
8.3.1 值传递方式 180
8.3.2 地址传递方式 181
8.4 函数的嵌套和递归调用 182
8.4.1 函数的嵌套调用 182
8.4.2 函数的递归调用 184
8.5 作用域和生存期 188
8.5.1 变量的作用域和生存期 188
8.5.2 变量的存储类型 190
8.5.3 函数的作用域 193
8.6 项目实战 194
8.6.1 项目问题分析 194
8.6.2 数据模型的构建 195
8.6.3 算法的设计 196
8.6.4 项目实现 197
总结拓展 200
【本章小结】 200
【思政故事】 201
【课后练习】 202
第9章 指针 205
9.1 指针与指针变量的概念 206
9.1.1 指针和地址 206
9.1.2 指针变量 206
9.1.3 指针变量的运算 208
9.1.4 空指针与空类型指针 211
9.1.5 多级指针 211
9.2 指针与数组 213
9.2.1 指针与一维数组 213
9.2.2 指针数组 216
9.2.3 指针与二维数组 218
9.3 指针与函数 222
9.3.1 指针作为函数的参数 222
9.3.2 指向函数的指针——函数指针 228
9.3.3 返回指针的函数——指针函数 229
9.4 动态内存分配 231
9.4.1 内存的存储分配 231
9.4.2 内存的动态分配 231
9.5 项目实战 234
9.5.1 项目问题分析 234
9.5.2 数据模型的构建 234
9.5.3 算法的设计 235
9.5.4 项目实现 236
总结拓展 241
【本章小结】 241
【思政故事】 242
【课后练习】 243
第10章 复杂数据类型 247
10.1 复杂数据类型概述 248
10.2 结构体 249
10.2.1 结构体类型 249
10.2.2 结构体变量 252
10.2.3 结构体数组 256
10.2.4 结构体指针 259
10.3 联合体 262
10.3.1 联合体类型 262
10.3.2 联合体变量 263
10.4 枚举类型 268
10.4.1 枚举类型与枚举变量的定义 269
10.4.2 枚举变量的赋值与使用 269
10.5 类型定义符typedef 271
10.6 项目实战 272
10.6.1 项目问题分析 272
10.6.2 数据模型的构建 273
10.6.3 算法的设计 273
10.6.4 项目实现 274
总结拓展 279
【本章小结】 279
【思政故事】 279
【课后练习】 281
第11章 预处理命令 285
11.1 预处理命令简介 286
11.2 宏定义 286
11.2.1 不带参数的宏定义 287
11.2.2 带参数的宏定义 289
11.2.3 带参数的宏与函数的区别 290
11.3 文件包含 291
11.4 条件编译 294
11.4.1 if格式 294
11.4.2 ifdef格式 296
11.4.3 ifndef格式 297
11.4.4 条件编译与分支语句的差别 298
11.5 项目实战 299
11.5.1 项目问题分析 299
11.5.2 数据模型的构建 299
11.5.3 项目实现 299
总结拓展 301
【本章小结】 301
【思政故事】 301
【课后练习】 302
第12章 文件 305
12.1 文件基本概念 306
12.1.1 什么是文件 306
12.1.2 文件的分类 306
12.1.3 文件读写流程 307
12.2 文件打开与关闭 309
12.2.1 文件的打开 309
12.2.2 文件的关闭 310
12.3 文件读写操作 311
12.3.1 字符读写 311
12.3.2 字符串读写 313
12.3.3 格式化读写 314
12.3.4 数据块读写 316
12.4 文件其他操作 318
12.4.1 文件结尾检测 318
12.4.2 读写指针定位 319
12.5 项目实战 321
12.5.1 项目问题分析 321
12.5.2 数据模型的构建 322
12.5.3 算法的设计 322
12.5.4 项目实现 324
总结拓展 329
【本章小结】 329
【思政故事】 329
【课后练习】 330
附 录 C语言常用库函数 333