第1章 C程序入门 1
1.1 创建一个简单的C程序 1
1.1.1 实例解析 1
1.1.2 运行C程序的步骤和方法 3
1.2 C程序概述 6
1.2.1 C程序的基本组成 6
1.2.2 C程序的输入和输出 7
1.2.3 C程序的特点 7
1.2.4 C程序的书写规范 8
1.3 程序与程序设计语言 8
1.3.1 程序与指令 8
1.3.2 程序设计语言 9
1.3.3 结构化程序设计的控制流程 10
1.4 程序算法简介 11
1.4.1 算法举例 11
1.4.2 算法应具备的特征 12
思考和练习题 12
第2章 顺序结构程序设计 14
2.1 设计一个简单的顺序结构程序 14
2.1.1 实例解析 14
2.1.2 常量与变量 15
2.1.3 基本数据类型 16
2.1.4 字符串常量 19
2.1.5 变量的初始化 20
2.2 表达式 20
2.2.1 基本运算符 21
2.2.2 运算符的优先级和结合性 22
2.3 数据类型的转换 23
2.3.1 各类数值型数据间的混合运算 23
2.3.2 赋值转换 23
2.3.3 强制转换 24
2.4 顺序结构程序设计 25
2.4.1 C语句分类 25
2.4.2 顺序结构 27
思考和练习题 27
第3章 分支结构程序设计 30
3.1 设计一个简单的分支结构程序 30
3.1.1 实例解析 30
3.1.2 关系运算 33
3.1.3 逻辑运算 34
3.2 分支语句 36
3.2.1 if语句 36
3.2.2 switch语句 38
3.3 分支结构控制语句的进一步解析 41
3.3.1 分支结构的嵌套 41
3.3.2 条件运算符和条件表达式 42
3.4 典型算法 42
思考和练习题 47
第4章 循环结构程序设计 50
4.1 设计一个简单的循环结构程序 50
4.1.1 实例解析 50
4.1.2 自增自减运算符 53
4.2 三种循环语句 53
4.2.1 while语句 53
4.2.2 do-while语句 55
4.2.3 for语句 58
4.3 循环程序的进一步解析 60
4.3.1 三种循环语句的比较 60
4.3.2 break语句和continue语句 60
4.4 循环的嵌套 62
4.5 典型算法 66
思考和练习题 70
第5章 数组与字符串 76
5.1 设计一个简单的数组程序 76
5.1.1 实例解析 76
5.1.2 数组概述 78
5.2 一维数组 79
5.2.1 一维数组的定义和初始化 79
5.2.2 一维数组的引用 80
5.3 二维数组 85
5.3.1 二维数组的定义和初始化 85
5.3.2 二维数组的引用 87
5.4 字符串与字符数组 89
5.4.1 字符串 89
5.4.2 字符数组的定义、初始化和引用 90
5.4.3 字符串的输入输出 90
5.4.4 字符串处理标准函数 93
5.5 典型算法 98
思考和练习题 103
第6章 函数 108
6.1 设计一个简单的用户自定义程序 108
6.1.1 实例解析 108
6.1.2 函数概述 110
6.1.3 函数的分类 111
6.2 预处理命令 112
6.2.1 宏定义 112
6.2.2 文件包含 116
6.2.3 条件编译 117
6.3 用户自定义函数 119
6.3.1 函数定义 119
6.3.2 函数调用 120
6.3.3 函数参数 124
6.3.4 函数的嵌套及递归调用 127
6.4 变量的作用域与生命期 131
6.4.1 变量的属性 131
6.4.2 局部变量和全局变量 131
6.4.3 变量的存储类型与生命期 134
6.5 典型算法 138
思考和练习题 141
第7章 指针 147
7.1 设计一个指针处理学生成绩的程序 147
7.1.1 实例解析 147
7.1.2 变量的直接访问和间接访问 148
7.2 指针 149
7.2.1 指针变量 149
7.2.2 指针运算 150
7.3 指针与数组 152
7.3.1 指向数组元素的指针 153
7.3.2 数组指针 153
7.3.3 多维数组的指针 155
7.3.4 字符串指针 157
7.3.5 指针数组 159
7.4 指针与函数 161
7.4.1 指针作为函数参数 161
7.4.2 指针型函数 164
7.4.3 指向函数的指针 165
7.5 指向指针的指针 166
思考和练习题 168
第8章 结构体与链表 171
8.1 设计一个简单的程序 171
8.1.1 实例解析 171
8.1.2 结构体的概念 173
8.2 结构体 174
8.2.1 结构体类型的声明 174
8.2.2 结构体变量的定义 174
8.2.3 结构体变量的引用 176
8.2.4 结构体变量的初始化 177
8.2.5 结构体数组 178
8.2.6 结构体与指针 180
8.2.7 结构体与函数 183
8.3 链表 184
8.3.1 链表的概念 184
8.3.2 动态申请和释放内存存储空间 185
8.3.3 链表的操作 186
思考和练习题 192
第9章 其他数据类型 199
9.1 设计一个简单的共用体程序 199
9.1.1 实例解析 199
9.1.2 共用体的概念 201
9.2 共用体 201
9.2.1 共用体的定义和引用 201
9.2.2 带共用体的结构体 202
9.3 枚举 204
9.3.1 枚举类型的声明 204
9.3.2 枚举变量的定义 204
9.4 用typedef命名已有类型 205
思考和练习题 206
第10章 文件 208
10.1 设计一个存储学生成绩信息的文件 208
10.1.1 实例解析 208
10.1.2 文件概述 210
10.2 文件的基本操作 211
10.2.1 文件类型指针 211
10.2.2 文件的打开与关闭 211
10.2.3 文件的读写 213
10.2.4 其他文件处理函数 220
思考和练习题 222
第11章 C的扩展C++ 225
11.1 C的扩展C++ 225
11.1.1 实例解析 225
11.1.2 C++的特点 227
11.2 C++的输入/输出格式控制 227
11.3 引用和const修饰符 231
11.3.1 引用 231
11.3.2 const修饰符 232
11.4 内存空间的动态分配与释放 233
11.4.1 new运算符 233
11.4.2 delete运算符 234
11.5 使用string类定义和存储字符串 235
11.6 C++函数的新内容 236
11.6.1 重载函数 237
11.6.2 带缺省参数的函数 239
11.6.3 内联函数 239
思考和练习题 241
第12章 C++面向对象基础 243
12.1 设计一个类和对象的程序 243
12.1.1 实例解析 243
12.1.2 面向对象程序设计的特点 245
12.2 类和对象 246
12.3 构造函数与析构函数 248
12.3.1 构造函数 248
12.3.2 析构函数 250
思考和练习题 250
附录1 C语言的输入输出函数 252
附录2 C语言的关键字及其含义 255
附录3 C语言运算符优先级和结合性 257
附录4 常用字符与ASCII代码对照表 259
附录5 C语言常用库函数 261
附录6 常见错误与程序调试 268
参考文献 272