第1章 C语言概述 1
1.1 C语言程序的结构 1
1.2 Turbo C中运行C程序的步骤 2
1.3 C语言的特点 9
习题 10
第2章 数据类型及其运算 11
2.1 C语言中的数据类型 11
2.1.1 数据和数据类型 11
2.1.2 数据在计算机中的存放形式 12
2.1.3 基本数据类型的表示和取值范围 13
2.2.1 标识符 14
2.2 标识符和常量 14
2.2.2 常量 15
2.3 变量及其初始化 17
2.3.1 变量及其定义 17
2.3.2 几种常用的变量 18
2.3.3 变量的赋值和初始化 20
2.4 算术运算符与算术表达式 21
2.4.1 运算符与表达式简介 21
2.4.2 算术运算符和算术表达式特点及使用 22
2.4.3 数据类型的运算转换 25
2.4.4 数据类型的强制转换 26
2.5.1 普通赋值运算符和赋值表达式 27
2.5 赋值运算符和赋值表达式 27
2.5.2 自增、自减运算符及其表达式 29
2.6 逗号运算符和逗号表达式 30
2.6.1 逗号运算符 30
2.6.2 逗号运算表达式 30
习题 31
第3章 C程序设计初步 33
3.1 C语言基本语句简介 33
3.1.1 概述 33
3.1.2 C语句的分类 34
3.2.1 putchar函数(字符输出函数) 36
3.2 数据输出函数 36
3.2.2 printf函数(格式输出函数) 38
3.3 数据输入函数 48
3.3.1 getchar函数(字符输入函数) 49
3.3.2 scanf函数(格式输入函数) 49
3.4 顺序结构程序设计举例 58
习题 61
第4章 顺序结构程序设计 63
4.1 结构化程序设计的原则和特点 63
4.2 3种基本的控制结构 64
4.3 程序设计的描述工具 64
4.4 顺序结构 65
习题 67
第5章 分支结构及实现 68
5.1 关系表达式和逻辑表达式 68
5.1.1 逻辑值 68
5.1.2 关系运算符和关系表达式 68
5.1.3 逻辑运算符和逻辑表达式 69
5.2 简单的if条件语句 70
5.3 二选一分支结构 70
5.3.1 二选一分支结构的定义 70
5.3.2 实现二选一分支结构的if-else语句 71
5.4.2 实现多分支结构的switch-case语句 73
5.4 多分支结构 73
5.4.1 多分支结构的定义 73
5.5 应用举例 75
习题 78
第6章 循环结构及实现 79
6.1 循环结构概述 79
6.2 先判断型循环结构 80
6.2.1 while语句的一般形式 80
6.2.2 执行过程 81
6.2.3 先判断型循环结构的举例 81
6.3.1 后判断型循环结构的定义 82
6.3 后判断型循环结构 82
6.3.2 do-while语句的一般形式 83
6.3.3 执行过程 83
6.3.4 do-while和while的比较 83
6.4 已知循环次数的循环结构和for语句 83
6.5 break语句、continue语句和goto语句 84
6.6 循环的嵌套 85
6.7 应用举例 86
习题 89
第7章 结构化程序设计的制定和C语言函数 90
7.1 自顶而下逐步求精的程序设计方法 90
7.3 函数的定义方法 91
7.2 函数的概念 91
7.4 返回值 92
7.5 函数调用 92
7.5.1 函数调用的一般形式 93
7.5.2 函数调用的具体方法 93
7.5.3 函数调用的语法规则 94
7.5.4 程序的执行过程 95
7.5.5 函数调用过程分析 95
7.5.6 函数的递归调用 96
7.6 函数举例 97
7.7.2 全局变量 100
7.7 局部变量和全局变量 100
7.7.1 局部变量 100
7.8 C语言的库函数 101
7.9 应用举例 102
习题 103
第8章 数组 105
8.1 数组的概念 105
8.2 一维数组 106
8.2.1 一维数组的定义 106
8.2.2 一维数组元素的引用 106
8.2.3 一维数组元素的初始化 108
8.3.1 排序 109
8.3 排序和查找 109
8.3.2 查找 111
8.4 二维数组 112
8.4.1 二维数组的定义 113
8.4.2 二维数组元素的引用 113
8.4.3 二维数组的初始化 114
8.5 字符数组和字符串 116
8.5.1 字符数组的定义 116
8.5.2 字符数组的初始化 117
8.5.3 字符串的输入和输出 118
8.5.4 字符串处理函数 120
习题 124
第9章 指针 126
9.1 指针的概念 126
9.2 指针变量 127
9.2.1 指针变量的概念 127
9.2.2 指针变量的引用 128
9.2.3 指针变量作函数参数 130
9.3 数组的指针和指向数组的指针变量 132
9.3.1 指向数组的指针变量的定义和赋值 132
9.3.2 通过数组指针引用数组元素 133
9.3.3 数组名作函数参数 135
9.4 字符串的指针和指向字符串的指针变量 139
9.4.1 字符串的指针和指向字符串的指针变量 140
9.4.2 指针数组 141
9.5 应用举例 143
习题 144
第10章 结构体与共用体 147
10.1 结构体类型的声明 147
10.2 结构体变量的定义 148
10.3 结构体变量的引用 151
10.4 结构体变量的初始化 152
10.5.1 结构体中包含数组成员 153
10.5 结构体与数组 153
10.5.2 结构体数组 154
10.6 指向结构体类型数据的指针 156
10.6.1 指向结构体变量的指针 157
10.6.2 指向结构体数组的指针 158
10.7 结构体和函数 159
10.7.1 结构体变量作为函数参数 159
10.7.2 结构体变量的成员作为函数参数 160
10.7.3 函数的返回值是结构体变量 160
10.7.4 指向结构体的指针作为参数或函数值 162
10.8.1 共用体定义 163
10.8 共用体 163
10.8.2 共用体与结构体的区别 164
习题 166
第11章 位运算 168
11.1 位运算符 168
11.1.1 数值在计算机中的表示 168
11.1.2 位运算及其运算符 169
11.2 位运算举例 171
11.3 位段 173
11.4 位段应用举例 174
习题 175
12.1.1 文件的概念 176
第12章 文件 176
12.1 文件的概念和基本操作过程 176
12.1.2 文件的基本操作过程 177
12.2 文件的打开与关闭 177
12.2.1 文件的打开——fopen()函数 177
12.2.2 文件的关闭——fcolse()函数 179
12.3 文件的读写 179
12.3.1 读/写文件中的一个字符 180
12.3.2 读/写一个字符串 181
12.3.3 读/写一个数据块 182
12.3.4 对文件进行格式化读写 184
12.4.2 随机定位函数fseek() 185
12.4 文件的随机定位 185
12.4.1 位置指针复位函数rewind() 185
12.4.3 返回文件当前位置的函数ftell() 186
12.5 获取和清除文件读写错 186
12.5.1 ferror()函数 186
12.5.2 clearerr()函数 186
12.6 应用举例 187
习题 189
附录A ASCII码表 190
附录B 常用的ANSI C库函数 191
参考文献 195