第1章 程序设计的基本概念 1
1.1 C语言简介 1
1.2程序和程序设计 2
1.3算法 3
1.3.1算法的概念 3
1.3.2算法的描述与设计 4
1.4结构化程序设计和模块化结构 8
1.4.1结构化程序设计 8
1.4.2模块化程序设计 8
1.5 Visual C+++ 6.0编程环境 9
1.5.1 Visual C+++ 6.0编程环境下的C语言程序开发 10
1.5.2程序调试 17
1.6简单C语言程序的结构和格式 20
习题1 22
第2章 C语言基本数据类型 24
2.1标识符、常量、变量 24
2.1.1 C语言字符集和标识符 24
2.1.2常量 25
2.1.3变量 25
2.2 C语言数据类型 26
2.3整型数据 27
2.3.1整型常量 27
2.3.2整型变量 28
2.4实型数据 30
2.4.1实型常量 30
2.4.2实型变量 30
2.5字符型数据 32
2.5.1字符常量 32
2.5.2转义字符 32
2.5.3字符变量 33
2.5.4字符串常量 34
2.6各种数值型数据间的混合运算 36
2.7枚举类型 37
2.7.1枚举类型的定义和枚举变量的说明 37
2.7.2枚举类型变量的赋值和使用 37
习题2 38
第3章 运算符和表达式 40
3.1算术运算符和算术表达式 40
3.1.1算术运算符 40
3.1.2算术运算符优先级、结合性 41
3.1.3算术表达式 42
3.2关系运算符和关系表达式 42
3.2.1关系运算符和表达式 42
3.2.2关系表达式 43
3.3逻辑运算符和逻辑表达式 43
3.3.1逻辑运算符 43
3.3.2逻辑表达式 44
3.4赋值运算符和赋值表达式 44
3.4.1赋值运算符和赋值表达式 44
3.4.2复合的赋值表达式 45
3.5自加、自减运算符 46
3.6逗号运算符和逗号表达式 47
3.7条件运算符和条件表达式 48
3.7.1条件运算符和表达式 48
3.7.2运算符的优先级与结合性 49
3.8位运算符和位运算表达式 49
3.8.1位运算符 49
3.8.2位运算符的运算功能 50
3.8.3不同长度的数据进行位运算 53
3.8.4位运算举例 53
3.9强制类型转换运算符 54
3.10优先级和结合性 55
习题3 56
第4章 顺序结构 59
4.1赋值语句 59
4.2数据输出 59
4.2.1格式输出函数printf 59
4.2.2输出单个字符函数putchar 65
4.2.3字符串输出函数puts 66
4.3数据输入 67
4.3.1格式输入函数scanf 67
4.3.2输入单个字符函数getchar 71
4.3.3字符串输入函数gets 72
4.4复合语句和空语句 73
4.4.1复合语句 73
4.4.2空语句 73
4.5程序举例 74
习题4 75
第5章 选择结构 82
5.1 if语句构成的选择结构 82
5.1.1 if语句 82
5.1.2嵌套的if语句 88
5.2 switch语句和break语句构成的选择结构 95
5.2.1 switch语句 95
5.2.2在switch语句中使用break语句 97
5.3语句标号和goto语句 98
5.3.1语句标号 98
5.3.2 goto语句 98
习题5 99
第6章 循环结构 108
6.1 while语句 108
6.1.1 while循环的一般形式 108
6.1.2 while循环语句的执行过程 109
6.2 do…while语句 112
6.2.1 do…while语句构成的循环结构 112
6.2.2 do…while循环的执行过程 112
6.3 for语句 113
6.3.1 for循环的一般形式 113
6.3.2 for循环的执行过程 114
6.3.3有关for循环的说明 115
6.4循环结构的嵌套 119
6.4.1循环嵌套的一般格式 119
6.4.2嵌套循环的执行流程 119
6.5 break语句和continue语句 121
6.5.1 break语句 121
6.5.2 continue语句 122
6.5.3 break语句和continue语句的区别 122
6.6几种循环的比较 123
习题6 123
第7章 函数 136
7.1函数的定义和返回值 137
7.2库函数和用户自定义函数 138
7.3函数的调用 139
7.3.1函数的调用格式 139
7.3.2函数调用的方式 141
7.4调用函数与被调用函数之间的数据传递 141
7.5函数原型 143
7.6函数的递归调用 144
7.7变量的作用域和存储类型 146
7.7.1变量的作用域 146
7.7.2变量的存储类型 148
习题7 150
第8章 数组 156
8.1一维数组的定义和引用 156
8.1.1一维数组的定义 156
8.1.2一维数组的引用 157
8.1.3一维数组的初始化 158
8.1.4一维数组的动态赋值 159
8.2一维数组的应用 159
8.3二维数组的定义和引用 163
8.3.1二维数组的定义 163
8.3.2二维数组的引用和初始化 165
8.3.3多维数组 166
8.4二维数组的应用 166
8.5字符数组 168
8.5.1问题的提出 168
8.5.2字符数组的定义 168
8.5.3字符串常用函数 170
8.5.4字符函数的应用 173
8.6数组作为函数参数 174
8.6.1数组元素作函数实参 174
8.6.2数组名作函数参数 174
8.6.3多维数组作函数参数 176
习题8 176
第9章 指针 183
9.1地址和指针的概念 183
9.1.1指针的定义 183
9.1.2指针变量的类型说明 184
9.1.3指针变量的引用 184
9.1.4指针变量的运算 186
9.2指针与数组 189
9.2.1指针与数值型一维数组 189
9.2.2指针与字符串 191
9.2.3指针与二维数组 192
9.3指针与函数 192
9.3.1指针指向函数 192
9.3.2函数返回指针 193
9.3.3指针作为函数参数 194
9.4指针数组和多级指针 195
9.4.1指针数组 195
9.4.2多级指针 196
习题9 196
第10章 编译预处理和动态存储分配 206
10.1编译预处理 206
10.1.1文件包含 206
10.1.2宏定义 208
10.2动态存储分配 211
习题10 212
第11章 结构体和共用体 215
11.1用typedef声明数据类型 216
11.2结构体类型 216
11.2.1结构体类型说明 216
11.2.2结构体类型变量、数组和指针的定义 218
11.2.3为结构体变量赋值 220
11.2.4对结构体变量成员的引用 221
11.2.5结构体变量作函数参数 224
11.2.6链表 227
11.3共用体类型 233
11.3.1共用体类型说明和共用体变量定义 233
11.3.2共用体成员的引用 234
习题11 235
第12章 文件 239
12.1文件概述 239
12.2文件指针 240
12.3文件的打开与关闭 240
12.4文件的读写 242
12.4.1 fputc(或putc)函数和fgetc(或getc)函数 242
12.4.2 fputs函数和fgets函数 244
12.4.3 fscanf函数和fprintf函数 245
12.4.4 fread函数和fwrite函数 246
12.5文件状态检查函数 248
12.6文件定位函数 248
12.6.1 fseek函数 248
12.6.2 rewind函数 249
12.6.3 ftell函数 249
习题12 249
附录A 标准ASCⅡ码表 253
附录B C语言常用库函数 254
参考文献 259