第1章 程序语言和C语言概述 1
1.1 程序与计算机语言 1
1.1.1 程序的概念 1
1.1.2 计算机语言的发展 1
1.1.3 C语言的发展及特点 3
1.2 程序设计方法 5
1.2.1 结构化程序设计方法 5
1.2.2 面向对象程序设计方法 7
1.3 算法及其表示 7
1.3.1 算法的概念 7
1.3.2 算法的特性 8
1.3.3 算法的表示 8
1.4 C语言程序的基本结构 11
1.4.1 C语言程序的结构特点 12
1.4.2 C语言程序的书写格式 12
1.5 C语言的基本语法单位 12
1.5.1 字符集 12
1.5.2 关键字 13
1.5.3 标识符 13
1.5.4 分隔符 14
1.5.5 注释 14
1.6 C语言程序的开发环境 14
1.6.1 C语言程序的编辑、编译、链接与执行 14
1.6.2 Visual C+++6.0集成开发环境 16
习题 17
第2章 数据类型、运算符及表达式 19
2.1 常量与变量 19
2.1.1 常量 20
2.1.2 变量 20
2.2 基本数据类型 21
2.2.1 整型数据及其表示 21
2.2.2 浮点型数据及其表示 24
2.2.3 字符型数据及其表示 26
2.3 运算符与表达式 28
2.3.1 算术运算符与算术表达式 29
2.3.2 自增、自减运算符 30
2.3.3 赋值运算符与赋值表达式 31
2.3.4 逗号运算符与逗号表达式 32
2.3.5 其他运算符 33
2.4 数据类型转换 34
2.4.1 自动类型转换 34
2.4.2 赋值类型转换 35
2.4.3 强制类型转换 35
习题 35
第3章 顺序结构程序设计 38
3.1 C语句概述 38
3.2 C语言中数据的输入/输出 39
3.3 字符输入/输出函数 39
3.3.1 字符输出函数putchar 39
3.3.2 字符输入函数getchar 40
3.4 格式化输入/输出函数 40
3.4.1 格式化输出函数printf 40
3.4.2 格式化输入函数scanf 45
3.5 典型例题 49
习题 50
第4章 选择结构程序设计 53
4.1 关系运算 53
4.1.1 关系运算符 53
4.1.2 关系表达式 53
4.2 逻辑运算 54
4.2.1 逻辑运算符 54
4.2.2 逻辑表达式 54
4.3 if语句 56
4.3.1 if语句的一般形式 56
4.3.2 if语句的嵌套 59
4.4 条件运算符与条件表达式 60
4.5 switch语句 61
4.6 典型例题 63
习题 67
第5章 循环结构程序设计 70
5.1 while语句 70
5.2 do…while语句 71
5.3 for语句 73
5.4 循环的嵌套 75
5.5 break和continue语句 77
5.5.1 break语句 77
5.5.2 continue语句 78
习题 80
第6章 数组 83
6.1 一维数组 83
6.1.1 一维数组的定义 83
6.1.2 一维数组的初始化 83
6.1.3 一维数组元素的引用 84
6.1.4 字符串 87
6.2 二维数组 92
6.2.1 二维数组的定义 92
6.2.2 二维数组的初始化 92
6.2.3 二维数组的引用 93
习题 95
第7章 函数 98
7.1 概述 98
7.2 函数定义 98
7.2.1 函数定义的一般形式 98
7.2.2 函数的参数与函数的返回值 99
7.3 函数的调用 102
7.3.1 函数调用的一般形式 102
7.3.2 对被调函数的声明 102
7.4 函数的嵌套调用与递归调用 104
7.4.1 函数的嵌套调用 104
7.4.2 函数的递归调用 106
7.5 数组作函数参数 108
7.6 局部变量和全局变量 113
7.6.1 局部变量 113
7.6.2 全局变量 114
7.7 变量的存储类别 117
7.7.1 动态存储方式与静态存储方式 117
7.7.2 自动变量 118
7.7.3 静态局部变量 118
7.7.4 寄存器变量 119
7.8 内部函数与外部函数 120
习题 121
第8章 预处理命令 124
8.1 宏定义 124
8.1.1 无参数宏定义 124
8.1.2 带参数宏定义 127
8.1.3 宏定义的应用 129
8.2 文件包含 130
8.2.1 文件包含命令的格式和功能 130
8.2.2 使用文件包含命令的注意事项 131
8.3 条件编译 132
8.3.1 条件编译的常用命令格式 132
8.3.2 条件编译命令的应用 133
习题 135
第9章 指针 138
9.1 指针的概念 138
9.2 指针与指针变量 138
9.2.1 指针变量的定义 138
9.2.2 指向变量的指针 138
9.2.3 指向指针的指针 140
9.3 指针与数组 141
9.3.1 指向数组元素的指针 141
9.3.2 指向一维数组的指针 144
9.3.3 二维数组的指针 145
9.3.4 指针数组 146
9.4 指针与函数 147
9.4.1 指向函数的指针 148
9.4.2 指向变量的指针作函数参数 148
9.4.3 指向数组的指针作函数参数 150
9.4.4 指向函数的指针作函数参数 155
9.4.5 main函数与指针数组 156
9.4.6 返回指针值的函数 157
习题 159
第10章 结构体与共用体 162
10.1 声明结构体类型和定义结构体变量 162
10.1.1 声明结构体类型 162
10.1.2 定义结构体变量 163
10.2 结构体变量的引用和初始化 164
10.3 结构体数组 165
10.4 结构体指针 166
10.4.1 指向结构体变量的指针 166
10.4.2 结构体数组指针 168
10.4.3 用结构体变量和结构体指针作函数参数 169
10.5 链表 170
10.5.1 静态链表 171
10.5.2 动态链表 172
10.6 共用体 175
10.6.1 明共用体类型和定义共用体变量 175
10.6.2 共用体变量的引用和初始化 177
10.7 枚举类型 178
10.8 用typedef定义新类型 179
习题 179
第11章 位运算 184
11.1 二进制数、位和字节 184
11.2 位运算的含义和使用 184
11.2.1 “按位与”运算 184
11.2.2 “按位或”运算 185
11.2.3 “按位异或”运算 186
11.2.4 “取反”运算 186
11.2.5 “按位左移”运算 186
11.2.6 “按位右移”运算 187
11.3 简单的位运算 187
11.4 位域 189
习题 191
第12章 文件 193
12.1 什么是文件 193
12.2 文件类型指针 194
12.3 文件的打开与关闭 195
12.3.1 文件的打开 195
12.3.2 文件的关闭 197
12.4 文件的顺序读写 197
12.4.1 字符读写函数fgetc和fputc 197
12.4.2 字符串读写函数fgets和fputs 200
12.4.3 格式化读写函数fscanf和fprintf 202
12.4.4 数据块读写函数fread和fwrite 203
12.5 文件的随机读写 205
12.6 文件检测函数 208
习题 208
实验指导 211
实验一 程序语言和C语言概述 211
实验二 数据类型、运算符及表达式 216
实验三 顺序结构程序设计 220
实验四 选择结构程序设计 225
实验五 循环结构程序设计 235
实验六 数组 241
实验七 函数 248
实验八 预处理命令 259
实验九 指针 263
实验十 结构体与共用体 273
实验十一 位运算 286
实验十二 文件 294
附录 305
附录A 常用字符与ASCII码表 305
附录B C语言的关键字及说明 306
附录C 运算符的优先级和结合性 307
附录D 常用的C库函数 308
参考文献 312