第1章 C语言程序设计入门 1
1.1 计算机基础 1
1.1.1 计算机系统组成 1
1.1.2 计算机系统工作原理 2
1.1.3 计算机语言 2
1.1.4 数制及其转换 3
1.2 C语言概述 6
1.2.1 C语言的发展 6
1.2.2 C语言的特性 7
1.2.3 C语言程序的基本结构 7
1.2.4 C语言程序的编译和运行 12
1.3 Visual studio使用简介 13
1.3.1 创建新项目 13
1.3.2 新建C语言源文件 15
1.3.3 输入代码 15
1.3.4 配置编译输出项 16
1.3.5 编译链接 17
1.3.6 运行程序 17
1.3.7 Visual Studio的编译器和链接器 18
1.4 小结 18
习题 19
第2章 数据类型、运算符和表达式 21
2.1 字符集、标识符与关键字 21
2.1.1 字符集 21
2.1.2 标识符 21
2.1.3 关键字 22
2.2 C语言数据类型概述 22
2.3 变量与常量 23
2.3.1 常量 23
2.3.2 变量 24
2.4 基本数据类型 26
2.4.1 整数类型 26
2.4.2 浮点数类型 30
2.4.3 字符类型 32
2.5 运算符和表达式 34
2.5.1 运算符和表达式概述 34
2.5.2 运算符的优先级与结合性 35
2.5.3 算术运算符 35
2.5.4 赋值运算符 37
2.5.5 逗号运算符 39
2.5.6 不同类型数值型数据间的混合运算 40
2.6 小结 42
习题 42
第3章 顺序结构程序设计 44
3.1 结构化程序设计简介 44
3.2 算法及其表示 45
3.2.1 算法 45
3.2.2 算法的表示 46
3.3 C语言语句概述 47
3.4 输入/输出、流和缓冲区 48
3.4.1 输入/输出 48
3.4.2 流 49
3.4.3 缓冲区 49
3.5 数据的输入与输出 50
3.5.1 字符输出putchar() 50
3.5.2 字符输入getchar() 51
3.5.3 格式化输出printf() 53
3.5.4 格式化输入scanf() 56
3.6 综合示例及分析 60
3.7 小结 64
习题 64
第4章 选择结构程序设计 67
4.1 选择结构与条件判断 67
4.2 关系运算符与关系表达式 67
4.2.1 关系运算符及其优先次序 67
4.2.2 关系表达式 68
4.3 逻辑运算符与逻辑表达式 69
4.3.1 逻辑运算符 69
4.3.2 逻辑表达式 70
4.4 条件运算符与条件表达式 71
4.5 用if语句实现选择结构 72
4.5.1 单分支if语句 72
4.5.2 双分支if语句 74
4.5.3 多分支if语句 77
4.6 if选择结构的嵌套 81
4.7 用switch语句实现多分支选择结构 83
4.8 综合示例及分析 88
4.9 小结 92
习题 92
第5章 循环结构程序设计 97
5.1 goto语句以及用goto语句构成的循环 97
5.2 while循环语句 98
5.2.1 while循环语句定义 98
5.2.2 while循环应用示例 99
5.3 do...while循环语句 100
5.3.1 do...while循环语句定义 100
5.3.2 do...while循环应用示例 101
5.3.3 while和do...while循环比较 102
5.4 for循环语句 103
5.4.1 for语句定义 103
5.4.2 for语句注意事项 104
5.4.3 for循环应用示例 106
5.5 循环嵌套 110
5.6 几种循环的比较 112
5.7 循环状态改变语句 112
5.7.1 break语句 112
5.7.2 continue语句 114
5.8 综合示例及分析 115
5.9 小结 123
习题 123
第6章 数组 128
6.1 一维数组 128
6.1.1 一维数组的定义 128
6.1.2 一维数组元素的引用 129
6.1.3 一维数组的初始化 130
6.1.4 一维数组应用示例 131
6.2 二维数组 136
6.2.1 二维数组的定义 136
6.2.2 二维数组元素的引用 137
6.2.3 二维数组的初始化 138
6.2.4 二维数组应用示例 140
6.3 字符数组 144
6.3.1 字符数组的定义 144
6.3.2 字符数组的初始化 144
6.3.3 字符数组的引用 145
6.3.4 字符串与字符串结束标志 146
6.3.5 字符数组的输入和输出 147
6.3.6 字符串处理函数 150
6.3.7 字符数组及字符串示例 153
6.4 综合示例及分析 154
6.5 小结 162
习题 162
第7章 函数 165
7.1 函数概述 165
7.2 函数的定义 167
7.2.1 函数的定义形式 167
7.2.2 函数的参数 170
7.2.3 函数的返回值 172
7.2.4 函数声明 173
7.3 函数的调用 174
7.3.1 函数调用的方式 174
7.3.2 函数间的数据传递 175
7.3.3 函数的嵌套调用 181
7.3.4 函数的递归调用 182
7.4 变量的存储属性 184
7.4.1 局部变量和全局变量 184
7.4.2 变量存储方式和生存期 187
7.5 其他函数 192
7.5.1 main()函数 192
7.5.2 库函数 195
7.5.3 内部函数和外部函数 195
7.6 综合示例及分析 196
7.7 小结 200
习题 200
第8章 指针 204
8.1 指针与指针变量 204
8.1.1 指针的概念 204
8.1.2 指针变量的概念 205
8.1.3 指针的引用和运算 205
8.1.4 指针变量的定义和赋值 206
8.1.5 指针变量的引用 208
8.2 指针与函数 208
8.2.1 指针作函数的参数 209
8.2.2 函数返回指针 211
8.2.3 指向函数的指针 211
8.3 指针与数组 213
8.3.1 通过指针引用一维数组中的元素 213
8.3.2 指针基本运算 215
8.3.3 通过指针引用二维数组中的元素 218
8.4 指针与字符串 220
8.4.1 字符数组与字符指针 220
8.4.2 常见字符串操作 220
8.5 指针数组 224
8.5.1 指针数组与数组指针 224
8.5.2 main()函数的参数 227
8.6 多级指针 229
8.7 综合示例及分析 230
8.8 小结 235
习题 236
第9章 结构体 241
9.1 结构体类型定义 241
9.2 结构体类型变量定义 242
9.3 结构体成员的引用 244
9.4 结构体变量的赋值和初始化 244
9.5 结构体数组 246
9.6 指向结构体变量的指针变量 249
9.6.1 指向结构变量的指针 249
9.6.2 指向结构数组元素的指针 251
9.6.3 结构指针变量作函数参数 252
9.7 用结构体指针处理链表 254
9.7.1 动态存储分配 254
9.7.2 链表 255
9.8 综合示例及分析 263
9.9 小结 273
习题 273
第10章 共用体与枚举 277
10.1 共用体 277
10.1.1 共用体类型 277
10.1.2 共用体变量的定义 278
10.1.3 共用体变量的引用 279
10.1.4 共用体变量的赋值和使用 279
10.2 枚举类型 281
10.2.1 枚举类型的定义 281
10.2.2 枚举变量的定义 282
10.2.3 枚举变量的赋值与使用 282
10.3 typedef定义新的类型标识符 285
10.4 小结 287
习题 288
第11章 预处理功能 291
11.1 宏定义 291
11.1.1 不带参数的宏 291
11.1.2 带参数的宏 294
11.2 文件包含 298
11.3 条件编译 298
11.4 小结 301
习题 301
第12章 文件 304
12.1 文件概述 304
12.1.1 文件的基本概念 304
12.1.2 文件的分类 304
12.1.3 文件缓冲区 305
12.1.4 文件类型指针 305
12.2 文件打开与关闭 306
12.2.1 文件打开函数 306
12.2.2 文件关闭函数 308
12.3 文件的读写 309
12.3.1 文件写函数 309
12.3.2 文件读函数 317
12.4 文件的随机读写 322
12.4.1 rewind()函数 322
12.4.2 fseek()函数 323
12.5 文件检测函数 325
12.6 综合示例及分析 325
12.7 小结 329
习题 329
第13章 位运算 332
13.1 位运算符和位运算 332
13.1.1 位运算符 332
13.1.2 按位与运算 333
13.1.3 按位或运算 333
13.1.4 按位异或运算 333
13.1.5 按位求反运算 334
13.1.6 左移运算 334
13.1.7 右移运算 335
13.2 位域结构 336
13.2.1 位域的概念 336
13.2.2 位域结构和位域变量的说明 336
13.2.3 位域的使用 337
13.3 综合示例及分析 338
13.4 小结 340
习题 340
附录 343
附录1 C语言的常用关键字 343
附录2 基本ASCII码对照表 344
附录3 C语言运算符的优先级与结合性 346
参考文献 348