第1章 C语言概述 1
1.1 C语言的发展及特点 1
1.1.1 C语言的发展 1
1.1.2 C语言的特点 2
1.2 简单的C语言程序 3
1.3 C语言程序的构成及格式 5
1.4 C语言程序上机调试步骤和方法 6
1.4.1 新建C程序 6
1.4.2 运行C程序 7
1.4.3 调试C程序 9
1.5 典型例题解析 11
1.6 上机实训 12
1.7 本章小结 14
1.8 习题 14
第2章 数据类型、运算符与表达式 16
2.1 C语言的数据类型 16
2.2 常量、变量和标识符 16
2.2.1 常量和符号常量 16
2.2.2 变量 17
2.3 整型数据 20
2.3.1 整型常量 20
2.3.2 整型变量 21
2.4 实型数据 23
2.4.1 实型常量 23
2.4.2 实型变量 24
2.5 字符型数据 24
2.5.1 字符常量 24
2.5.2 字符变量 26
2.5.3 字符串常量 28
2.6 算术运算符和算术表达式 29
2.6.1 基本的算术运算符和算术表达式 29
2.6.2 算术运算符的优先级、结合性 31
2.7 赋值运算符和赋值表达式 32
2.7.1 基本赋值运算符 32
2.7.2 复合赋值运算符 32
2.7.3 赋值表达式 33
2.8 逗号运算符和逗号表达式 33
2.9 自增运算符、自减运算符及C语言运算符的优先级 34
2.9.1 自增运算符 34
2.9.2 自减运算符 35
2.9.3 C语言运算符的分类、优先级与结合性 36
2.10 不同类型数据间的混合运算 37
2.11 典型例题解析 39
2.12 上机实训 43
2.13 本章小结 44
2.14 习题 45
第3章 最简单的C程序设计——顺序结构程序设计 47
3.1 关于算法 47
3.1.1 算法的概念 47
3.1.2 算法的特性 48
3.1.3 算法的表示方法 48
3.1.4 算法的复杂性 49
3.2 结构化程序设计 49
3.2.1 结构化程序设计的概念 49
3.2.2 程序的三种基本结构 50
3.3 C语句 51
3.4 字符的输入输出 53
3.4.1 字符输出函数(putchar函数) 53
3.4.2 字符输入函数(getchar函数) 54
3.5 格式输入与输出 54
3.5.1 格式输出函数(printf函数) 54
3.5.2 格式输入函数(scanf函数) 58
3.6 顺序程序设计举例 60
3.7 典型例题解析 62
3.8 上机实训 69
3.9 本章小结 70
3.10 习题 71
第4章 选择结构程序设计 74
4.1 关系运算符和关系表达式 74
4.1.1 关系运算符及其优先级 74
4.1.2 关系表达式 75
4.2 逻辑运算符和逻辑表达式 75
4.2.1 逻辑运算符及其优先级次序 75
4.2.2 逻辑表达式 76
4.3 if语句 77
4.3.1 if语句的三种形式 77
4.3.2 if语句的嵌套 80
4.4 条件运算符和条件表达式 82
4.5 switch语句 83
4.5.1 switch语句 83
4.5.2 break语句 85
4.6 选择程序设计举例 86
4.7 典型例题解析 88
4.8 上机实训 96
4.9 本章小结 97
4.10 习题 97
第5章 循环结构程序设计 101
5.1 while语句 101
5.1.1 while循环的一般格式 101
5.1.2 while循环的执行过程 102
5.2 do-while语句 103
5.2.1 do-while循环的一般格式 103
5.2.2 do-while循环的执行过程 104
5.3 for语句 105
5.3.1 for循环的一般格式 105
5.3.2 for循环的执行过程 106
5.4 break语句和continue语句在循环体中的作用 108
5.4.1 break语句在循环体中的作用 108
5.4.2 continue语句在循环体中的作用 108
5.5 循环程序设计举例 109
5.6 典型例题解析 111
5.7 上机实训 118
5.8 本章小结 120
5.9 习题 121
第6章 数组 127
6.1 一维数组 127
6.1.1 一维数组的定义 127
6.1.2 一维数组元素的引用 128
6.1.3 一维数组的初始化 128
6.1.4 一维数组的应用 129
6.2 二维数组 131
6.2.1 二维数组的定义 131
6.2.2 二维数组元素的引用 132
6.2.3 二维数组的初始化 132
6.2.4 二维数组的应用 133
6.3 字符数组 135
6.3.1 字符数组的定义及初始化 135
6.3.2 字符数组的引用 136
6.3.3 字符数组的输入输出 137
6.3.4 字符串处理函数 138
6.4 典型例题解析 141
6.5 上机实训 156
6.6 本章小结 158
6.7 习题 159
第7章 函数 162
7.1 函数的概念 162
7.1.1 库函数的使用 162
7.1.2 函数的定义 163
7.2 函数的参数和返回值 165
7.2.1 函数的参数 165
7.2.2 函数的参数的传递方式 166
7.2.3 函数的返回值 168
7.3 函数的调用 169
7.3.1 函数的一般调用 169
7.3.2 函数的嵌套调用 170
7.3.3 函数的递归调用 171
7.4 变量的作用域和存储类型 174
7.4.1 变量的作用域 174
7.4.2 变量的存储类型 175
7.5 函数的作用范围 179
7.5.1 内部函数 179
7.5.2 外部函数 180
7.6 典型例题解析 181
7.7 上机实训 198
7.8 本章小结 199
7.9 习题 200
第8章 指针 205
8.1 指针的概念 205
8.2 指针变量 206
8.2.1 指针变量的定义 206
8.2.2 指针变量的引用 207
8.2.3 指针变量的运算 209
8.3 指针与数组 211
8.3.1 指针与一维数组 211
8.3.2 指针与二维数组 213
8.3.3 指向行指针的指针变量 215
8.4 指针与字符串 216
8.5 指针数组 219
8.6 指针与函数 220
8.6.1 指针变量作为函数的参数 220
8.6.2 函数的返回值为指针 222
8.6.3 指向函数的指针 223
8.6.4 指向函数的指针作为函数参数 224
8.7 指向指针的指针 225
8.8 main()函数的形参和void指针 227
8.8.1 main函数的形参 227
8.8.2 指向void的指针变量 229
8.9 典型例题解析 230
8.10 上机实训 247
8.11 本章小结 248
8.12 习题 248
第9章 编译预处理和动态存储分配 257
9.1 宏定义 257
9.1.1 无参宏 257
9.1.2 带参宏 259
9.2 文件包含 262
9.3 条件编译 263
9.4 动态存储分配 266
9.4.1 分配内存空间函数malloc 267
9.4.2 分配内存空间函数calloc 267
9.4.3 释放内存空间函数free 267
9.5 典型例题解析 268
9.6 上机实训 272
9.7 本章小结 273
9.8 习题 274
第10章 构造数据类型 277
10.1 结构体 277
10.1.1 结构体定义 277
10.1.2 结构体变量的定义 278
10.1.3 结构体变量的引用和初始化 280
10.1.4 结构体数组的定义和初始化 281
10.2 结构体与指针 285
10.2.1 结构体变量指针 285
10.2.2 结构体数组指针 286
10.3 结构体与函数 289
10.3.1 结构变量与数组结构作函数参数 289
10.3.2 结构变量作为函数的返回值 292
10.4 链表 292
10.4.1 链表概述 293
10.4.2 链表的基本操作 293
10.5 共用体 299
10.6 枚举类型 301
10.6.1 枚举类型的定义 301
10.6.2 枚举变量的定义和使用 301
10.7 typedef类型声明 303
10.8 典型例题解析 304
10.9 上机实训 313
10.10 本章小结 315
10.11 习题 315
第11章 文件 321
11.1 文件概述 321
11.2 文件类型指针 321
11.3 文件的打开与关闭 322
11.3.1 文件的打开 322
11.3.2 文件的关闭 324
11.4 文件的读写 325
11.4.1 字符读写函数 325
11.4.2 字符串读写函数 327
11.4.3 数据读写函数 330
11.4.4 格式化读写函数 331
11.5 文件的定位函数 334
11.6 文件出错检测函数 338
11.7 文件综合实例 338
11.8 典型例题解析 341
11.9 上机实训 346
11.10 本章小结 348
11.11 习题 349
第12章 位运算 353
12.1 二进制位运算概述 353
12.2 位的运算 353
12.2.1 按位与 354
12.2.2 按位或 355
12.2.3 按位异或 355
12.2.4 按位取反 356
12.2.5 左移运算符 357
12.2.6 右移运算符 358
12.2.7 复合位运算符 358
12.3 典型例题解析 359
12.4 上机实训 361
12.5 本章小结 364
12.6 习题 364
附录A 运算符的优先级及其结合性 367
附录B 常用ASCII代码对照表 368
附录C 各章习题参考答案 369
附录D 二级C语言程序设计考试大纲(2008年版) 390
附录E 2007年全国计算机等级考试二级笔试试卷C语言程序设计及参考答案 393
参考文献 427