第一章 引言 1
1.1 学习编程有什么用 1
1.2 C语言的发展历程 1
1.3 C语言的特点 2
1.4 如何学习C语言 3
1.5 Turbo C 2.0简介 3
1.6 Visual C ++6.0简介 9
习题一 14
第二章 顺序结构程序设计 16
2.1 C源程序结构 16
2.2 最简单的C程序 17
2.3 整型数据 19
2.3.1 整型常量表示形式与定义 19
2.3.2 整型变量与整型常量的类型 19
2.3.3 整型变量定义 20
2.3.4 整型变量赋值 21
2.3.5 整型数据输入 24
2.3.6 整型数据输出 26
2.3.7 整型数据的运算 28
2.3.8 整型数据编程 30
2.4 实型数据 35
2.4.1 实型常量 36
2.4.2 实型变量 36
2.4.3 实型变量赋值 37
2.4.4 实型数据输入 37
2.4.5 实型数据输出 39
2.4.6 实型数据编程 40
2.5 字符型数据 43
2.5.1 字符常量 44
2.5.2 字符串常量 45
2.5.3 字符变量定义 47
2.5.4 字符变量赋值 47
2.5.5 字符型数据输入 48
2.5.6 字符型数据输出 48
2.5.7 字符型数据编程 49
2.6 各种类型数据之间的混合运算 51
2.6.1 自动类型转换 51
2.6.2 强制类型转换 53
2.7 C语言的运算符、表达式和语句 54
2.8 逗号运算符和逗号表达式 55
习题二 56
第三章 选择结构程序设计 61
3.1 关系运算符和关系表达式 61
3.2 逻辑运算符和逻辑表达式 62
3.3 if语句 65
3.3.1 最基本的if语句 65
3.3.2 if-else语句 67
3.3.3 if-else if语句 69
3.3.4 if语句的嵌套 74
3.4 switch语句 79
3.5 条件运算符和条件表达式 86
3.6 编程实战 88
习题三 94
第四章 循环结构程序设计 98
4.1 while语句 98
4.2 do-while语句 104
4.3 for语句 109
4.4 goto语句 113
4.5 循环嵌套 114
4.6 break语句 115
4.7 continue语句 117
4.8 编程实战 118
习题四 125
第五章 数组 130
5.1 一维数组的定义和应用 130
5.1.1 一维数组的定义 131
5.1.2 一维数组元素赋值 131
5.2 二维数组的定义和应用 138
5.2.1 二维数组的定义 138
5.2.2 二维数组元素赋值 138
5.3 字符数组的定义和应用 143
5.3.1 字符数组的定义及初始化 143
5.3.2 字符数组的输入和输出 145
5.3.3 字符串处理函数 149
5.4 编程实战 155
习题五 161
第六章 函数 168
6.1 函数的分类和定义 169
6.1.1 函数的分类 169
6.1.2 函数的定义 170
6.2 函数的返回值和参数 172
6.2.1 函数的返回值 172
6.2.2 函数的参数 174
6.2.3 参数的传递方式 180
6.3 嵌套调用 183
6.3.1 一般的嵌套调用 184
6.3.2 递归调用 187
6.4 变量的作用域 190
6.4.1 变量的作用域 190
6.4.2 变量的存储类别 198
6.5 函数的作用域 202
6.5.1 外部函数 202
6.5.2 内部函数 203
6.6 编程实战 203
习题六 208
第七章 指针 217
7.1 变量与指针 217
7.1.1 地址与指针 217
7.1.2 指向变量的指针变量 218
7.1.3 指针变量作函数参数 223
7.2 数组与指针 226
7.2.1 指针与一维数组的联系 226
7.2.2 指针与二维数组的联系 230
7.2.3 指向数组的指针作函数参数 234
7.3 字符串与指针 238
7.3.1 字符指针变量的定义与初始化 238
7.3.2 字符指针作函数参数 242
7.4 函数与指针 245
7.4.1 指向函数的指针 245
7.4.2 返回指针的函数 246
7.5 指针数组和多级指针 248
7.5.1 指针数组 248
7.5.2 多级指针 250
7.5.3 main函数的形参 252
7.6 编程实战 253
7.7 指针小结 258
习题七 258
第八章 结构体与共用体 267
8.1 结构体概述 267
8.1.1 结构体类型的定义 267
8.1.2 结构体变量的定义 269
8.1.3 结构体变量的引用 269
8.1.4 结构体变量的赋值和初始化 270
8.2 结构体数组 270
8.3 指向结构体的指针 272
8.3.1 指向结构体的指针变量的定义 272
8.3.2 利用结构体指针变量引用成员 273
8.3.3 用结构体类型作函数参数 274
8.4 用结构体处理链表 275
8.4.1 链表概述 275
8.4.2 链表的建立与输出 276
8.4.3 链表的插入 278
8.4.4 链表的删除 279
8.4.5 链表的综合操作 280
8.5 共用体 283
8.5.1 共用体类型及变量的定义 283
8.5.2 共用体变量的引用 284
8.6 枚举类型 286
8.7 用typedef定义类型别名 287
习题八 288
第九章 预处理命令、位运算与文件 290
9.1 预处理命令 290
9.1.1 宏定义 290
9.1.2 文件包含 294
9.2 位运算 295
9.2.1 位运算符 295
9.2.2 位域 299
9.3 文件 302
9.3.1 文件和文件指针 302
9.3.2 文件的打开与关闭 303
9.3.3 文件的读写 305
9.3.4 文件的定位 309
9.3.5 文件的检测 311
习题九 311
综合训练 317
附录一 运算符及其优先级顺序表 326
附录二 标准ASCII码表 328
附录三 C语言常用库函数一览表 329
习题答案 336
参考文献 340