第1章 C语言概述 1
1.1 C语言的发展与特点 2
1.1.1 C语言的发展 2
1.1.2 C语言的特点 2
1.2 C语言程序的结构和语法规则 3
1.2.1C语言程序的基本结构 3
1.2.2 C语言函数的一般结构 6
1.2.3 C语言函数的语法规则 7
1.3 C程序编译和开发过程 8
1.3.1 C程序编译过程 8
1.3.2 C程序开发过程 8
1.4小结 9
练习题1 9
上机实验1 10
第2章 数据类型及其运算 12
2.1标识符 13
2.2 C语言的数据类型 14
2.3常量 16
2.3.1整型、实型及符号常量 16
2.3.2字符型常量 17
2.4变量 19
2.4.1变量的概念 20
2.4.2变量的定义与初始化 20
2.5运算符与表达式 21
2.5.1 C运算符概述 21
2.5.2算术运算符与算术表达式 22
2.5.3表达式中数据间的混合运算与类型转换 25
2.5.4赋值运算符与赋值表达式 28
2.5.5条件运算符和条件表达式 30
2.5.6逗号运算符和逗号表达式 31
2.6小结 31
练习题2 32
上机实验2 35
第3章 顺序结构程序设计 36
3.1程序的三种基本控制结构 37
3.2顺序执行语句 38
3.3格式化输出函数printf() 40
3.3.1 printf()函数的一般格式 40
3.3.2格式指示符 40
3.3.3使用说明 42
3.4.1 scanf()函数的一般格式 43
3.4格式化输入函数scanf() 43
3.4.2格式指示符 44
3.4.3使用说明 45
3.5单个字符的输入/输出函数 48
3.6小结 49
练习题3 49
上机实验3 55
第4章 选择结构程序设计 56
4.1关系运算及其表达式 57
4.1.1关系运算符及其优先次序 57
4.1.2关系表达式 57
4.2逻辑运算及其表达式 58
4.2.1逻辑运算及其优先次序 58
4.2.2逻辑表达式 59
4.3.2双分支if语句 60
4.3.1单分支if语句 60
4.3 if语句 60
4.3.3多分支if语句 63
4.4 switch语句 64
4.5小结 68
练习题4 69
上机实验4 74
第5章 循环结构程序设计 75
5.1 while语句 76
5.2 do-while循环语句 78
5.3 for语句 81
5.4 break和continue语句 83
5.5循环结构的嵌套 89
5.6 goto语句 91
5.7.1穷举法 92
5.7循环结构程序设计应用 92
5.7.2迭代 96
5.8 小结 97
练习题5 98
上机实验5 104
第6章 数组 105
6.1一维数组 106
6.1.1一维数组的定义 106
6.1.2一维数组元素的引用 106
6.1.3一维数组的初始化 106
6.1.4一维数组的应用 108
6.2二维数组 116
6.2.1二维数组的定义 116
6.2.3二维数组的初始化 117
6.2.2二维数组元素的引用 117
6.3.1字符数组 120
6.3字符数组和字符串数组 120
6.3.2字符串数组 126
6.4小结 128
练习题6 129
上机实验6 135
第7章 函数 136
7.1函数的定义与调用 137
7.1.1函数定义 137
7.1.2函数调用 138
7.1.3函数的返回值与函数类型 140
7.1.4被调函数声明 142
7.1.5函数应用举例 143
7.2.2内部函数 149
7.2外部函数和内部函数 149
7.2.1外部函数 149
7.3内部变量和外部变量 151
7.3.1内部变量 151
7.3.2外部变量 152
7.4变量的存储类型 153
7.4.1内部变量的存储类型 154
7.4.2外部变量的存储类型 156
7.5函数的数据传递 157
7.5.1传值调用 157
7.5.2传址调用 159
7.5.3外部变量传递数据 160
7.6.2数组名作为函数参数 161
7.6数组作为函数参数 161
7.6.1数组元素作为函数参数 161
7.7递归函数 164
7.7.1递归模型 164
7.7.2递归的执行过程 164
7.8小结 167
练习题7 169
上机实验7 177
第8章 指针 178
8.1指针和指针变量 179
8.2指针变量的定义及其运算 180
8.2.1指针变量的定义 180
8.2.2指针运算符 181
8.2.3指针变量的初始化 183
8.2.4指针变量的运算 184
8.3指针变量和数组 187
8.3.1指针变量与一维数组 187
8.3.2指向多维数组元素和指向分数组的指针 192
8.4字符串指针变量和字符串 198
8.4.1字符串的表示和引用 198
8.5指针数组 202
8.6多级指针变量 205
8.7指针与函数 207
8.7.1指针型函数 207
8.7.2指向函数的指针变量 209
8.8命令行参数 212
8.9小结 213
练习题8 215
上机实验8 224
第9章 编译预处理 225
9.1宏定义 226
9.1.1无参宏定义 226
9.1.2带参宏定义 228
9.2条件编译 230
9.3文件包含 233
9.4小结 234
练习题9 235
上机实验9 238
第10章 结构体和共用体 239
10.1结构体类型声明和结构体变量定义 240
10.1.1结构体类型声明 240
10.1.2结构体变量的定义 241
10.1.3结构体变量的引用和初始化 242
10.1.4结构体变量作为函数参数 244
10.2结构体数组 245
10.2.1结构体数组的定义 245
10.2.2结构体数组的引用 246
10.2.3结构体数组的初始化 246
10.3结构体指针变量 248
10.3.1结构体指针变量定义 248
10.3.2结构体数组指针 249
10.3.3结构体指针变量作为函数参数 250
10.3.4结构体数组作为函数参数 251
10.4结构体的应用:链表 253
10.4.1 C语言动态分配函数 253
10.4.2单链表及其基本运算的实现 254
10.5.1共用体类型的定义 260
10.5共用体 260
10.5.2共用体变量的定义 261
10.5.3共用体变量的引用和初始化 262
10.6枚举类型 266
10.6.1枚举类型的声明和变量定义 266
10.6.2有关枚举类型数据的操作 268
10.7用户定义类型 270
10.8小结 272
练习题10 273
上机实验10 282
第11章 位运算 283
11.1.1位运算符 284
11.1.2位运算符的运算功能 284
11.1位运算符和位运算 284
11.2位段结构 288
11.3 小结 291
练习题11 291
上机实验11 293
第12章 文件 294
12.1文件概述 295
12.1.1文件的分类 295
12.1.2文件的操作流程 296
12.1.3文件缓冲区 297
12.1.4流和文件指针 297
12.2文件的打开和关闭 298
12.2.1文件的打开 298
12.3文件的顺序读写 300
12.3.1文件的字符读/写函数 300
12.2.2文件的关闭 300
12.3.2文件的字符串读/写函数 304
12.3.3文件格式化读写 306
12.4文件的随机读写 308
12.4.1文件定位操作 308
12.4.2文件的随机读写 310
12.5文件检测函数 315
12.6小结 316
练习题12 317
上机实验12 324
第13章 软件开发过程 325
13.1.1软件计划 326
13.1.2需求分析 326
13.1软件开发步骤 326
13.1.3软件概要设计 327
13.1.4软件详细设计 333
13.1.5编码 334
13.1.6测试 335
13.2用C语言开发软件实例 335
13.2.1系统功能 335
13.2.2系统分析 336
13.2.3系统设计 336
13.2.4编码 338
13.2.5测试 359
上机实验13 360
附录A C语言运算符及优先级 361
附录B 部分字符与ASCII代码对照表 362
参考文献 363