本书是国家级精品课程“大学计算机”系列中“C语言程序设计”课程的主教材,也是该课程中国大学MOOC配套教材。本书以快速掌握程序设计思想为主线,采用“核心语法为先导、实践应用为目的、知识扩展为提升、疑难辨析以解惑”的内容组织方式,突出知识点与技术点的关联性。全书内容主要包括基本数据类型、简单程序设计、循环结构程序设计、数组、指针、模块化程序设计、复杂数据类型、动态存储空间管理、文件的处理。本书体系完整、结构严谨、注重应用、强调实践,在编写时兼顾了全国计算机等级考试的要求。为方便教学,本书还配有电子课件,任课教师可登录华信教育资源网(www.hxedu.com.cn)免费注册并下载。本书既可作为高等学校“C语言程序设计”课程的教材,也可作为全国计算机等级考试二级C语言程序设计的培训或自学教材。
董卫军,计算机理论与软件博士,信息与通信工程博士后,西北大学副教授,全国高等院校计算机基础教育研究会理事,陕西省计算机教育学会常务理事兼副秘书长。长期从事大学计算机课程的教学和研究工作,教学经验丰富。出版教材多部。
第1章 基本数据类型1
1.1 程序与工程化程序设计1
1.1.1 程序1
1.1.2 工程化程序设计1
1.2 程序设计语言7
1.2.1 程序设计语言的概念7
1.2.2 C语言简介7
1.3 数据类型与常量11
1.3.1 数据类型11
1.3.2 常量12
1.4 变量16
1.4.1 标识符16
1.4.2 变量的定义16
1.5 基本运算17
1.5.1 运算符与表达式17
1.5.2 赋值运算18
1.5.3 算术运算20
1.5.4 关系运算24
1.5.5 逻辑运算25
1.5.6 条件运算26
1.6 知识扩展28
1.6.1 数据的输入与输出28
1.6.2 逗号运算31
1.6.3 数据类型长度运算32
1.6.4 算术自反赋值运算33
1.6.5 位运算33
1.7 疑难辨析37
习题140
第2章 简单程序设计47
2.1 顺序结构程序设计47
2.1.1 语句47
2.1.2 顺序结构程序设计举例48
2.2 选择结构程序设计49
2.2.1 if语句49
2.2.2 switch语句51
2.2.3 选择结构的嵌套52
2.2.4 选择结构程序设计举例54
2.3 应用举例55
2.4 疑难辨析60
习题261
第3章 循环结构程序设计66
3.1 循环结构语句66
3.1.1 while语句66
3.1.2 for语句68
3.1.3 循环结构程序设计71
3.2 多重循环73
3.2.1 多重循环的引入73
3.2.2 多重循环结构程序设计73
3.3 知识扩展77
3.3.1 do…while语句77
3.3.2 break和continue语句78
3.4 应用举例79
3.5 疑难辨析80
习题381
第4章 数组87
4.1 一维数组的使用87
4.1.1 一维数组概述88
4.1.2 一维数组应用举例90
4.2 二维数组的使用96
4.2.1 二维数组概述96
4.2.2 二维数组应用举例98
4.3 知识扩展100
4.3.1 字符串与字符数组100
4.3.2 三维数组的使用104
4.4 应用举例107
4.5 疑难辨析109
习题4111
第5章 指针118
5.1 指针与指针的运算118
5.1.1 指针变量与指针常量118
5.1.2 指针的运算120
5.2 指针与数组124
5.2.1 指针与一维数组124
5.2.2 指针与二维数组126
5.3 知识扩展130
5.3.1 指针数组130
5.3.2 指向指针的指针132
5.4 应用举例133
5.5 疑难辨析135
习题5140
第6章 模块化程序设计146
6.1 模块化程序设计概述146
6.1.1 模块化程序设计的基本
思想146
6.1.2 函数简介147
6.2 函数的使用148
6.2.1 自定义函数的定义148
6.2.2 自定义函数的说明151
6.2.3 函数调用151
6.2.4 函数使用举例152
6.3 知识扩展156
6.3.1 变量的存储类别、生存期与
作用域156
6.3.2 函数的递归调用163
6.3.3 理解函数指针164
6.3.4 编译预处理165
6.4 应用举例171
6.5 疑难辨析178
习题6180
第7章 复杂数据类型195
7.1 结构体195
7.1.1 结构体类型与变量的定义195
7.1.2 结构体变量的使用197
7.1.3 结构体数组200
7.1.4 结构体类型的指针201
7.2 共用体203
7.2.1 共用体类型及共用体变量的
定义204
7.2.2 共用体变量的引用205
7.3 知识扩展207
7.3.1 枚举类型207
7.3.2 用typedef定义类型209
7.4 应用举例210
7.5 疑难辨析212
习题7213
第8章 动态存储空间管理219
8.1 存储空间的分配与管理219
8.1.1 存储空间的组成219
8.1.2 静态和动态存储方式220
8.1.3 静态和动态存储分配220
8.2 动态存储空间的申请与释放221
8.2.1 动态存储空间的申请222
8.2.2 动态存储空间的释放223
8.3 链表的使用224
8.3.1 链表的概念224
8.3.2 链表的基本操作226
8.4 应用举例230
8.5 疑难辨析242
习题8244
第9章 文件的处理248
9.1 文件的基本概念248
9.1.1 C语言支持的文件格式248
9.1.2 文件操作的基本思路250
9.2 文件的基本操作250
9.2.1 文件指针250
9.2.2 文件的打开与关闭251
9.2.3 字节级文件的读/写253
9.2.4 字符串文件的读/写255
9.2.5 文件结束判断函数256
9.3 知识扩展260
9.3.1 文件的格式化读/写260
9.3.2 文件的块串级读/写262
9.3.3 文件位置指针的移动264
9.4 应用举例266
9.5 疑难辨析269
习题9271
附录A Visual C++集成环境使用指南275
附录B 常用运算符及其优先级和结合性279
附录C 标准C语言头文件280
附录D C语言系统关键字281
附录E ASCII编码表282
参考文献283