第1章 C语言与程序设计简介 1
1.1 计算机和程序设计基本概念 1
1.1.1 计算机系统组成 1
1.1.2 程序与程序设计语言 3
1.2 C语言的发展历程和特点 4
1.2.1 C语言发展历程 4
1.2.2 C语言主要特点 5
1.3 C语言程序的基本组成 6
1.4 Visual C++上机操作 9
1.4.1 Visual C++的安装和启动 9
1.4.2 Visual C++环境的使用 10
习题1 17
第2章 C语言与程序设计基础 20
2.1 C语言基本符号与基本数据类型 20
2.1.1 C语言基本符号 20
2.1.2 C语言的数据类型 22
2.2 常量 23
2.2.1 整型常量、实型常量及符号常量 24
2.2.2 字符常量与字符串常量 26
2.3 变量 28
2.3.1 变量的概念、定义与初始化 28
2.3.2 整型变量、实型变量与字符型变量 30
2.4 运算符与表达式 34
2.4.1 C语言运算符简介 34
2.4.2 算术运算符与算术表达式 37
2.4.3 关系运算符与关系表达式 40
2.4.4 逻辑运算符与逻辑表达式 41
2.4.5 赋值运算符与复合赋值运算符 43
2.4.6 表达式中数据类型自动和强制转换 45
2.5 数据的输入/输出 47
2.5.1 字符输入/输出函数 47
2.5.2 格式输出函数 49
2.5.3 格式输入函数 53
习题2 57
第3章 三种基本结构的程序设计 62
3.1 程序基本结构及C程序语句分类 62
3.1.1 程序的基本结构 62
3.1.2 C程序中的语句分类 63
3.2 顺序结构程序设计 65
3.2.1 赋值语句 65
3.2.2 顺序结构程序 66
3.3 选择结构程序设计 68
3.3.1 if语句 68
3.3.2 if语句的嵌套 73
3.3.3 条件运算符与条件表达式 75
3.3.4 switch语句 76
3.4 循环结构程序设计 81
3.4.1 while语句 81
3.4.2 do…while语句 84
3.4.3 for语句 86
3.4.4 逗号运算符与逗号表达式 90
3.4.5 break语句、continue语句和goto语句 91
3.4.6 循环嵌套 94
3.5 典型例题精讲 97
习题3 115
第4章 数组 125
4.1 一维数组 125
4.1.1 一维数组的定义 125
4.1.2 一维数组的引用和初始化 126
4.2 二维数组 130
4.2.1 二维数组的定义 130
4.2.2 二维数组的引用和初始化 131
4.3 字符数组和字符串 134
4.3.1 字符数组的定义、引用及初始化 134
4.3.2 字符串 137
4.3.3 常用字符串处理函数 139
4.4 典型例题精讲 143
习题4 152
第5章 函数 160
5.1 函数的概念及特点 160
5.1.1 函数的概念 160
5.1.2 函数的分类 160
5.2 函数的定义和调用 161
5.2.1 函数的定义 161
5.2.2 函数的调用和返回值 163
5.2.3 函数执行的分析方法 165
5.2.4 函数的声明 167
5.3 变量的作用域 169
5.3.1 全局变量与局部变量 169
5.3.2 函数的副作用 170
5.4 函数的嵌套调用与递归调用 171
5.4.1 函数的嵌套调用 171
5.4.2 函数的递归调用 172
5.5 典型例题精讲 176
5.6 递归转化为非递归研究 185
5.6.1 汉诺塔问题递归解法 185
5.6.2 汉诺塔问题非递归解决 188
习题5 190
第6章 指针 199
6.1 指针和指针变量 199
6.1.1 地址和指针的概念 199
6.1.2 指针变量的定义和初始化 200
6.1.3 指针变量的引用和运算 201
6.2 指针变量与数组 205
6.2.1 指针变量与一维数组 205
6.2.2 指针变量与二维数组 209
6.2.3 指针数组 214
6.3 指针变量与字符串及多级指针变量 216
6.3.1 指针变量与字符串 216
6.3.2 多级指针变量 218
6.4 指针变量与函数 221
6.4.1 指针变量作为函数参数 221
6.4.2 用数组名作函数参数 224
6.4.3 返回指针值的函数 228
6.5 动态数组 230
6.6 典型例题精讲 233
习题6 241
第7章 结构体 250
7.1 结构体类型定义与结构体变量 250
7.1.1 结构体类型的定义 250
7.1.2 结构体变量 253
7.1.3 用typedef定义类型标识符 258
7.2 结构体数组及指向结构体的指针变量 262
7.2.1 结构体数组 262
7.2.2 指向结构体的指针变量 265
7.3 链表 268
7.3.1 链表的概念 268
7.3.2 动态存储分配 270
7.3.3 动态链表的建立与查找 271
7.3.4 链表结点的插入与删除 275
7.4 共用体 280
7.4.1 共用体的概念与定义 280
7.4.2 共用体变量的引用和赋值 281
7.5 典型例题精讲 285
习题7 293
第8章 文件 303
8.1 文件的概念 303
8.1.1 文件的分类 303
8.1.2 文件指针变量及文件操作过程 304
8.2 文件的打开与关闭 305
8.2.1 文件的打开 306
8.2.2 文件的关闭 307
8.3 文件的读写 308
8.3.1 字符读/写函数 309
8.3.2 字符串读/写函数 311
8.3.3 数据块读/写函数 313
8.3.4 格式化读/写函数 314
8.4 文件的定位与随机读/写 316
8.5 典型例题精讲 321
习题8 326
第9章 C语言与程序设计补遗 331
9.1 变量的存储类别与生命期 331
9.2 指向函数的指针变量 336
9.3 带参数的主函数main 340
9.4 编译预处理命令 342
9.4.1 宏定义命令 342
9.4.2 文件包含命令 345
9.5 枚举类型 348
9.6 位运算 352
习题9 357
附录 363
附录1 ASCII表 363
附录2 C运算符和优先级 364
附录3 常用C库函数 365
参考文献 367