第1章 程序设计与C语言 1
程序设计的基本概念 1
程序 1
程序设计 1
算法及其特征 2
数据结构 3
结构化程序设计 4
结构化程序结构及其表示 4
结构化程序设计方法 9
C语言的发展与特点 10
C语言的发展 10
C语言的特点 11
C语言的字符集与标识符 12
C程序实例 13
习题1 16
第2章 数据类型 18
C数据类型概述 18
常量 18
整型常量 18
实型常量 19
字符型常量 19
符号常量 20
变量 21
标识符的命名规则 21
变量的定义与初始化 22
整型变量 24
实型变量 25
字符型变量 25
限定词const 27
基本输入与输出 28
字符数据的输入与输出 28
格式输入与输出 29
函数与数学库函数 38
函数 38
数学库函数 39
习题2 41
第3章 运算符、表达式与语句 43
运算符与表达式概述 43
C运算符简介 43
C表达式简介 45
算术运算符与算术表达式 46
基本算术运算符与算术表达式 46
算术表达式在数值计算方面的应用 46
增量减量运算符 47
赋值运算符与赋值表达式 49
数据类型的转换 51
隐式类型转换 51
赋值表达式两侧数据的类型转换 52
强制类型转换 55
逗号运算符与逗号表达式 56
关系运算符与关系表达式 56
逻辑运算符与逻辑表达式 57
C语言基本结构控制语句 61
C语句概述 61
赋值语句 63
分支语句(if语句与条件表达式) 64
循环语句(while语句与for语句) 68
条件表达式的应用举例 73
习题3 77
第4章 基本程序设计技术 82
循环结构程序设计 82
通过计数器变量控制循环 82
通过状态变量控制循环 89
控制结构与控制语句 92
do-while语句 92
流程控制语句(break语句、continue语句与goto语句) 93
开关分支语句(switch语句) 96
程序设计实例 98
习题4 100
第5章C程序结构与函数 102
函数定义与函数调用 102
为什么要使用函数 102
函数定义 104
函数调用 106
函数原型与函数声明 108
函数的两种视角 111
标准库函数 112
程序中的函数执行 122
C程序结构概述 122
主函数 124
函数的执行 124
参数传递 126
程序的函数分解 129
C程序结构与变量 135
变量的作用域与生存期 135
局部变量与全局变量 135
变量的动态与静态存储方式 139
局部变量的存储类型 140
全局变量的存储类型 141
内部函数与外部函数 143
编译预处理 144
文件包含命令 144
宏定义与宏替换 145
条件编译命令 147
习题5 150
第6章 数组 154
一维数组 154
一维数组的定义 154
一维数组的引用 155
一维数组的初始化 158
二维数组 159
二维数组的定义 159
二维数组的引用 160
二维数组的初始化 160
字符数组 163
用字符数组处理字符串 163
字符数组的输入输出 164
字符串处理函数 168
数组作为函数参数 171
数组元素作为函数实参 171
数组名作为函数参数 171
习题6 175
第7章 程序设计基本算法 181
穷举算法 181
迭代与递推算法 185
迭代 185
递推 187
递归算法 188
递归的概念 188
递归的执行过程 190
Hanoi塔问题 191
分治法 193
分治法的基本思想 193
折半查找 193
循环赛赛程安排 195
贪心算法 196
贪心算法的基本概念 196
活动安排问题 198
背包问题 199
动态规划算法 201
动态规划介绍 201
最长公共子序列问题 203
0-1背包问题 205
动态规划算法总结 207
回溯法 208
回溯法的基本思想 208
n皇后问题 209
0-1背包问题 211
回溯法总结 213
习题7 215
第8章 指针 218
指针与指针变量 218
指针的概念 218
指针变量的定义与初始化 219
指针的基本运算 221
数组的指针 225
一维数组的指针 225
二维数组的元素指针 227
二维数组的行指针 228
指向一维数组的指针变量(行指针变量) 230
字符指针与字符串 232
指针作为函数参数 234
变量的指针作为函数参数 235
一维数组的指针作为函数参数 237
二维数组的指针作为函数参数 239
习题8 240
第9章 结构体 244
结构体类型的声明 244
结构体变量 245
结构体变量的定义与存储 245
结构体变量的引用与初始化 246
结构体数组 247
结构体指针 249
结构体与函数 250
函数的结构体类型参数 250
结构体类型的函数 251
结构体嵌套 253
习题9 253
第10章 文件 255
C文件概述 255
C文件的基本概念 255
文本文件与二进制文件 255
文件的处理方法 256
文件类型的指针 257
文件的打开与关闭 257
文件的打开 257
文件的关闭 259
文件的读写 260
输入与输出一个字符 260
输入与输出一个字符串 264
数据块方式的输入与输出 265
格式化的输入与输出 268
输入与输出一个字 268
文件的定位与随机读写 269
文件的定位 269
随机读写 270
文件操作的出错检测 271
习题10 272
第11章 指针的进一步讨论 274
指针数组与多级指针 274
指针数组的概念及其应用 274
指针数组做main函数的形参 276
行指针数组 277
多级指针 279
返回指针的函数 281
返回指针的函数 281
返回行指针的函数 282
函数的指针 283
指向函数的指针变量 283
指向函数的指针数组 284
指向返回指针的函数的指针变量 284
指向返回指针的函数的指针数组 285
指向返回行指针的函数的指针变量 285
指向返回行指针的函数的指针数组 285
线性链表 286
线性链表概述 286
动态内存管理函数 288
线性链表的基本操作 288
习题11 293
第12章 其他数据类型与位运算 296
联合共用体与枚举类型 296
联合共用体 296
枚举类型 299
类型名重新定义typedef 301
位运算 302
二进制位运算概述 302
位运算符 303
位段 306
习题12 308
第13章C程序上机调试指导及实验 311
Turbo C 3.0系统简介 311
Turbo C 3.0的集成开发环境使用简介 312
Turbo C 3.0的启动 312
Turbo C 3.0IDE的基本操作 312
Turbo C3.0的热键 314
Turbo C 3.0的主菜单 314
Turbo C 3.0的菜单命令 314
C程序调试 317
程序的两种主要错误 317
调试程序的一般过程及其调试方法 318
上机实验设计 321
实验概述 321
实验一:TC 3.0的集成开发环境及简单C程序的运行 323
实验二:数据类型及其输入与输出 324
实验三:运算符、表达式及简单C程序设计 327
实验四:基本程序设计技术 329
实验五:C程序结构与函数 332
实验六:数组 336
实验七:程序设计基本算法 341
实验八:指针初步 343
实验九:结构体与文件 346
实验十:指针的进一步讨论与位运算 351
主要参考文献 354
附录A部分字符与ASCII代码对照表 355
附录B Turbo C 3.0常用库函数 356