绪论 1
0.1 计算机语言的发展 1
0.2 程序的编译和解释 2
0.3 程序设计的概念 2
0.3.1 算法及其表达 2
0.3.2 结构化程序设计 4
第一章 C语言概述 6
1.1 C语言的发展过程 6
1.2 C语言的特点 6
1.3 C源程序的结构 7
1.4 基本的输入与输出 9
1.5 C语言的上机步骤 10
1.6 实例 11
本章小结 12
习题一 12
第二章 基本数据类型和表达式 14
2.1 标识符和变量 14
2.1.1 标识符 14
2.1.2 变量 14
2.2 基本数据类型 15
2.3 常量 16
2.3.1 整型常量 16
2.3.3 单字符常量 17
2.3.4 字符串常量 17
2.3.2 实型常量 17
2.3.5 符号常量 18
2.4 表达式 18
2.4.1 算术运算符 18
2.4.2 关系运算符 19
2.4.3 逻辑运算符 19
2.4.4 自增自减运算符 20
2.4.5 赋值运算符 21
2.4.6 逗号运算符及表达式 22
2.4.7 条件运算符 22
2.4.8 位运算符 23
2.5 数据类型的转换 24
2.6 运算符的优先级和结合性 25
2.7 赋值语句 27
2.8 实例 28
本章小结 29
习题二 29
第三章 简单的C语言程序设计 35
3.1 语句概述 35
3.1.1 控制语句 35
3.1.2 函数调用语句 35
3.1.3 表达式语句 36
3.1.4 空语句 36
3.2 数据输出 36
3.2.1 字符输出函数putchar 36
3.2.2 格式输出函数printf 37
3.3 数据输入 41
3.3.1 字符输入函数getchar() 41
3.3.2 格式输入函数scanf 41
3.4 实例 43
本章小结 46
习题三 46
第四章 分支结构 51
4.1 分支程序设计 51
4.1.1 if语句 51
4.1.2 if语句嵌套 52
4.1.3 条件运算符的作用 54
4.2 switch语句 55
4.3 goto语句 56
4.4 实例 57
本章小结 59
习题四 60
第五章 循环控制 63
5.1 while语句 63
5.2 do-while语句 65
5.3 for语句 66
5.3.1 for语句的一般格式 66
5.3.2 条件表达式缺省的for语句 67
5.3.3 条件表达式中包含逗号运算符的for语句 67
5.4 三种循环语句的比较 67
5.5.1 break语句 68
5.5 break语句和continue语句 68
5.5.2 Continue语句 69
5.6 实例 70
本章小结 74
习题五 74
第六章 函数与变量类型 80
6.1 函数 80
6.1.1 概述 80
6.1.2 函数定义的一般形式 81
6.1.3 有关函数的说明 82
6.1.4 函数的调用形式 84
6.1.5 函数的递归调用 88
6.1.6 库函数简介 91
6.2 变量类型 92
6.2.1 自动型变量(局部变量) 92
6.2.2 外部型变量(全局变量) 93
6.2.3 静态型变量 95
6.2.4 寄存器变量 96
6.3 变量初始化 96
6.4 C预处理器 97
6.4.1 宏定义 97
6.4.2 文件包含 99
6.4.3 条件编译 100
6.5 实例 101
本章小结 103
习题六 104
第七章 数组 117
7.1 一维数组 117
7.2 二维数组 120
7.3 字符数组和字符串 122
7.3.1 字符数组的定义和初始化 122
7.3.2 字符串和字符串结束标志 123
7.3.3 字符数组的输入和输出 124
7.3.4 字符串处理函数 125
7.4 实例 126
本章小结 129
习题七 130
8.1 指针的概念 139
第八章 指针 139
8.2 指针和指针变量 140
8.2.1 指针变量定义 140
8.2.2 指针变量引用 140
8.2.3 指针作为函数参数引用 142
8.3 数组和指针 144
8.3.1 通过指针访问数组元素 144
8.3.2 数组作为函数参数 147
8.3.3 指向多维数组的指针和指针变量 151
8.4 字符串和指针 155
8.4.1 字符串的表达形式 155
8.4.2 字符串指针作函数参数 155
8.5.1 指针函数 157
8.5 函数与指针 157
8.5.2 函数指针 160
8.6 指针数组和指向指针的指针 163
8.6.1 指针数组 163
8.6.2 指向指针的指针 165
8.7 Turbo C的内存分配函数 166
本章小结 167
习题八 169
第九章 结构体与共用体 182
9.1 结构体的定义及其变量的初始化 182
9.1.1 结构体定义 182
9.1.2 结构体变量的初始化 184
9.2 结构体类型变量的引用 185
9.3 结构体数组 186
9.3.1 定义 186
9.3.2 结构体数组初始化 186
9.3.3 应用举例 187
9.4 指针和结构体 188
9.4.1 指向结构体变量的指针 188
9.4.2 指向结构体数组的指针 189
9.4.3 结构指针参数 189
9.5 用指针处理链表 190
9.5.1 链表 190
9.5.2 建立链表 191
9.5.3 链表输出 192
9.5.4 对链表中的元素进行删除 193
9.5.5 对链表插入结点 194
9.5.6 主函数 195
9.6 共用体(联合) 197
9.6.1 概念 197
9.6.2 引用方式 197
9.6.3 共用体的特点 198
9.7 枚举 198
9.8 用typedef定义类型 198
9.9 实例 199
习题九 202
本章小结 202
第十章 文件 208
10.1 文件概述 208
10.2 文件的处理 209
10.2.1 文件指针 209
10.2.2 文件的打开和关闭 209
10.2.3 文件的读和写 211
10.3 实例 218
本章小结 220
习题十 220
11.1.4 遗漏花括号 223
11.1.3 混淆赋值号(=)与比较符(==) 223
11.1.2 路径表示的错误 223
11.1 常见错误分析 223
第十一章 常见错误分析和程序调试 223
11.1.1 遗漏分号或分号位置错误 223
11.1.5 括号不配对 224
11.1.6 大小写字母的区别 224
11.1.7 忘记定义变量 224
11.1.8 错误使用指针 224
11.1.9 开关语句中忘记中断语句break 225
11.1.10 混淆字符和字符串的表示形式 226
11.1.11 自加(++)和自减(--)错误 226
11.1.12 地址传送失败 226
11.1.13 数组及数组下标 226
11.1.15 函数的使用 227
11.1.14 int型数据的数值范围 227
11.1.16 混淆数组名及指针变量区别 230
11.1.17 混淆结构体类型和结构体变量区别 231
11.1.18 使用文件时忘记打开文件或打开文件方式不对 231
11.2 错误的检出与分离 232
11.3 程序调试 233
附录A ASCII码表 234
附录B Turbo C 2.0常用库函数 235
附录C C语言中的关键字 244
附录D 运算符和结合性 244
附录E 全国计算机等级考试二级考试大纲(C语言) 247
附录F 1997年全国计算机等级考试C语言程序设计试题及答案 250
参考答案 260