第1章 C语言概述 1
1.1 C语言的发展 1
1.2 C语言的特点 1
1.3 C程序入门 3
1.3.1 C程序入门 3
1.3.2 C程序的结构和一般形式 5
1.4 C程序的编辑、编译、连接和执行过程 7
1.4.1 编译型语言源程序的运行 7
1.4.2 用Turbo C运行C程序 8
习题 10
实验1 C语言程序初步 11
第2章 数据类型、运算符与表达式 13
2.1 C语言的语法 13
2.1.1 字符集 13
2.1.2 关键字 13
2.1.3 标识符 14
2.2 数据类型 14
2.2.1 基本数据类型 15
2.2.2 类型修饰词 15
2.2.3 其他数据类型 16
2.3 常量 16
2.3.1 数值常量 17
2.3.2 字符常量 17
2.3.3 字符串常量 19
2.3.4 符号常量 19
2.4 变量 20
2.4.1 变量定义赋值 20
2.4.2 整型变量 21
2.4.3 实型变量 22
2.4.4 字符型变量 23
2.4.5 变量初始化 24
2.5 运算符与表达式 25
2.5.1 C运算符简介 25
2.5.2 算术运算符和算术表达式 25
2.5.3 位运算符 29
2.5.4 赋值运算和赋值表达式 30
2.5.5 逗号运算符和逗号表达式 33
2.6 混合运算及类型转换 34
2.6.1 二元算术运算 35
2.6.2 赋值运算 35
2.7 枚举类型及其说明 36
2.7.1 枚举类型及变量定义 36
2.7.2 枚举类型变量可参与的操作 37
2.8 输入/输出方式 38
2.8.1 字符输入库函数getchar()和输出库函数putchar() 38
2.8.2 字符串的输入函数gets()和输出函数puts() 38
2.8.3 有格式的输入函数scanf()和输出函数printf() 39
2.9 编程风格 47
习题 48
实验2 基本输入/输出函数、运算符、表达式 51
第3章 语句和流程控制 55
3.1 C语句概述 55
3.2 基本语句 55
3.3 复合语句 56
3.4 控制语句 57
3.4.1 顺序结构 57
3.4.2 选择结构 57
3.4.3 循环结构 57
3.5 顺序结构程序设计 58
3.6 选择结构程序设计 62
3.6.1 关系运算符及其优先次序 62
3.6.2 关系表达式 63
3.6.3 逻辑运算符及其优先顺序 63
3.6.4 逻辑表达式 65
3.6.5 if语句 65
3.6.6 条件运算符 69
3.6.7 开关语句 70
3.7 循环控制 72
3.7.1 goto语句和if语句构成循环 73
3.7.2 while语句 74
3.7.3 do-while语句 75
3.7.4 for语句 77
3.7.5 循环的嵌套 81
3.7.6 几种循环的比较 82
3.7.7 break语句和continue语句 82
3.7.8 程序举例 84
3.8 程序举例 87
习题 88
实验3 语句与流程控制 91
第4章 函数 97
4.1 概述 97
4.1.1 函数的定义 99
4.1.2 函数的参数和函数的值 100
4.2 函数调用 104
4.2.1 函数调用的一般形式 104
4.2.2 对被调用函数的说明 104
4.3 函数的嵌套调用及递归调用 106
4.3.1 函数的嵌套调用 106
4.3.2 函数的递归调用 108
4.4 内部函数和外部函数 111
4.4.1 内部函数 111
4.4.2 外部函数 111
4.5 函数的应用 113
习题 114
实验4 函数 116
第5章 变量的存储类别和作用域 118
5.1 变量类别概述 118
5.2 局部变量 119
5.3 全局变量 121
5.3.1 全局变量的定义及其作用范围 121
5.3.2 全局变量的有关说明 122
5.4 寄存器变量 125
5.5 静态存储变量 126
5.5.1 局部静态存储变量 126
5.5.2 全局静态存储变量 127
5.6 动态存储变量 128
5.7 变量存储类别 129
习题 131
实验5 变量的存储类型和作用域 133
第6章 数组 136
6.1 一维数组的定义和引用 136
6.1.1 一维数组的定义 136
6.1.2 一维数组的定义说明 138
6.1.3 一维数组元素的引用 138
6.1.4 一维数组的初始化 140
6.1.5 一维数组的应用举例 141
6.2 二维数组的定义和引用 143
6.2.1 二维数组的定义 143
6.2.2 二维数组的定义说明 144
6.2.3 二维数组元素的引用 144
6.2.4 二维数组的初始化 145
6.2.5 二维数组的应用举例 145
6.3 字符数组 146
6.3.1 字符数组的定义 146
6.3.2 字符数组的初始化 146
6.3.3 字符数组、字符串及字符的关系 147
6.3.4 字符数组的输入、输出 147
6.3.5 字符串处理函数 148
6.3.6 字符数组的应用举例 152
6.4 数组综合应用举例 152
习题 156
实验6 数组 159
第7章 预处理命令 162
7.1 宏定义 162
7.1.1 不带参数的宏定义 162
7.1.2 带参数的宏定义 164
7.2 文件包含 165
7.3 条件编译 166
习题 167
实验7 预处理命令 170
第8章 指针 172
8.1 指针的概念 172
8.2 指针变量的定义和使用 173
8.2.1 指针变量的概念 174
8.2.2 指针变量的定义 175
8.2.3 指针变量的使用 175
8.3 指针与数组 177
8.3.1 指向数组的指针 177
8.3.2 通过指针引用数组元素 177
8.3.3 指向多维数组的指针 179
8.3.4 数组名用作函数参数 186
8.3.5 字符指针 193
8.3.6 指针数组 201
8.3.7 指针数组作为main函数的形参 203
8.4 指针与函数 204
8.4.1 指向函数的指针 205
8.4.2 指针类型数据作为函数参数 206
8.4.3 带参数的主函数 207
8.4.4 返回指针的函数 208
8.5 指向指针的指针 210
习题 211
实验8 指针 215
第9章 位运算、结构体和共用体 217
9.1 位运算 217
9.1.1 按位取反运算符 218
9.1.2 按位与运算符 218
9.1.3 按位或运算符 219
9.1.4 按位异或运算符 220
9.1.5 左移运算符 221
9.1.6 右移运算符 221
9.1.7 计算机中的几种码制 222
9.2 结构体 223
9.2.1 结构体的概念 223
9.2.2 结构体变量的定义 223
9.2.3 结构体变量的引用 225
9.2.4 结构体变量的初始化 226
9.2.5 结构体数组 228
9.2.6 指向结构体的指针 230
9.3 链表 231
9.3.1 链表的概述 231
9.3.2 链表的操作 232
9.4 共用体 237
9.4.1 共用体的概念 237
9.4.2 共用体变量的引用方式 238
9.4.3 共用体类型的数据特点 239
习题 240
实验9 位运算、结构体和共用体 242
第10章 文件 244
10.1 文件概述 244
10.2 文件的打开与关闭 245
10.2.1 打开文件 245
10.2.2 关闭文件 247
10.3 文件的读写 247
10.3.1 字符的输入输出函数 247
10.3.2 字符串的输入输出函数 249
10.3.3 数据块的输入输出函数 249
10.3.4 指定文件的输入输出函数 250
10.3.5 文件的定位函数 250
10.4 出错检测函数 252
10.4.1 ferror函数 252
10.4.2 clearerr函数 252
习题 252
实验10 文件 255
附录 习题参考答案 257