C语言程序设计是高等学校理工科各专业计算机应用能力培养的重要技术基础。C语言自诞生以来始终在系统开发、嵌入式编程、算法实现等领域发挥着不可替代的作用。
本书以程序设计为主线,全面介绍C语言的基本概念、基本语法和程序设计技术。本书配有重、难知识点的微课视频,读者可以利用手机扫码进行泛在学习。本书配套的智慧课程已在国家高等教育智慧教育平台上线,配有课程PPT、习题、实验解析等丰富的数字资源,师生可实现全方位的个性化参考与学习。
样章试读
目录
- 目录
第1章 概述 1
1.1 程序设计语言简介 1
1.1.1 程序设计语言的概念 1
1.1.2 程序设计语言的发展 2
1.2 C语言简介 3
1.2.1 C语言的产生 3
1.2.2 C语言的标准与版本 4
1.2.3 C语言的特点 4
1.3 C语言的基本语法成分 5
1.4 C语言程序的组成 6
1.4.1 简单的C语言程序介绍 6
1.4.2 C语言程序的基本结构 8
1.4.3 C语言程序的书写格式 9
1.4.4 宏定义和条件编译 10
1.5 程序设计的一般过程 11
1.6 C语言程序的上机步骤、
上机环境及基本调试技术 13
1.6.1 C语言程序的上机步骤 13
1.6.2 C语言程序的上机环境 14
1.6.3 C语言程序的基本调试技术 15
本章小结 16
习题1 16
第2章 数据、运算与表达式 18
2.1 C语言的数据类型 18
2.2 常量 19
2.2.1 整型常量 19
2.2.2 实型常量 20
2.2.3 符号常量 20
2.2.4 字符型常量 21
2.3 变量 23
2.3.1 变量类型 23
2.3.2 变量值 27
2.4 运算符及表达式 27
2.4.1 运算符及表达式简介 27
2.4.2 算术运算符与算术表达式 28
2.4.3 赋值运算符与赋值表达式 31
2.4.4 关系运算符和关系表达式 33
2.4.5 逻辑运算符和逻辑表达式 34
2.4.6 条件运算符和条件表达式 36
2.4.7 逗号运算符和逗号表达式 38
2.4.8 不同类型数据间的混合运算与类型转换 38
2.5 典型题例 40
本章小结 41
习题2 41
第3章 简单的C程序设计 44
3.1 算法 44
3.1.1 算法的定义与特性 44
3.1.2 算法的评价标准 45
3.1.3 算法的表示 46
3.2 结构化程序设计的方法 48
3.3 程序的基本结构 49
3.3.1 顺序结构 49
3.3.2 选择结构 50
3.3.3 循环结构 50
3.4 顺序结构程序设计 51
3.5 数据的输入与输出 52
3.5.1 C语言中数据的输入与输出 53
3.5.2 字符数据的输入与输出 53
3.5.3 格式的输入与输出 55
3.6 计算思维 62
3.7 典型题例 65
本章小结 67
习题3 67
第4章 选择结构程序设计 69
4.1 if语句 69
4.1.1 if语句的一般形式 69
4.1.2 if语句的嵌套 78
4.2 switch语句 82
4.2.1 switch语句的一般形式 82
4.2.2 switch语句的嵌套 85
4.3 程序测试 85
本章小结 93
习题4 94
第5章 循环结构程序设计 97
5.1 while语句 97
5.2 do-while语句 100
5.3 for语句 102
5.4 goto语句 105
5.5 循环的嵌套 106
5.6 循环结束语句 109
5.7 典型题例 111
本章小结 118
习题5 118
第6章 指针与数组 120
6.1 指针基础 120
6.1.1 变量的内容和变量的地址 120
6.1.2 直接访问和间接访问 121
6.1.3 指针的概念 122
6.2 指针变量 122
6.2.1 指针运算符 122
6.2.2 指针变量的定义 124
6.2.3 指针变量的引用 126
6.3 一维数组 127
6.3.1 一维数组的定义、初始化及存储方式 127
6.3.2 一维数组元素的引用 128
6.3.3 一维数组应用举例 129
6.4 二维数组 131
6.4.1 二维数组的定义、初始化及存储方式 131
6.4.2 二维数组元素的引用 132
6.4.3 二维数组应用举例 133
6.5 字符数组 136
6.5.1 字符数组和字符串 136
6.5.2 字符数组的输入输出 138
6.5.3 字符串处理函数 140
6.5.4 二维字符数组 142
6.5.5 字符数组应用举例 143
6.6 指针在数组的应用 145
6.6.1 指向数组元素的指针 145
6.6.2 用指针访问字符数组和字符串 151
6.6.3 地址越界问题 153
6.6.4 指针数组 154
6.6.5 多维数组和指向分数组的指针 155
6.6.6 动态数组 160
6.7 典型题例 162
本章小结 166
习题6 166
第7章 函数 169
7.1 概述 169
7.1.1 C程序的组成结构 169
7.1.2 函数的定义 171
7.1.3 函数的分类 173
7.2 函数的参数和函数的返回值 173
7.2.1 形式参数和实际参数 173
7.2.2 数组作为函数参数 175
7.2.3 函数的返回值 178
7.3 函数的调用 179
7.3.1 函数调用的一般形式 179
7.3.2 函数调用的方式 180
7.3.3 引用传递 181
7.4 函数声明和函数原型 183
7.5 函数的嵌套调用 184
7.6 函数的递归调用 186
7.7 变量的作用域 190
7.7.1 局部变量 190
7.7.2 全局变量 191
7.8 变量的存储类型 193
7.8.1 自动变量 193
7.8.2 静态变量 194
7.8.3 寄存器变量 195
7.8.4 外部变量 196
7.8.5 存储类型小结 197
7.9 内部函数和外部函数 197
7.9.1 内部函数 197
7.9.2 外部函数 199
7.10 指针与函数 200
7.10.1 返回指针值的函数 200
7.10.2 指向函数的指针变量 200
7.10.3 指向函数的指针变量
作为函数参数 202
7.11 多文件程序的运行 203
7.12 典型题例 204
本章小结 208
习题7 208
第8章 结构体与共用体 212
8.1 结构体类型 212
8.2 结构体变量 213
8.2.1 结构体变量的定义 213
8.2.2 结构体变量的使用 215
8.3 结构体数组 220
8.3.1 结构体数组的定义 220
8.3.2 结构体数组元素的使用 221
8.4 结构体和函数 224
8.4.1 结构体变量作为函数参数 224
8.4.2 返回值为结构体类型的函数 225
8.5 共用体 226
8.5.1 共用体类型 226
8.5.2 共用体变量 227
8.5.3 共用体应用举例 228
8.6 枚举类型 230
8.7 typedef语句 233
8.8 指针与结构体 235
8.8.1 指向结构体的指针变量 235
8.8.2 用指向结构体的指针变量作为函数参数 236
8.9 典型题例 237
本章小结 241
习题8 241
第9章 指针与链表 245
9.1 内存空间的分配和释放 245
9.2 链式存储结构 249
9.3 单 链 表 250
9.3.1 单链表的建立 251
9.3.2 单链表的遍历 253
9.3.3 单链表的插入 257
9.3.4 单链表的删除 259
9.4 循环链表 263
9.5 双向链表 264
9.6 典型题例 264
本章小结 271
习题9 271
第10章 编译预处理和位运算及混合编程 273
10.1 文件包含 273
10.2 宏定义 275
10.2.1 不带参数的宏定义 275
10.2.2 带参数的宏定义 277
10.3 条件编译 278
10.4 位运算符和位运算 281
10.5 位段 283
10.6 位运算举例 285
10.7 C语言与汇编语言的混合编程 286
10.7.1 内嵌汇编代码 287
10.7.2 模块化连接 288
10.8 典型题例 292
本章小结 293
习题10 294
第11章 文件 297
11.1 文件的概述 297
11.1.1 数据流 297
11.1.2 文件的概念 298
11.1.3 文件的操作流程 299
11.1.4 文件和内存的交互处理 300
11.2 文件类型的指针 300
11.3 标准输入输出函数 301
11.3.1 打开文件 301
11.3.2 关闭文件 303
11.3.3 获取文件的属性 304
11.3.4 文件的顺序读写 305
11.3.5 文件的随机读写 315
11.3.6 出错检查 318
11.4 系统输入输出函数 320
11.5 典型题例 321
本章小结 330
习题11 330
第12章 综合案例分析与实现 332
12.1 诗词信息管理系统 332
12.2 智能停车场管理系统 339
第13章 C语言开发环境与调试 354
13.1 VisualStudio环境 354
13.1.1 VisualC++6.0集成开发环境 354
13.1.2 VisualStudio2022集成开发环境 360
13.2 Dev-C++环境 363
13.3 VisualStudioCode环境 366
13.4 Linux下C程序开发环境 368
13.4.1 使用vim编辑器编辑源文件 369
13.4.2 编译、运行程序 370
13.5 Arduino环境 370
13.6 移动端环境 372
13.6.1 Android版C语言编译器的下载与使用 372
13.6.2 iOS版C语言编译器的下载与使用 373
13.7 调试程序 375
13.7.1 VisualC++6.0环境中调试程序 375
13.7.2 Linux环境中调试程序 379
13.7.3 Arduino环境中调试程序 381
参考文献 384