第1章 C语言概述 1
1.1 C语言的发展与特点 1
1.1.1 C语言的发展 1
1.1.2 C语言的特点 1
1.2 C语言程序的结构和语法规则 2
1.2.1 C语言程序的基本结构 2
1.2.2 C语言函数的一般结构 5
1.2.3 C语言函数的语法规则 6
1.3 C程序编译和开发过程 6
1.3.1 C程序编译过程 6
1.3.2 C程序开发过程 7
1.4 小结 8
1.5 练习题1 8
1.5.1 单项选择题 8
1.5.2 填空题 9
上机实验1 9
实验内容 9
第2章 数据类型及其运算 11
2.1 标识符 11
2.2 C语言的数据类型 12
2.3 常量 13
2.3.1 整型、实型及符号常量 14
2.3.2 字符型常量 15
2.4 变量 17
2.4.1 变量的概念 17
2.4.2 变量的定义与初始化 17
2.5 运算符与表达式 18
2.5.1 C运算符概述 18
2.5.2 算术运算符与算术表达式 19
2.5.3 表达式中数据间的混合运算与类型转换 22
2.5.4 赋值运算符与赋值表达式 24
2.5.5 条件运算符和条件表达式 26
2.5.6 逗号运算符和逗号表达式 27
2.6 小结 27
2.7 练习题2 29
2.7.1 单项选择题 29
2.7.2 填空题 30
上机实验2 32
实验内容 32
第3章 顺序结构程序设计 33
3.1 程序的3种基本控制结构 33
3.2 顺序执行语句 35
3.3 格式化输出函数printf() 36
3.3.1 printf()函数的一般格式 36
3.3.2 格式指示符 37
3.3.3 使用说明 38
3.4 格式化输入函数scanf() 39
3.4.1 scanf()函数的一般格式 39
3.4.2 格式指示符 40
3.4.3 使用说明 41
3.5 单个字符的输入/输出函数 43
3.6 小结 44
3.7 练习题3 45
3.7.1 单项选择题 45
3.7.2 填空题 48
3.7.3 编程题 50
上机实验3 50
实验内容 50
编程要求 50
第4章 选择结构程序设计 51
4.1 关系运算及其表达式 51
4.1.1 关系运算符及其优先次序 51
4.1.2 关系表达式 52
4.2 逻辑运算及其表达式 52
4.2.1 逻辑运算及其优先次序 52
4.2.2 逻辑表达式 53
4.3 if语句 54
4.3.1 单分支if语句 54
4.3.2 双分支if语句 55
4.3.3 多分支if语句 57
4.4 switch语句 59
4.5 小结 63
4.6 练习题4 64
4.6.1 单项选择题 64
4.6.2 填空题 66
4.6.3 编程题 67
上机实验4 68
实验内容 68
编程要求 68
第5章 循环结构程序设计 69
5.1 while语句 69
5.2 do-while循环语句 71
5.3 for语句 74
5.4 break和continue语句 76
5.5 循环结构的嵌套 81
5.6 goto语句 84
5.7 循环结构程序设计应用 85
5.7.1 穷举法 85
5.7.2 迭代 89
5.8 小结 91
5.9 练习题5 92
5.9.1 单项选择题 92
5.9.2 填空题 94
5.9.3 编程题 96
上机实验5 97
实验内容 97
编程要求 97
第6章 数组 98
6.1 一维数组 98
6.1.1 一维数组的定义 98
6.1.2 一维数组元素的引用 99
6.1.3 一维数组的初始化 99
6.1.4 一维数组的应用 101
6.2 二维数组 108
6.2.1 二维数组的定义 108
6.2.2 二维数组元素的引用 109
6.2.3 二维数组的初始化 109
6.3 字符数组和字符串数组 112
6.3.1 字符数组 112
6.3.2 字符串数组 118
6.4 小结 120
6.5 练习题6 121
6.5.1 单项选择题 121
6.5.2 填空题 124
6.5.3 编程题 127
上机实验6 127
实验内容 127
编程要求 127
第7章 函数 128
7.1 函数的定义与调用 128
7.1.1 函数定义 128
7.1.2 函数调用 130
7.1.3 函数的返回值与函数类型 131
7.1.4 被调函数声明 133
7.1.5 函数应用举例 134
7.2 外部函数和内部函数 141
7.2.1 外部函数 141
7.2.2 内部函数 141
7.3 内部变量和外部变量 144
7.3.1 内部变量 144
7.3.2 外部变量 144
7.4 变量的存储类型 146
7.4.1 内部变量的存储类型 146
7.4.2 外部变量的存储类型 149
7.5 函数的数据传递 150
7.5.1 传值调用 150
7.5.2 传址调用 152
7.5.3 外部变量传递数据 153
7.6 数组作为函数参数 153
7.6.1 数组元素作为函数参数 153
7.6.2 数组名作为函数参数 154
7.7 递归函数 156
7.7.1 递归模型 156
7.7.2 递归的执行过程 157
7.8 小结 159
7.9 练习题7 161
7.9.1 单项选择题 161
7.9.2 填空题 165
7.9.3 编程题 168
上机实验7 169
实验内容 169
编程要求 169
第8章 指针 170
8.1 指针和指针变量 170
8.2 指针变量的定义及其运算 171
8.2.1 指针变量的定义 171
8.2.2 指针运算符 172
8.2.3 指针变量的初始化 174
8.2.4 指针变量的运算 175
8.3 指针变量和数组 178
8.3.1 指针变量与一维数组 178
8.3.2 指向多维数组元素和指向分数组的指针 182
8.4 字符串指针变量和字符串 188
8.5 指针数组 192
8.6 多级指针变量 195
8.7 指针与函数 197
8.7.1 指针型函数 197
8.7.2 指向函数的指针变量 198
8.8 命令行参数 201
8.9 小结 202
8.10 练习题8 204
8.10.1 单项选择题 204
8.10.2 填空题 207
8.10.3 编程题 211
上机实验8 212
实验内容 212
编程要求 212
第9章 编译预处理 213
9.1 宏定义 213
9.1.1 无参宏定义 213
9.1.2 带参宏定义 215
9.2 条件编译 217
9.3 文件包含 220
9.4 小结 221
9.5 练习题9 222
9.5.1 单项选择题 222
9.5.2 填空题 223
9.5.3 编程题 224
上机实验9 225
实验内容 225
编程要求 225
第10章 结构体和共用体 226
10.1 结构体类型声明和结构体变量定义 226
10.1.1 结构体类型声明 226
10.1.2 结构体变量的定义 227
10.1.3 结构体变量的引用和初始化 228
10.1.4 结构体变量作为函数参数 230
10.2 结构体数组 231
10.2.1 结构体数组的定义 231
10.2.2 结构体数组的引用 232
10.2.3 结构体数组的初始化 232
10.3 结构体指针变量 233
10.3.1 结构体指针变量定义 234
10.3.2 结构体数组指针 234
10.3.3 结构体指针变量作为函数参数 236
10.3.4 结构体数组作为函数参数 237
10.4 结构体的应用:链表 238
10.4.1 C语言动态分配函数 238
10.4.2 单链表及其基本运算的实现 239
10.5 共用体 245
10.5.1 共用体类型的定义 245
10.5.2 共用体变量的定义 246
10.5.3 共用体变量的引用和初始化 247
10.6 枚举类型 250
10.6.1 枚举类型的声明和变量定义 251
10.6.2 有关枚举类型数据的操作 252
10.7 用户定义类型 254
10.8 小结 256
10.9 练习题10 257
10.9.1 单项选择题 257
10.9.2 填空题 260
10.9.3 编程题 264
上机实验10 265
实验内容 265
编程要求 265
第11章 位运算 266
11.1 位运算符和位运算 266
11.1.1 位运算符 266
11.1.2 位运算符的运算功能 266
11.2 位段结构 270
11.2.1 位段的概念 270
11.2.2 位段结构的声明和变量定义 270
11.2.3 位段的引用 272
11.3 小结 273
11.4 练习题11 273
11.4.1 单项选择题 273
11.4.2 填空题 274
11.4.3 编程题 275
上机实验11 275
实验内容 275
编程要求 275
第12章 文件 276
12.1 文件概述 276
12.1.1 文件的分类 276
12.1.2 文件的操作流程 278
12.1.3 文件缓冲区 278
12.1.4 流和文件指针 279
12.2 文件的打开和关闭 279
12.2.1 文件的打开 280
12.2.2 文件的关闭 281
12.3 文件的顺序读写 281
12.3.1 文件的字符读/写函数 282
12.3.2 文件的字符串读/写函数 285
12.3.3 文件格式化读写 287
12.4 文件的随机读写 289
12.4.1 文件定位操作 289
12.4.2 文件的随机读写 291
12.5 文件检测函数 295
12.5.1 feof()函数 295
12.5.2 ferror()函数 296
12.6 文件应用综合实例 296
12.7 小结 301
12.8 练习题12 302
12.8.1 单项选择题 302
12.8.2 填空题 305
12.8.3 编程题 307
上机实验12 309
实验内容 309
编程要求 309
附录A C语言运算符及优先级 310
附录B 部分字符与ASCII代码对照表 312
参考文献 313