第一章 概述 1
1.1 C语言的发展简况 1
一、C语言的由来 1
二、C语言与UNIX操作系统 1
三、标准C、ANSI C、C++ 1
1.2 C语言的特点 2
一、优点 2
二、缺点 3
1.3 示范程序 3
1.4 常用的输入/输出函数(或宏) 5
一、格式化I/O标准函数scanf和printf 5
二、标准字符输入/输出的宏getchar和putchar 10
三、举例说明scanf、printf和getchar、putchar的使用 10
1.5 在VAX机上C源程序的编辑、编译、链接和运行 11
一、上、下机 11
二、在VAX机上编制C程序的全过程 12
三、打印源程序和结果 12
四、传统风格与现代风格 13
1.6 如何在PC机上运行一个C语言程序 14
一、磁盘的准备 14
二、具体操作 14
三、主TC屏介绍 14
四、打印源程序和结果 19
习题一 19
第二章 数据描述与基本操作 21
2.1 基本符号和标识符 21
一、基本符号 21
二、标识符 22
2.2 基本数据类型 22
一、所有变量都要显式定义其类型 22
二、C的数据类型 24
三、类型修饰符 24
2.3 常量和变量 26
一、常量 26
二、变量 30
2.4 运算符及运算表达式 31
一、算术运算符 31
二、关系运算符 32
三、逻辑运算符 32
四、位运算符 34
五、赋值运算符 35
六、增减运算符(又叫增量运算符、增1减1运算符、自加自减运算符) 36
七、条件运算符 36
八、逗号运算符及其它运算符 37
2.5 运算符的优先级、结合性和运算次序 38
一、优先级 38
二、结合性 38
三、运算次序 38
2.6 不同类型数据间的转换 39
一、算术表达式中类型转换的原则 39
二、赋值运算时类型转换的规则 40
三、强制类型转换 41
四、类型转换中应注意的问题 41
习题二 42
第三章 语句和控制流 48
3.1 语句和分程序 48
一、C语言的基本语句 48
二、表达式语句 48
三、空语句 48
四、复合语句 49
3.2 选择语句 49
一、条件语句 49
二、开关语句 52
3.3 循环语句 55
一、while语句 55
二、do—while语句 57
三、for语句 58
3.4 转移语句 60
一、限定转向语句 60
二、非限定转向语句 61
习题三 62
第四章 函数、变量的存储类和编译预处理 65
4.1 函数 65
一、函数的定义 66
二、函数的调用 68
三、嵌套调用和递归调用 69
4.2 变量的作用域及其存储类 71
一、变量的存储属性 71
二、C语言中的存储类 71
三、存储类别小结 80
4.3 编译预处理 81
一、宏定义 81
二、文件包含 85
三、条件编译 85
习题四 87
第五章 数组 92
5.1 一维数组 92
一、数组、数组元素和数组的特点 92
二、一维数组的定义 92
三、数组下标和数组元素的引用 94
四、一维数组的初始化 94
五、数组作为函数参数 95
六、程序举例 96
5.2 字符数组 100
一、字符串及其存储方法 100
二、字符数组的初始化 101
三、字符串的输入 101
四、字符串的输出 102
五、字符串运算函数 102
5.3 多维数组 105
一、多维数组的定义 105
二、多维数组的存储 105
三、多维数组的初始化 106
四、多维数组的引用 107
五、二维字符数组 108
六、二维数组程序举例 109
习题五 113
第六章 指针 115
6.1 指针的基本概念 115
一、指针 115
二、指针与地址 115
三、指针变量的说明 116
6.2 指针运算 117
一、指针可以进行赋值运算 117
二、指针可以和整数相加减 118
三、指针在一定条件下可以进行比较运算 119
四、指针可以进行增量运算 119
五、两个指针在一定条件下可以做减法运算 120
6.3 指针与数组 120
一、指针与一维数组的关系 120
二、指针数组 124
三、二维数组的指针表示法 125
6.4 指针与函数 130
一、指针作为函数参数 130
二、指针函数 133
三、函数指针 134
6.5 多级指针 137
6.6 命令行参数 141
习题六 144
第七章 结构和联合 146
7.1 结构类型的定义和结构变量的定义 146
一、结构类型数据 146
二、结构类型的定义 146
三、结构变量的定义 147
四、结构类型可以嵌套定义 148
7.2 结构变量的初始化和结构变量的引用 148
一、结构变量的初始化 148
二、结构变量的引用 149
三、结构变量的输入和输出 151
7.3 结构数组 153
一、结构数组的概念 153
二、结构数组的定义 153
三、结构数组的初始化 155
四、结构数组的引用 155
7.4 结构变量作为函数参数和结构函数 158
一、结构变量作为函数参数 158
二、结构函数 158
7.5 结构指针和使用结构指针作为函数参数 159
一、结构指针 159
二、指向结构数组的指针 160
三、使用结构指针作为函数参数 160
7.6 联合 161
一、联合类型的定义和联合变量的定义 161
二、联合变量的引用 162
三、联合与结构的本质区别 163
四、使用联合变量的注意事项 164
习题七 164
第八章 文件 166
8.1 文件概述 166
一、文件的概念 166
二、缓冲文件系统和非缓冲文件系统 167
8.2 文件的打开和关闭 168
一、指向文件类型的指针 168
二、文件的打开与关闭 168
8.3 文件的读写 170
一、输入和输出一个字符 170
二、输入和输出一个字符串 173
三、格式化的输入和输出 175
四、按“记录”的方式输入和输出 177
习题八 180
附录Ⅰ ASCII字符编码一览表 182
附录Ⅱ 关键字及其用途 184
附录Ⅲ 运算符的优先级别和结合方向 185
附录Ⅳ C库函数 187
参考书目 196