本书致力于新工科新形态教材的建设,基于第一版在实际教学中的多年应用,对全书编程案例进行了优化与整合,并通过二维码添加了案例的教学视频及拓展内容资源。本书不仅强调内容的全面性和实用性,还严格遵循科学的教学理念与编写依据,旨在为高等院校学生及编程爱好者提供一本高效且易于理解的C语言教材。
全书共分为四部分:第一部分为基础篇,涵盖C语言编程初步、数据处理和交互;第二部分为流程控制篇,包括选择控制结构、循环控制结构、函数;第三部分为进阶篇,涉及指针、数组、字符串、结构、动态数据结构及数据文件;第四部分为高阶篇,包括预编译指令与位运算及应用。
更多科学出版社服务,请扫码获取。
1993.09 - 1997.07 河南大学计算机系计算机科学与技术专业学习;1997.09 – 2000.07 河南大学计算机科学学院基础数学专业硕士研究生;2004.03 – 2007.09 北京理工大学计算机科学技术学院计算机软件与理论专业博士研究生;2008.03 – 2008.12 中国科学院遥感与信息研究所进修学习2000.07 – 2008.12 河南大学计算机与信息工程学院工作
2008.12 – 2017.11 河南大学软件学院副院长
2017.11 – 2018.07 河南大学软件学院院长
2018.07 – 2023.04 河南大学计算机与信息工程学院院长、党委副书记、河南省大数据分析与处理重点实验室主任
2023.04 – 河南省大数据分析与处理重点实验室主任计算机软件与理论(1)2019年,“大规模数据智能处理关键技术及产业应用”,河南省人民政府科学技术进步奖,二等奖,排名第1;
(2)2022年,“两贯通六着重”学生创新能力的培养与实践,河南省高等教育教学成果奖,二等奖,排名第1;
(3)2022年,新工科背景下计算机科学与技术专业创新实践能力培养模式探究,河南省高等教育教学成果奖,二等奖,排名第4;
目录
第一部分 基础篇
第1章 C语言编程初步 1
1.1 程序与程序设计 1
1.2 初识C语言 2
1.2.1 C语言的发展和特点 2
1.2.2 C语言程序的编写和运行 3
1.3 C语言程序架构 8
习题 12
第2章 数据处理和交互 13
2.1 数据类型 13
2.1.1 整型数据类型 13
2.1.2 浮点型数据类型 16
2.2 变量 17
2.2.1 变量的定义 17
2.2.2 变量和地址 19
2.2.3 变量的命名要求 20
2.3 常量 20
2.4 运算符 22
2.4.1 算术运算符 24
2.4.2 赋值运算符 25
2.4.3 自增/自减运算符 27
2.5 数据类型转换 28
2.6 交互式输入输出 30
2.6.1 putchar函数和getchar函数 31
2.6.2 格式化输出函数printf 32
2.6.3 格式化输入函数scanf 34
2.6.4 cin和cout 35
2.7 案例:小小计算器1.0 37
习题 40
第二部分 流程控制篇
第3章 选择控制结构 41
3.1 关系运算符 41
3.2 逻辑运算符 42
3.3 if语句和if-else语句 44
3.3.1 if语句 44
3.3.2 if-else语句 47
3.3.3 if-else链 50
3.4 switch语句 54
3.5 选择结构的嵌套 59
3.6 条件运算符 60
3.7 案例:小小计算器2.0 62
习题 65
第4章 循环控制结构 66
4.1 while语句 66
4.2 for语句 69
4.3 do-while语句 72
4.4 break语句和continue语句 73
4.5 循环的嵌套 78
4.6 案例:小小计算器3.0 81
习题 84
第5章 函数 86
5.1 函数概述 86
5.1.1 函数的原型和定义 86
5.1.2 函数调用 88
5.1.3 递归调用 95
5.2 变量的作用域和存储类别 100
5.2.1 局部变量 100
5.2.2 全局变量 104
5.2.3 变量的存储类别 107
5.3 C 语言常用库函数 111
5.3.1 数学库函数 111
5.3.2 时间函数 113
5.3.3 随机函数 114
5.4 案例:小小计算器4.0 116
习题 119
第三部分 进阶篇
第6章 指针 121
6.1 存储地址与指针 121
6.2 指针变量 123
6.2.1 指针变量的定义 123
6.2.2 指针的运算 126
6.3 指针与函数 127
6.3.1 指针变量作为函数参数 127
6.3.2 返回指针的函数 132
6.3.3 指向函数的指针 134
习题 135
第7章 数组 137
7.1 一维数组 137
7.1.1 一维数组的定义 137
7.1.2 一维数组的地址 140
7.1.3 一维数组的初始化 142
7.1.4 一维数组的使用 144
7.2 多维数组 146
7.2.1 二维数组的定义 146
7.2.2 二维数组的地址和初始化 149
7.2.3 二维数组的使用 150
7.2.4 多维数组基础 154
7.3 数组作为函数的参数 154
7.4 数组和指针 158
7.4.1 一维数组和指针 158
7.4.2 二维数组和指针 160
7.4.3 指向一维数组的指针 163
7.5 案例:成绩管理器1.0 165
习题 173
第8章 字符串 175
8.1 字符串基础 175
8.2 字符串的输入输出 176
8.3 字符和字符串库函数 179
8.3.1 字符串库函数 179
8.3.2 字符库函数 181
8.3.3 转换库函数 183
8.4 字符串处理 184
8.5 字符串和指针 193
8.5.1 使用指针创建字符串 193
8.5.2 使用指针访问字符串 195
8.5.3 指针数组 197
8.6 案例:成绩管理器1.1 200
习题 204
第9章 结构 206
9.1 结构的基础 206
9.1.1 结构的定义 206
9.1.2 结构的使用 208
9.1.3 结构的初始化 210
9.2 typedef语句 212
9.3 结构和函数 214
9.3.1 结构作为函数的参数 214
9.3.2 函数返回结构 217
9.4 结构和指针 218
9.5 枚举类型 222
9.6 案例:成绩管理器2.0 225
习题 233
第10章 动态数据结构 234
10.1 动态存储分配 234
10.2 链表 236
10.3 案例:成绩管理器2.5 240
习题 247
第11章 数据文件 248
11.1 文件的基础 248
11.2 打开和关闭文件 249
11.3 读取和写入文本文件 251
11.3.1 字符读取函数fgetc 251
11.3.2 字符写入函数fputc 253
11.3.3 字符串读取函数fgets 254
11.3.4 字符串写入函数fputs 255
11.3.5 fprintf和fscanf 257
11.4 二进制文件读写 260
11.5 其他文件相关函数 263
11.6 案例1:成绩管理器3.0 268
11.7 案例2:绘制地图 272
习题 276
第四部分 高阶篇
第12章 预编译指令 277
12.1 宏定义 277
12.1.1 变量式宏定义 277
12.1.2 函数式宏定义 279
12.1.3 宏定义的范围 280
12.2 文件包含和条件编译 281
第13章 位运算及应用 286
13.1 位运算 286
13.2 位运算应用 289
参考文献 292