基础篇 1
第1章 进入编程世界 2
1.1 初识C语言程序 2
1.1.1 C语言程序的构成 2
1.1.2 计算机语言 2
1.1.3 程序 3
1.1.4 结构化程序设计方法 3
1.2 C语言的发展与特点 5
1.2.1 C语言的发展 5
1.2.2 C语言的特点 6
1.3 C语言程序基本结构与书写规则 6
1.3.1 C语言程序基本结构 6
1.3.2 函数的一般结构 8
1.3.3 C语言程序书写规则 8
1.4 C语言的语句和关键字 9
1.4.1 C语言的语句 9
1.4.2 关键字 10
1.5 VC++6.0入门 10
1.5.1 VC++6.0主界面 11
1.5.2 在VC++6.0环境下调试一个简单C程序的步骤 12
本章小结 14
习题1 14
第2章 数据类型、运算符与表达式 16
2.1 数据类型 16
2.2 常量与变量 16
2.2.1 常量 17
2.2.2 变量 17
2.2.3 标识符 18
2.3 整型数据 18
2.3.1 整型常量 18
2.3.2 整型变量 18
2.4 实型数据 19
2.4.1 实型常量 19
2.4.2 实型变量 19
2.5 字符型数据 20
2.5.1 字符型常量 20
2.5.2 字符型变量 20
2.5.3 字符串常量 21
2.6 运算符 22
2.6.1 算术运算符及算术表达式 22
2.6.2 赋值运算符与赋值表达式 23
2.6.3 自增、自减运算符 23
2.6.4 逗号运算符与逗号表达式 24
2.7 多种运算符的混合运算 24
2.8 强制类型转换 25
本章小结 26
习题2 26
第3章 顺序结构程序设计 29
3.1 格式输出函数printf 29
3.2 格式输入函数scanf 32
3.3 顺序结构程序设计 34
3.3.1 顺序结构程序设计的一般构成 34
3.3.2 顺序结构程序设计的应用 34
本章小结 36
习题3 36
第4章 选择结构程序设计 38
4.1 关系运算符及关系表达式 38
4.1.1 关系运算符 38
4.1.2 关系表达式 38
4.2 逻辑运算符与逻辑表达式 39
4.2.1 逻辑运算符 39
4.2.2 逻辑表达式 39
4.3 if语句 40
4.3.1 if语句的一般形式 41
4.3.2 if语句的执行过程 41
4.3.3 条件运算符 43
4.4 if语句的嵌套 44
4.5 switch语句 48
4.5.1 switch语句的格式及功能 48
4.5.2 switch语句的应用举例 49
4.5.3 switch语句和嵌套if语句的比较 51
本章小结 51
习题4 52
第5章 循环结构程序设计 55
5.1 while语句 55
5.1.1 while语句的一般格式 56
5.1.2 while语句的执行过程 56
5.2 do-while语句 58
5.2.1 do-while语句的一般格式 58
5.2.2 do-while语句的执行过程 58
5.2.3 while和do-while语句的区别 59
5.3 for语句 60
5.3.1 for语句的一般格式 60
5.3.2 for语句的执行过程 61
5.4 循环的嵌套 62
5.5 break和continue语句 66
5.5.1 break语句 66
5.5.2 continue语句 68
5.6 循环结构的典型应用 69
本章小结 75
习题5 75
基础篇综合案例——输出万年历 80
进阶篇 83
第6章 数组 84
6.1 一维数组 84
6.1.1 一维数组的定义 84
6.1.2 一维数组的初始化 85
6.1.3 一维数组元素的引用 86
6.1.4 一维数组的应用举例 87
6.2 二维数组 89
6.2.1 二维数组的定义 89
6.2.2 二维数组的初始化 90
6.2.3 二维数组元素的引用 90
6.2.4 二维数组的应用举例 90
6.3 字符数组 94
6.3.1 字符数组的定义与初始化 94
6.3.2 字符串处理函数 95
6.3.3 字符数组的应用举例 98
6.4 数组典型应用举例 100
本章小结 103
习题6 103
第7章 模块化程序设计——函数 106
7.1 函数的分类 106
7.2 函数的定义与调用 107
7.2.1 函数的定义 107
7.2.2 函数的返回值 108
7.2.3 函数声明与函数原型 109
7.2.4 函数的调用 110
7.2.5 形参与实参 111
7.3 数组作为函数参数 113
7.3.1 数组元素作为函数参数 113
7.3.2 数组名作为函数参数 113
7.4 函数的嵌套调用与递归调用 118
7.4.1 函数的嵌套调用 118
7.4.2 递归函数 119
7.5 变量的作用域 123
7.5.1 局部变量 123
7.5.2 全局变量 125
7.6 变量的存储类型和生存期 126
7.6.1 自动变量 126
7.6.2 外部变量 127
7.6.3 静态变量 128
7.6.4 寄存器变量 129
本章小结 129
习题7 130
第8章 编译预处理 133
8.1 宏定义 133
8.1.1 无参宏定义 133
8.1.2 带参宏定义 134
8.2 文件包含 135
本章小结 136
习题8 136
进阶篇综合案例——简易计算器 138
提升篇 145
第9章 指针 146
9.1 指针与指针变量 146
9.1.1 内存、变量地址与指针 146
9.1.2 指针变量的定义与引用 147
9.1.3 指针变量作为函数参数 151
9.2 指针与数组 158
9.2.1 指针与一维数组 158
9.2.2 指针与二维数组 161
9.2.3 用指向数组的指针作为函数参数 165
9.2.4 指针与字符数组 171
9.3 指针数组 176
9.3.1 指针数组的定义 176
9.3.2 指针数组的应用举例 176
9.4 指向指针的指针 180
9.5 main函数的参数 182
本章小结 183
习题9 184
第10章 结构体、共同体与用户自定义类型 186
10.1 结构体类型变量的定义与引用 186
10.1.1 结构体类型变量的定义 186
10.1.2 结构体类型变量的初始化 189
10.1.3 结构体类型变量的引用 190
10.2 结构体类型数组的定义与引用 192
10.2.1 结构体类型数组的定义 192
10.2.2 结构体类型数组的初始化 192
10.2.3 结构体类型数组的引用 193
10.3 结构体类型指针的定义与引用 194
10.3.1 结构体指针的定义 194
10.3.2 结构体指针的引用 194
10.4 类型定义符typedef及sizeof函数 196
10.4.1 类型定义符typedef 196
10.4.2 sizeof函数 197
10.5 单链表及其简单应用 200
10.5.1 单链表定义 200
10.5.2 单链表简单应用 201
10.6 共同体 203
10.6.1 共同体类型变量的定义 203
10.6.2 共同体类型变量的引用 204
10.7 枚举类型 205
10.7.1 枚举类型的定义 206
10.7.2 枚举类型变量的使用 206
本章小结 209
习题10 209
第11章 位运算 211
11.1 按位“与”运算 211
11.2 按位“或”运算 213
11.3 按位“异或”运算 213
11.4 求反运算 215
11.5 按位左移运算 215
11.6 按位右移运算 217
11.7 位运算的应用举例 217
本章小结 219
习题11 219
第12章 文件 221
12.1 C语言文件的概念 221
12.2 文件类型指针 222
12.3 文件的打开与关闭 222
12.3.1 文件的打开 222
12.3.2 文体的关闭 224
12.4 文件读写操作 224
12.4.1 字符读写函数fgetc和fputc 224
12.4.2 字符串读写函数fgets和fputs 228
12.4.3 格式化读写函数fscanf和fprintf 230
12.4.4 数据块读写函数fread和fwrite 231
12.4.5 文件结束函数feof 233
12.5 文件定位函数 233
12.5.1 fseek函数 233
12.5.2 ftell函数 234
12.5.3 rewind函数 234
本章小结 234
习题12 234
提升篇综合案例——通讯录管理系统 239
附录A C语言实验报告格式——以选择结构为例 258
附录B ASCII码表 259
附录C C语言运算符及优先级 260
附录D C语言常用库函数 262