本书共分10章,首先简单介绍程序设计基础,然后分别系统地介绍C语言的数据类型与运算符、C语言的3种程序结构、数组与函数、指针与文件等相关知识。
本书面向初学者,语言叙述通俗易懂,概念清晰,实践性强。本书提供了大量的实例与习题,注重各部分知识的综合应用训练。
本书为结合应用型人才培养需求而编写的。
在新版图书中,作者继续沿袭了第1版中所遵循的知识讲授和能力训练并重的原则,在讲清基本知识的基础上,注意了例题的选择,力求理论联系实际和循序渐进,注重培养读者分析问题和程序设计的能力,使读者养成良好的程序设计风格和习惯。
逐步引导学生掌握程序设计的方法和技巧,突出应用实践编程能力。
王洪海,安徽三联学院电子电气工程学院副教授,长期从事计算机基础教学与研究工作,具有丰富的计算机软硬件开发实践经验,主持参与了多项省部级计算机类研究课题,发表相关论文10余篇,其中4篇被EI检索。出版的著作被全国多所应用型本科高校及高职院校遴选为教材。
第1章 程序设计基础 1
1.1 程序设计的基本概念 1
1.1.1 程序 1
1.1.2 算法与数据结构 2
1.2 程序设计的一般步骤 6
1.3 结构化程序设计方法 7
小结 7
习题1 8
第2章 C语言概述 9
2.1 C语言的发展及其特点 9
2.1.1 C语言的发展简史 9
2.1.2 C语言的特点 9
2.2 简单的C程序介绍 10
2.2.1 简单的C程序 10
2.2.2 C源程序的结构特点 12
2.2.3 C源程序的书写规则 12
2.3 运行C语言程序的基本步骤 13
小结 13
习题2 14
第3章 数据类型、运算符及
表达式 15
3.1 C语言的数据类型 15
3.2 标识符与关键字 16
3.3 常量 16
3.3.1 整型常量 17
3.3.2 实型常量 18
3.3.3 字符型常量 18
3.3.4 字符串常量 20
3.3.5 符号常量 22
3.4 变量 23
3.4.1 变量的定义 23
3.4.2 变量的初始化 25
3.5 运算符及其表达式 28
3.5.1 算术运算符和算术表达式 29
3.5.2 赋值运算符和赋值表达式 32
3.5.3 关系运算符和关系表达式 34
3.5.4 逻辑运算符和逻辑表达式 35
3.5.5 条件运算符和条件表达式 38
3.5.6 逗号运算符和逗号表达式 39
3.5.7 位运算 40
3.5.8 指针运算符、sizeof运算符 43
3.6 运算符的优先级和结合性 43
3.7 表达式中数据类型的转换 44
小结 49
习题3 50
第4章 结构化的C语言程序设计 54
4.1 结构化程序设计概述 54
4.2 顺序结构程序设计 54
4.2.1 赋值语句、复合语句 54
4.2.2 字符输出函数 55
4.2.3 字符输入函数 55
4.2.4 格式化输出函数 56
4.2.5 格式化输入函数 58
4.2.6 顺序结构程序设计举例 60
4.3 选择结构程序设计 62
4.3.1 简单的if结构 62
4.3.2 if-else语句结构 63
4.3.3 if结构的嵌套 64
4.3.4 if-else-if语句结构 65
4.3.5 switch结构 67
4.3.6 选择结构程序设计举例 68
4.4 循环结构程序设计 69
4.4.1 goto语句 69
4.4.2 while语句 69
4.4.3 do-while 语句 70
4.4.4 for语句 71
4.4.5 3种循环语句的比较 73
4.4.6 循环嵌套 73
4.4.7 break语句 74
4.4.8 continue语句 74
4.4.9 空语句 75
4.4.10 循环结构程序设计举例 75
小结 77
习题4 78
第5章 数组 83
5.1 一维数组的定义和引用 83
5.1.1 一维数组的定义 83
5.1.2 一维数组元素的引用 85
5.1.3 一维数组的初始化 86
5.1.4 一维数组程序举例 87
5.2 二维数组 90
5.2.1 二维数组的定义 90
5.2.2 二维数组元素的引用 91
5.2.3 二维数组的初始化 91
5.2.4 二维数组程序举例 92
5.3 字符数组 96
5.3.1 字符数组的定义 96
5.3.2 字符数组的初始化 96
5.3.3 字符数组的引用 97
5.3.4 字符串 97
5.3.5 字符串的输入/输出 98
5.3.6 字符串操作函数 101
5.3.7 字符数组应用举例 103
小结 106
习题5 106
第6章 函数 111
6.1 函数概述 111
6.1.1 函数的定义 113
6.1.2 函数的调用 115
6.1.3 变量的生命期及作用域 120
6.2 函数参数传递 128
6.2.1 值传递 130
6.2.2 地址传递 132
6.3 递归函数 139
6.4 内部函数与外部函数 145
小结 147
习题6 148
第7章 指针 153
7.1 指针与指针变量的概念 153
7.1.1 指针的概念 153
7.1.2 指针变量 153
7.2 指针变量的定义和引用 155
7.2.1 指针变量的定义 155
7.2.2 指针变量的赋值 156
7.2.3 指针变量的引用 156
7.3 指针和地址运算 159
7.4 指针与数组 161
7.4.1 指针变量与数组 161
7.4.2 指针变量在一维数组中的应用 163
7.4.3 指针变量在多维数组中的应用 165
7.5 指针与字符串 169
7.6 指针数组与多级指针 172
7.6.1 指针数组的定义 172
7.6.2 指针数组的使用 172
7.6.3 多级指针 174
7.7 指针变量与函数 176
7.7.1 函数的操作方式与指针变量 176
7.7.2 指针型函数的定义与使用 177
7.7.3 函数指针的定义与使用 178
7.7.4 与指针有关的函数参数传递方式 179
7.7.5 带参数的main函数和命令行参数 185
7.8 指针与动态内存分配 186
7.8.1 动态存储的概念 186
7.8.2 C语言的动态存储管理方式 186
小结 187
习题7 189
第8章 结构体与共用体 194
8.1 结构体类型和结构体变量 194
8.1.1 结构体类型的定义 194
8.1.2 结构体变量的定义 195
8.1.3 结构体变量的引用 197
8.1.4 结构体变量的初始化 198
8.2 结构体数组 198
8.2.1 结构体数组的定义 198
8.2.2 结构体数组的引用 199
8.2.3 结构体数组的初始化 200
8.3 结构体类型指针 201
8.3.1 指向结构体变量的指针 201
8.3.2 指向结构体数组的指针 203
8.3.3 结构体变量和指向结构体指针
作为函数参数 203
8.4 动态内存分配 205
8.5 共用体 207
8.5.1 共用体类型的定义 208
8.5.2 共用体变量的定义 208
8.5.3 共用体变量的引用和初始化 209
8.6 枚举类型 210
8.6.1 枚举类型的说明 210
8.6.2 枚举型变量的定义 211
8.7 用typedef定义类型 213
小结 214
习题8 215
第9章 文件 220
9.1 文件概述 220
9.1.1 文件的概念 220
9.1.2 文件类型指针 222
9.2 文件的打开与关闭 223
9.2.1 文件的打开 223
9.2.2 文件的关闭 225
9.3 文件的读写 226
9.3.1 文件尾测试函数 226
9.3.2 读/写字符函数 227
9.3.3 读/写字符串函数 229
9.3.4 读/写数据函数 231
9.3.5 格式读/写函数 233
9.4 其他函数 234
9.4.1 文件头定位函数 234
9.4.2 文件随机定位函数 235
9.4.3 出错检测函数 236
小结 236
习题9 237
第10章 编译预处理 238
10.1 宏定义 238
10.1.1 不带参数的宏定义 238
10.1.2 带参数的宏定义 240
10.2 文件包含处理 242
10.3 条件编译 245
小结 247
习题10 248
附录A C语言的字符集-
ASCⅡ字符表 249
附录B C语言的关键字 250
附录C C语言的库函数 251
附录D Turbo C常见英文错误
提示及含义 259
附录E 习题参考答案 263