第1章 计算机基础知识 1
1.1 数制及相互转换 1
1.1.1 数制 1
1.1.2 十进制数转换成其他进制数 2
1.1.3 非十进制数转换成十进制数 3
1.1.4 二进制数与十六进制数相互转换 3
1.1.5 数的书写方法 4
1.2 计算机系统 5
1.2.1 计算机系统的组成 5
1.2.2 内部存储器 6
1.3 数据在计算机中的存储 7
1.3.1 在内存中存储字符 7
1.3.2 在内存中存储整数 8
1.3.3 在内存中存储实数 9
本章要点 9
习题1 10
第2章 C语言概述 11
2.1 计算机语言 11
2.2 C语言的发展与特点 13
2.3 C语言的工作环境 14
2.4 最简单的C程序 17
2.5 流程图 19
本章要点 20
习题2 21
第3章 常量、变量、表达式 22
3.1 数据类型 22
3.2 常量 23
3.2.1 字符常量 23
3.2.2 整型常量 24
3.2.3 实型常量 24
3.2.4 字符串常量 25
3.3 变量 25
3.3.1 变量的定义 25
3.3.2 变量的初始化 26
3.4 运算符与表达式 27
3.4.1 算术运算符 27
3.4.2 自增和自减运算符 28
3.4.3 数据类型的自动转换 29
3.4.4 赋值运算符 29
3.4.5 复合赋值运算符 30
3.4.6 强制类型转换运算符 30
3.4.7 圆括号 31
3.4.8 字节数运算符sizeof 32
3.5 常用的数学函数 32
3.6 广义表达式 33
3.6.1 逗号表达式 33
3.6.2 条件表达式(问号表达式) 34
3.7 表达式应用举例 34
本章要点 35
习题3 35
第4章 顺序结构程序设计 37
4.1 顺序执行语句 37
4.1.1 表达式语句 38
4.1.2 函数调用语句 38
4.1.3 C语言程序的一般结构及书写规则 38
4.1.4 复合语句 39
4.2 标准输入/输出函数 40
4.2.1 字符的输入/输出函数getchar()/putchar() 40
4.2.2 字符串的输入/输出函数gets()/puts() 41
4.2.3 格式化输入/输出函数scanf()/printf() 42
本章要点 48
习题4 48
第5章 分支结构程序设计 50
5.1 关系运算符和关系表达式 50
5.1.1 关系运算符 50
5.1.2 关系表达式 51
5.2 逻辑运算符和逻辑表达式 51
5.2.1 逻辑运算符 51
5.2.2 逻辑表达式 52
5.3 if语句 53
5.3.1 简单if语句 53
5.3.2 标准if语句 54
5.3.3 复合的if语句 56
5.4 switch和break语句 58
本章要点 60
习题5 60
第6章 循环结构 62
6.1 循环是相似重复 62
6.1.1 重复是完成工作的重要方法 62
6.1.2 对重复操作进行控制 63
6.2 for语句控制的循环 64
6.2.1 for语句的基本格式 64
6.2.2 用for语句控制计数 67
6.2.3 for语句的几种特殊用法 69
6.3 while语句控制的循环 72
6.3.1 用while控制循环 72
6.3.2 while循环与for循环的比较 74
6.4 do…while语句控制的循环 76
6.5 break和continue语句 78
6.5.1 break语句 78
6.5.2 continue语句 80
6.6 循环的典型应用 81
6.6.1 有关数列的计算类问题 81
6.6.2 其他计算问题 84
6.6.3 完全性问题 85
6.6.4 存在性问题 86
6.7 循环嵌套 87
6.7.1 基本概念 87
6.7.2 应用举例 89
本章要点 92
习题6 92
第7章 数组 95
7.1 数组变量与存储分配 95
7.1.1 定义数组变量 95
7.1.2 数组变量的存储分配 97
7.1.3 数组变量的初值 98
7.2 使用数组元素 99
7.2.1 赋值和取值 99
7.2.2 数组的典型应用 101
7.3 二维数组 105
7.3.1 二维数组的基本概念 105
7.3.2 二维数组的应用 107
7.3.3 多维数组 111
7.4 字符数组与字符串 112
7.4.1 基本概念 112
7.4.2 字符串的相关操作 113
7.4.3 处理字符串的系统工具 116
7.4.4 应用示例 119
本章要点 120
习题7 121
第8章 调试程序 125
8.1 程序出错与处理方法 125
8.1.1 语法错误 125
8.1.2 逻辑错误 127
8.2 在TC 3.0环境下调试程序 127
8.2.1 TC 3.0集成环境中的调试工具 127
8.2.2 调试示例 129
本章要点 133
习题8 134
第9章 指针 137
9.1 指针的基本概念 137
9.1.1 变量名和变量的地址 137
9.1.2 存放内存地址的变量 138
9.1.3 指针与指针变量 139
9.1.4 定义指针类型标识符 140
9.2 指针的基本用法 141
9.2.1 建立指向关系 142
9.2.2 间接访问变量 142
9.2.3 用指针作为系统工具的参数 144
9.3 指向数组元素的指针 145
9.3.1 指针表达式 146
9.3.2 与指针有关的运算 149
9.3.3 用指针变量扫描数组 150
9.4 指针数组 153
9.4.1 定义指针数组 153
9.4.2 指针数组的应用 153
9.5 二级指针 155
9.5.1 指向指针变量的指针 155
9.5.2 指向数组的指针 157
9.5.3 指向数组的二级指针变量 159
本章要点 160
习题9 161
第10章 函数 164
10.1 函数的基本概念 164
10.1.1 函数定义 164
10.1.2 函数调用 165
10.1.3 库函数与头文件 166
10.1.4 函数分类 167
10.2 自定义函数及其调用 168
10.2.1 定义函数的方法 168
10.2.2 调用自定义函数 171
10.3 函数调用过程 173
10.3.1 main函数 174
10.3.2 函数调用规则 174
10.3.3 函数调用与返回 175
10.3.4 函数的嵌套调用 178
10.4 变量的类别 179
10.4.1 变量的存储类别 180
10.4.2 全局变量和局部变量 182
10.5 函数的递归调用 187
10.5.1 问题分解与解的合成 188
10.5.2 递归函数及调用过程 189
10.5.3 汉诺塔问题 192
10.6 与函数有关的指针 195
10.6.1 指针作为函数的参数 195
10.6.2 返回指针的函数 200
10.6.3 指向函数的指针 201
10.7 模块化编程 203
10.7.1 运行多文件的程序 204
10.7.2 用extern声明外部函数和外部变量 204
本章要点 206
习题10 206
第11章 结构体 209
11.1 在内存中存放二维表数据 209
11.1.1 把一列数据集中存放——数组 209
11.1.2 把一行数据集中存放 210
11.2 结构体变量 211
11.2.1 定义结构体类型 211
11.2.2 定义结构体变量 212
11.2.3 结构体变量的初值 215
11.2.4 访问结构体变量 215
11.2.5 结构体的嵌套 217
11.3 结构体数组 218
11.4 指向结构体的指针 219
11.4.1 指向结构体的指针和指向结构体的域的指针 219
11.4.2 用结构体或者指向结构体的指针在函数间传递数据 222
11.5 链表 225
11.5.1 动态内存分配 225
11.5.2 结构体中含有指向结构体的指针域 226
11.5.3 建立链表 227
11.5.4 插入节点 230
11.5.5 遍历链表 232
11.5.6 删除节点 233
11.5.7 关于链表操作的自定义函数 235
11.6 复杂的链式结构 239
11.7 共用体 240
本章要点 242
习题11 243
第12章 文件 245
12.1 文件和文件指针 245
12.1.1 文件的概念 245
12.1.2 文件操作的基本过程 246
12.1.3 文件的结构体指针 247
12.2 文件的打开和关闭 247
12.2.1 文件打开函数fopen() 247
12.2.2 文件关闭函数fclose() 249
12.3 C语言处理的文件类型 249
12.4 文件操作 250
12.4.1 文件记录指针的顺序定位操作 250
12.4.2 文件记录指针的随机定位操作 253
本章要点 256
习题12 256
第13章 C语言的预处理命令和位运算 258
13.1 C语言的预处理命令 258
13.1.1 #define 258
13.1.2 #include 260
13.1.3 #error 261
13.1.4 条件编译预处理命令#if、#else、#endif 261
13.1.5 #ifdef 262
13.1.6 #ifndef 263
13.1.7 #undef命令 263
13.2 位运算 264
13.2.1 正负整型数在计算机内的表示方法 264
13.2.2 位运算符及表达式 264
本章要点 266
习题13 266
附录 267
附录1 字符与ASCII对照表 267
附录2 运算符优先级与结合性 268
附录3 C语言的语法规则提要 268
附录4 常用库函数 273
参考文献 276