目录 3
第1篇 基础篇 3
第1章 C语言概论 3
1.1 C语言的简单历史 3
1.2 结构化程序设计 4
1.2.1 算法和程序 4
1.2.2 结构化程序设计的思想和方法 4
1.3 编写一个简单的C语言程序 6
1.3.1 程序设计的一般方法 6
1.3.2 C语言程序的一般组成 8
1.3.4 书写程序时应遵循的规则 9
1.3.3 程序的质量 9
1.3.5 在Turbo C下执行一个C语言程序的基本步骤 11
1.3.6 学好C语言的一些建议 12
1.4 小结 12
习题 12
实验与实训 13
第2章 C语言基本数据类型和运算 14
2.1 C语言的基本数据类型 14
2.1.1 C语言的描述符 14
2.1.2 C语言的基本数据类型 17
2.2 运算符和表达式 26
2.2.1 基本运算符和表达式 26
2.2.2 数据类型间的转换规则 33
2.3.1 标准输出语句及其说明 35
2.3 标准输入/输出语句 35
2.3.2 标准输入语句及其说明 38
2.4 常见错误分析 40
2.4.1 数据类型和变量说明中的错误分析 41
2.4.2 标准输入/输出语句使用中的错误分析 43
2.5 小结 44
习题 45
实验与实训 46
第3章 程序流程的控制 49
3.1 概述 49
3.2 控制语句 50
3.2.1 条件语句 50
3.2.2 例题与分析 54
3.3 开关语句 61
3.4 循环语句 64
3.4.1 while语句 64
3.4.2 do-while语句 66
3.4.3 for语句 67
3.4.4 break、continue和goto语句 70
3.4.5 程序举例 71
3.5 常见错误分析 75
3.6 小结 78
习题 79
实验与实训 83
第4章 函数 85
4.1 函数的定义 85
4.1.1 函数使用的意义和分类 85
4.1.2 函数定义形式 86
4.2 函数的调用 87
4.2.1 函数调用的形式 87
4.2.2 函数调用的方式 88
4.2.3 函数的嵌套调用 90
4.2.4 函数的递归调用 91
4.3 函数的参数 93
4.3.1 函数的实参和形参 93
4.3.2 函数的返回值 95
4.3.3 例题与分析 96
4.4 常见错误分析 96
4.4.1 函数定义中的错误与分析 96
4.4.2 函数设计与使用中的错误与分析 98
习题 100
4.5 小结 100
实验与实训 102
第5章 数组和指针 104
5.1 一维数组 104
5.1.1 一维数组的定义 104
5.1.2 一维数组的初始化 106
5.1.3 一维数组的使用 107
5.1.4 一维数组作为函数参数 109
5.2 二维数组 112
5.2.1 二维数组的定义 112
5.2.2 二维数组的初始化 113
5.2.3 二维数组的使用 114
5.2.4 二维数组作为函数参数 116
5.3.1 字符数组的定义和初始化 119
5.3 字符数组 119
5.3.2 字符数组的输入和输出 120
5.3.3 字符串处理函数 121
5.3.4 字符串处理函数的应用 124
5.4 指针 125
5.4.1 指针及指针变量的定义 125
5.4.2 指针的简单用法 126
5.5 指针和数组 129
5.5.1 指针与数组的关系 129
5.5.2 指针数组 133
5.6 指针和函数 134
5.6.1 指向变量的指针作为函数参数 134
5.6.2 指向数组的指针作为函数参数 137
5.6.3 例题与分析 140
5.7 动态分配空间 142
5.8 常见错误分析 147
5.8.1 数组定义中的错误分析 147
5.8.2 数组赋值中的错误分析 148
5.8.3 数组使用中的错误分析 151
5.9 小结 152
习题 154
实验与实训 155
第6章 结构体和联合 157
6.1 结构 157
6.1.1 结构的意义和定义 157
6.1.2 结构体的简单使用 161
6.2.1 联合的意义和定义 171
6.2 联合 171
6.2.2 联合的简单使用 173
6.3 常见错误分析 174
6.3.1 结构和联合定义中的错误与分析 174
6.3.2 结构使用中的错误与分析 175
6.3.3 联合使用中的错误与分析 176
6.4 小结 177
习题 177
实验与实训 178
第7章 各种存储类的区别 179
7.1 概述 179
7.2.2 作用域和生存期 180
7.2.1 定义方式 180
7.2 自动变量 180
7.2.3 初始化 182
7.3 寄存器变量 182
7.4 外部变量 183
7.4.1 定义方式 183
7.4.2 作用域和生存期 184
7.4.3 初始化 186
7.5 静态变量 186
7.5.1 内部静态变量 186
7.5.2 外部静态变量 188
7.6 内部函数和外部函数 189
7.7 运行一个多文件的程序 189
7.8 小结 191
习题 192
实验与实训 194
第8章 预处理 196
8.1 概述 196
8.2 宏定义 196
8.2.1 无参数宏 197
8.2.2 带参数宏 198
8.3 文件包含 201
8.4 条件编译 202
8.5 运行一个多文件的程序 204
8.6 常见错误分析 206
8.7 小结 207
习题 207
实验与实训 209
第9章 文件 212
9.1 概述 212
9.1.1 文件的概念和分类 212
9.1.2 缓冲文件系统和非缓冲文件系统 213
9.2 缓冲文件系统的文件操作 214
9.2.1 文件打开和关闭 214
9.2.2 文件的读/写 217
9.2.3 文件的定位 221
9.2.4 文件的检测 225
9.3 非缓冲文件系统的文件操作 226
9.4 常见错误分析 228
9.5 小结 229
习题 230
实验与实训 231
第10章 综合应用实例——学生简易选课管理系统 232
10.1 系统功能分析 232
10.1.1 总体功能分析 232
10.1.2 模块功能细分 233
10.2 主要数据类型定义 235
10.3 主要函数说明 237
10.4 主要源代码 240
10.5 运行实例说明 265
10.6 小结 270
实验与实训 270
11.2 图形函数 275
11.1 概述 275
第11章 图形处理 275
第2篇 应用篇 275
第12章 C语言集成开发环境介绍 294
12.1 Turbo C简介 294
12.1.1 Turbo C 2.0的安装 295
12.1.2 TurboC2.0的运行 296
12.1.3 Turbo C 2.0主菜单 296
12.1.4 Turbo C 2.0的配置文件 301
12.2 Microsoft VisualC++简介 302
12.2.1 VisualC++简介 302
12.2.2 Developer Studio编辑器 303
12.2.3 项目工作区 304
12.2.4 创建工程 306
12.2.5 编写一个窗口程序 307
12.2.6 MSDN 313
12.4 KEILC51简介 314
12.4.1 uVision2集成开发环境 314
12.3 GCC简介 314
12.4.2 编辑器和调试器 315
12.4.3 C51编译器 316
第13章 C语言网络编程 317
13.1 网络协议TCP/IP简介 317
13.1.1 计算机网络与TCP/IP层次模型 317
13.1.2 TCP/IP网络协议 318
13.1.3 客户机/服务器模式 319
13.2 TCP/IP通信的基本概念 320
13.2.1 网间进程通信 320
13.2.2 TCP/IP 中的几个概念 320
13.3.1 套接字 321
13.3 套接字(socket)接口简介 321
13.3.2 基本套接字系统调用 323
13.4 socket编程 327
13.4.1 典型套接字调用过程举例 327
13.4.2 一个通用的实例程序 332
13.4.3 简单服务器程序示例 341
13.4.4 简单客户程序示例 342
附录A ASCII码表 345
附录B C语言常用函数 346
附录C 运算符的优先级和结合性 350
附录D Turbo C使用指南 352
附录E Turbo C(V2.0)编译错误信息 361
参考文献 364