第1章 计算机的组成与程序设计基础 1
1.1计算机的组成及基本工作原理 1
1.1.1计算机的硬件系统 2
1.1.2计算机的软件系统 3
1.1.3计算机工作原理 6
1.2程序设计基础 6
1.2.1程序设计的风格 6
1.2.2结构化程序设计 7
1.3 C语言程序的基本结构及开发过程 9
1.3.1 C语言程序的基本结构 9
1.3.2 C语言程序的开发过程 11
本章小结 17
习题 17
第2章C语言基础 18
2.1概述 18
2.1.1简介 18
2.1.2 C语言的字符集和标识符 19
2.2 C语言中的数据类型 20
2.2.1数据类型概述 20
2.2.2基本数据类型 21
2.3常量和变量 24
2.3.1常量 25
2.3.2变量 29
2.4运算符和表达式 30
2.4.1算术运算符和算术表达式 31
2.4.2赋值运算符和赋值表达式 35
2.4.3关系运算符和关系表达式 36
2.4.4逻辑运算符和逻辑表达式 38
2.4.5位运算符和位运算表达式 40
2.4.6条件运算符和条件表达式 42
2.4.7其他运算符 43
2.5数据类型转换 45
2.5.1自动类型转换 45
2.5.2强制类型转换 45
2.6 C语言的语句类型 46
2.7案例研究及实现 49
本章小结 50
习题 51
第3章C语言控制语句 54
3.1结构化程序设计 54
3.1.1程序的基本结构 54
3.1.2案例描述:猜数游戏 55
3.2顺序结构程序设计 55
3.2.1字符输出函数 55
3.2.2格式输出函数 56
3.2.3字符输入函数 59
3.2.4格式输入函数 60
3.2.5顺序结构程序设计举例 63
3.3分支结构程序设计 65
3.3.1 if条件分支语句 66
3.3.2 switch多路开关语句 75
3.4循环结构程序设计 77
3.4.1 while语句 77
3.4.2 do~while语句 79
3.4.3 for语句 81
3.4.4 3种循环语句的比较 84
3.4.5循环嵌套 85
3.5 break和continue语句 86
3.5.1 break语句 86
3.5.2 continue语句 87
3.6程序设计举例及案例研究 88
本章小结 93
习题 94
第4章 函数与编译预处理 98
4.1函数概述 98
4.1.1函数简介 98
4.1.2数学库函数 99
4.1.3案例描述:猜数字游戏 100
4.2函数定义及调用 101
4.2.1函数的定义 101
4.2.2函数的调用 103
4.2.3函数的参数传递与返回值 106
4.2.4函数的嵌套调用 109
4.2.5函数原型声明 112
4.3局部变量和全局变量 114
4.3.1局部作用域和局部变量 114
4.3.2全局作用域和全局变量 115
4.4变量的生存期和存储类别 117
4.4.1变量的生存期 117
4.4.2变量的存储类别 117
4.5编译预处理 123
4.5.1宏定义 124
4.5.2文件包含 126
4.5.3条件编译 126
4.6案例设计及实现:猜数字游戏程序 128
4.6.1案例程序设计 128
4.6.2案例程序代码 130
4.6.3案例功能测试 133
本章小结 134
习题 134
第5章 数组 141
5.1数组概述 141
5.2一维数组 142
5.2.1一维数组的定义 142
5.2.2一维数组元素的引用 143
5.2.3一维数组的初始化 143
5.2.4一维数组应用举例 144
5.2.5一维数组作函数参数 149
5.3二维数组 150
5.3.1二维数组的定义 150
5.3.2二维数组元素的引用 151
5.3.3二维数组的初始化 151
5.3.4二维数组应用举例 152
5.3.5二维数组作函数参数 154
5.4字符数组与字符串 156
5.4.1字符数组与字符串的概念 156
5.4.2字符数组的定义 157
5.4.3字符数组的初始化 157
5.4.4字符数组的引用 158
5.4.5字符串处理函数 159
5.4.6字符数组应用举例 162
本章小结 164
习题 165
第6章 指针 171
6.1指针概述 171
6.1.1指针简介 171
6.1.2案例描述 171
6.2指针和指针变量 172
6.2.1基本概念 172
6.2.2指针变量的定义 174
6.2.3指针的基本运算 175
6.2.4指针作为函数参数 180
6.3指针与数组 183
6.3.1指针与一维数组 184
6.3.2指针与二维数组 189
6.3.3指向字符串的指针变量 191
6.3.4指针数组 195
6.3.5多级指针 197
6.4指针和函数 198
6.4.1指针型函数 198
6.4.2用函数指针调用函数 199
6.4.3用指向函数的指针作函数参数 201
6.4.4带参数的main函数 203
6.5动态存储分配 204
6.5.1什么是内存的动态分配 204
6.5.2动态内存分配函数 205
6.5.3 void指针类型 206
6.6案例例程及思考 207
本章小结 209
习题 210
第7章 其他自定义数据类型 216
7.1构造数据类型概述 216
7.1.1简介 216
7.1.2案例描述:数3游戏 216
7.2结构体类型 217
7.2.1结构体与结构体类型的定义 217
7.2.2结构体类型变量的定义、引用与初始化 218
7.2.3结构体指针 222
7.2.4链表 224
7.3共用体类型 233
7.3.1共用体与共用体类型的定义 233
7.3.2共用体变量的定义与初始化 234
7.4枚举类型 237
7.5类型重命名 240
7.6案例研究及实现 242
本章小结 243
习题 244
第8章 文件 251
8.1文件概述 251
8.2文件和文件类型指针 251
8.3文件的打开与关闭 253
8.4文本文件的读写 254
8.4.1文件的字符输入/输出函数 254
8.4.2文件的字符串输入输出函数 257
8.4.3文件的格式输入/输出函数 258
8.5二进制文件的读写 260
8.5.1文件的字输入/输出函数 260
8.5.2文件的数据块输入/输出函数 261
8.6文件读写指针定位函数 263
本章小结 265
习题 266
第9章 一个完整案例的设计和实现 272
9.1问题的提出 273
9.2系统功能设计 273
9.3程序流程图 273
9.4源程序清单 274
9.5程序测试 277
9.6程序文档 279
思考题 279
附录A C语言中运算符的优先级和结合性 280
附录B C语言常用库函数 282
附录C ASCII码表 286