第1章 C语言概述\t1
1.1 程序设计语言\t1
1.1.1 程序\t1
1.1.2 程序设计\t2
1.1.3 程序设计语言分类\t2
1.2 C语言简介\t3
1.2.1 C语言的发展史\t4
1.2.2 C语言标准\t4
1.2.3 C语言的应用\t4
1.3 C程序的基本结构\t5
1.3.1 Hello world!\t5
1.3.2 C程序基本结构的特点\t6
1.4 C程序的开发工具\t8
1.4.1 常用的C程序开发工具\t8
1.4.2 程序的调试步骤\t10
1.4.3 在Code::Blocks环境下的程序
调试\t10
习题1\t17
实验1\t18
第2章 C语言基础知识\t19
2.1 一个简单的C程序案例\t19
2.2 常见的符号分类\t20
2.2.1 关键字\t20
2.2.2 标识符\t20
2.2.3 运算符\t21
2.2.4 分隔符\t22
2.2.5 数据\t22
2.3 C语言的数据类型\t22
2.3.1 引入数据类型的原因\t22
2.3.2 基本数据类型\t23
2.3.3 复杂数据类型\t24
2.4 C语言常用数据类型的应用\t25
2.4.1 整型数据\t25
2.4.2 浮点型数据\t32
2.4.3 字符型数据\t35
2.4.4 宏常量与const常量\t40
2.5 C语言的运算符与表达式\t42
2.5.1 表达式\t42
2.5.2 运算符\t42
2.5.3 运算符的优先级\t52
2.6 C语言数据类型的转换\t53
2.6.1 自动转换\t53
2.6.2 强制转换\t54
习题2\t54
实验2\t56
第3章 算法与C语言程序设计\t57
3.1 算法与算法描述\t57
3.1.1 算法的概念\t57
3.1.2 算法的特征\t58
3.1.3 算法的描述方法\t58
3.1.4 算法设计的一般步骤\t60
3.2 顺序结构\t62
3.3 选择结构 \t64
3.3.1 if单分支语句\t64
3.3.2 if双分支语句\t67
3.3.3 if多分支语句\t70
3.3.4 嵌套的if语句\t72
3.3.5 switch语句\t74
3.4 循环结构\t79
3.4.1 while语句\t79
3.4.2 for语句\t84
3.4.3 do while语句\t91
3.4.4 程序跳转语句\t94
3.4.5 嵌套循环及其应用\t102
习题3\t109
实验3\t113
第4章 函数\t115
4.1 函数概述\t115
4.2 函数的定义\t117
4.2.1 C语言函数的定义\t117
4.2.2 形式参数与实际参数\t118
4.2.3 函数的返回值\t119
4.3 函数的调用\t120
4.3.1 函数调用的形式\t121
4.3.2 函数调用的方式\t121
4.3.3 函数声明\t122
4.3.4 函数参数的传递方式\t123
4.4 函数的嵌套调用\t125
4.4.1 基本嵌套调用\t125
4.4.2 模块化程序设计方法\t126
4.5 函数的递归调用\t128
4.5.1 递归的概念\t128
4.5.2 递归算法的应用\t130
4.6 变量的作用域与存储类别\t135
4.6.1 变量的作用域\t135
4.6.2 变量的存储类别\t138
习题4\t142
实验4\t147
第5章 数组\t149
5.1 一维数组\t149
5.1.1 一维数组的定义和引用\t149
5.1.2 一维数组的初始化\t152
5.1.3 向函数传递一维数组\t154
5.1.4 一维数组的应用\t156
5.2 二维数组\t162
5.2.1 二维数组的定义和引用\t162
5.2.2 二维数组的初始化\t164
5.2.3 向函数传递二维数组\t166
5.2.4 二维数组的应用\t167
5.3 字符数组\t169
5.3.1 字符数组的定义与使用\t169
5.3.2 字符数组与字符串\t171
5.3.3 字符数组的输入和输出\t172
5.3.4 字符串处理函数\t173
5.3.5 字符数组的应用\t175
习题5\t178
实验5\t182
第6章 指针\t183
6.1 指针概述\t183
6.1.1 指针的概念\t183
6.1.2 初识指针变量\t185
6.2 指针变量\t186
6.2.1 指针变量的定义\t186
6.2.2 指针变量的初始化\t186
6.2.3 指针变量的引用\t188
6.3 指针与函数\t191
6.3.1 传值调用与传地址调用\t191
6.3.2 指针变量作为函数参数\t192
6.4 指针与数组\t197
6.4.1 数组元素的指针\t197
6.4.2 指针的运算\t198
6.4.3 通过指针引用数组元素\t200
6.4.4 数组作为函数参数的应用\t202
6.5 字符指针\t204
6.5.1 字符串的表示形式\t204
6.5.2 字符指针访问字符串常量\t206
6.5.3 字符指针访问字符串变量\t207
6.5.4 字符指针作为函数参数\t208
6.6 指针的高级应用\t209
6.6.1 指针数组\t209
6.6.2 内存的动态分配\t212
习题6\t214
实验6\t218
第7章 自定义数据类型\t219
7.1 定义和使用结构体变量\t219
7.1.1 什么是结构体\t219
7.1.2 结构体变量的定义\t221
7.1.3 结构体变量的初始化\t222
7.1.4 结构体变量的成员变量\t224
7.1.5 结构体变量的应用\t224
7.2 结构体数组\t225
7.2.1 结构体数组的声明\t225
7.2.2 结构体数组的初始化\t226
7.2.3 结构体数组的应用\t227
7.3 结构体指针\t228
7.3.1 指向结构体变量的指针\t229
7.3.2 指向结构体数组的指针\t230
7.3.3 结构体指针作为函数参数\t231
7.4 动态结构链表\t232
7.4.1 什么是链表\t232
7.4.2 创建简单的单链表\t234
7.4.3 单链表的插入\t238
7.4.4 单链表的删除\t241
7.5 共用体类型与枚举类型\t245
7.5.1 共用体类型的定义与特点\t245
7.5.2 共用体类型的应用\t247
7.5.3 枚举类型的定义\t248
7.5.4 枚举类型的应用\t249
习题7\t250
实验7\t255
第8章 文件\t257
8.1 文件概述\t257
8.1.1 什么是文件\t257
8.1.2 C语言中的文件\t258
8.1.3 文件缓冲区\t259
8.1.4 文件类型指针\t259
8.2 文件的打开与关闭\t260
8.2.1 文件的打开\t261
8.2.2 文件的关闭\t262
8.3 文件的读/写\t263
8.3.1 单字符读/写函数\t263
8.3.2 单字符读/写函数应用\t264
8.3.3 字符串读/写函数\t266
8.3.4 字符串读/写函数应用\t267
8.3.5 按字符块读/写函数\t269
8.3.6 按字符块读/写函数应用\t269
8.3.7 格式化读/写函数\t272
8.3.8 格式化读/写函数应用\t272
8.3.9 随机读/写函数\t273
8.3.10 随机读/写函数应用\t274
8.4 出错检测\t275
习题8\t275
实验8\t279
第9章 C语言系统开发案例\t280
9.1 系统开发的流程\t280
9.1.1 软件项目策划阶段\t281
9.1.2 需求分析阶段\t282
9.1.3 软件设计阶段\t282
9.1.4 编码阶段\t285
9.1.5 测试与验收阶段\t285
9.1.6 系统维护阶段\t286
9.2 应用实例――图书馆管理系统\t286
9.2.1 需求及功能分析\t286
9.2.2 主要模块功能分析\t287
9.2.3 数据流图与数据流字典\t287
9.3 系统主要功能的实现\t289
9.3.1 头文件与主要结构体\t290
9.3.2 主要函数功能说明\t291
9.3.3 主要功能实现\t292
9.4 系统测试与运行\t299
9.4.1 测试环境设置\t300
9.4.2 系统测试结果\t301
习题9\t302
实验9\t302
参考文献\t303