第一部分 程序设计及语言基础篇 3
第一章 C语言程序设计基础 3
1.1 计算机程序设计基础知识 3
1.1.1 计算机的诞生及特点 3
1.1.2 计算机组成的冯·诺依曼体系结构 3
1.1.3 计算机工作原理过程 4
1.1.4 程序设计语言的演变过程 8
1.2 程序设计语言系统在计算机系统环境中的层次定位 12
1.3 C语言的起源、历史、特点及其应用领域定位 12
1.3.1 C语言的起源和历史 12
1.3.2 C语言的特点 14
1.3.3 C语言的应用领域 16
1.4 C语言源程序的编辑、编译、链接与执行 16
1.5 C语言程序的基本框架 17
1.6 三种基本的C语言程序结构及其设计方法 17
1.6.1 只有主函数的C语言程序结构 17
1.6.2 利用库函数实现功能的C语言程序结构 18
1.6.3 利用自己设计的函数实现功能的C语言程序结构 19
1.7 C语言源程序的书写风格 20
1.7.1 标识符及其命名规则 20
1.7.2 C语言源程序的书写规范 21
1.8 程序设计与编码的一般过程 23
1.9 简单问题的C语言程序设计与分析实现实例 25
小结 26
习题 27
第二章 C语言中的数据类型及其基本操作 29
2.1 概述 29
2.2 数据类型 29
2.2.1 基本数据类型的存储空间长度及其取值范围 30
2.2.2 基本数据类型的内部存储格式 30
2.2.3 基本数据类型修饰符 34
2.2.4 C语言的数据类型之间的转换分析 34
2.3 常量、变量和标识符 42
2.3.1 常量 42
2.3.2 变量 46
2.4 运算符与表达式 48
2.4.1 概述 48
2.4.2 算术运算 49
2.4.3 关系运算 50
2.4.4 逻辑运算 51
2.4.5 三元条件运算 52
小结 53
习题 53
第三章 C语言的程序结构、语句分类和数据的输入输出 57
3.1 C语言的程序结构 57
3.2 C语言的语句分类 57
3.3 数据输入输出概念 59
3.4 格式化输入与输出 60
3.4.1 格式化输出函数 60
3.4.2 格式化输入函数 66
3.5 字符数据的输入输出 68
3.5.1 字符输入和输出函数 68
3.5.2 字符串输入和输出函数 69
小结 70
习题 70
第二部分 面向过程的结构化和模块化程序设计及其实现篇第四章 程序设计的算法基础 77
4.1 日常问题求解的一般过程实例分析 77
4.2 用计算机程序进行问题求解描述的基本方法 78
4.3 算法 79
4.3.1 算法的组成 80
4.3.2 算法的主要特征和性质 80
4.3.3 算法的描述方法 81
4.3.4 算法描述的C语言程序代码实现 86
4.4 问题求解的算法分析、描述与C语言程序代码实现实例 87
小结 90
习题 90
第五章 用C语言进行结构化程序设计 92
5.1 顺序结构的程序设计 92
5.2 选择结构 94
5.2.1 if语句的选择结构 94
5.2.2 条件运算符 101
5.2.3 switch语句 103
5.3 循环控制 108
5.3.1 概述 108
5.3.2 goto语句以及用goto语句构成循环 109
5.3.3 while语句 109
5.3.4 do while语句 110
5.3.5 for语句 111
5.3.6 几种循环控制结构的等价关系 113
5.3.7 循环的嵌套 113
5.4 几种常见的循环控制结构程序设计技术简介 113
5.4.1 循环程序的控制方法 113
5.4.2 应用举例 114
5.5 break语句和continue语句 118
5.5.1 break语句 118
5.5.2 continue语句 120
小结 121
习题 121
第六章 模块化程序设计与C语言函数 125
6.1 模块化程序设计基础 125
6.1.1 模块化程序设计 125
6.1.2 C语言环境对模块化程序设计技术的支持 128
6.2 函数的声明、定义和调用结构 128
6.2.1 C语言程序的组织结构 128
6.2.2 函数声明与定义 129
6.2.3 函数的调用 138
6.3 变量的存储属性 146
6.3.1 变量的存储属性和可操作属性 146
6.3.2 变量在C语言程序代码中的位置属性 147
6.3.3 变量的生成周期及有效作用域 147
6.3.4 C语言中的域 158
6.4 模块化程序设计实例 158
小结 160
习题 161
第七章 预处理命令 165
7.1 宏定义 165
7.1.1 无参宏定义 165
7.1.2 带参宏定义 168
7.2 文件包含 174
7.3 条件编译 175
小结 177
习题 178
第三部分 程序设计技术提高篇 183
第八章 数组 183
8.1 一维数组 183
8.1.1 一维数组的声明及其初始化 183
8.1.2 一维数组的引用 187
8.1.3 一维数组的应用 192
8.2 二维数组 207
8.2.1 二维数组的声明 208
8.2.2 二维数组的初始化 208
8.2.3 二维数组的引用 211
8.2.4 二维数组的应用 213
8.3 多维数组及其他类型的数组 225
小结 225
习题 226
第九章 指针 230
9.1 指针概述 230
9.1.1 指针及其本质特征 231
9.1.2 指针、变量和指针变量 231
9.1.3 指针型表达式及其引用 234
9.1.4 多级指针问题 236
9.2 指针的应用 237
9.2.1 指针与数组 237
9.2.2 字符数组与指针 247
9.2.3 指针数组 251
9.2.4 指针与函数 256
小结 267
习题 268
第十章 用户自定义数据类型 271
10.1 结构体数据类型概述 271
10.2 结构体数据类型的定义及其变量的声明和引用 271
10.2.1 结构体数据类型的定义 271
10.2.2 结构体变量的声明 273
10.2.3 结构体变量的初始化 276
10.2.4 结构体变量及其成员引用 278
10.3 结构体变量的应用 283
10.3.1 结构体数组 283
10.3.2 结构体变量作为函数参数及函数返回值 292
10.3.3 结构体变量指针 295
10.3.4 动态存储分配技术及其应用 303
10.4 共用体数据类型定义与共用体变量的声明与引用 321
10.4.1 共用体数据类型及其变量声明 321
10.4.2 共用体变量的基本性质 323
10.4.3 共用体变量的引用及声明初始化 324
10.4.4 共用体变量的应用 331
10.5 枚举数据类型 336
10.6 为数据类型定义新的类型名 339
小结 340
习题 342
第十一章 位运算及其应用 344
11.1 位运算操作符及其使用方法 344
11.1.1 位运算符的基本运算规则 344
11.1.2 位运算符应用基础 346
11.2 位运算应用实例 347
11.3 位段 354
11.3.1 位段的概念和定义方法 354
11.3.2 位段的引用方法 357
11.3.3 位段的应用 358
小结 360
习题 361
第十二章 文件 362
12.1 文件概述 362
12.1.1 文件的分类 362
12.1.2 缓冲文件系统和非缓冲文件系统 362
12.2 文件打开与关闭 365
12.2.1 文件的打开 365
12.2.2 文件的关闭 366
12.3 文件的顺序读写模式 367
12.3.1 fgetc()和fputc() 367
12.3.2 fgets()和fputs() 369
12.3.3 fscanf()和fprintf() 370
12.3.4 fread()和fwrite() 373
12.4 文件的随机读写模式 375
12.4.1 文件当前读写位置的指定方法 375
12.4.2 文件的随机读写实例 376
12.5 非缓冲文件的读写方法 380
小结 381
习题 382
全书附录与参考文献 385
附录Ⅰ ASCⅡ码字符编码表 385
附录Ⅱ C语言的保留关键字 387
附录Ⅲ ANSI标准规定的数据类型典型宽度及其最小取值范围 388
附录Ⅳ 运算符优先级别和结合方向 389
附录Ⅴ 常用函数库的库函数介绍 391
一.数学函数 391
二.字符函数 392
三.字符串函数 393
四.标准输入输出库函数 394
五.时间日期函数 395
六.动态分配函数 395
七.工具函数 395
八.控制台输入输出函数 396
九.图形函数 397
参考书目 399