目录 1
第1章 C语言概述 1
1.1 C语言的产生过程及特点 1
1.1.1 C语言的产生过程 1
1.1.2 C语言的特点 2
1.2 IBM—PC微型机所用的C语言 3
1.3 C语言程序的结构及书写格式 3
1.3.1 C语言程序的结构 3
1.3.2 C语言程序的书写格式 4
1.4 C语言程序的开发过程 5
1.4.1 编辑源程序 5
1.4.2 编译源文件 6
1.4.3 连接目标文件及库文件 6
1.4.4 运行程序 6
习题1 6
2.1.2 注意事项 8
2.1.1 标识符的构成规则 8
2.1 标识符命名 8
第2章 常量与变量 8
2.2 基本数据类型 9
2.2.1 C语言的数据类型 9
2.2.2 基本类型数据的宽度及范围 9
2.2.3 基本类型修饰符 10
2.3 常量 11
2.3.1 数值常量 11
2.3.2 字符常量 12
2.3.3 转义字符常量 13
2.3.4 字符串常量 13
2.3.5 符号常量 14
2.4 变量 15
2.4.1 变量的说明 15
2.4.2 变量的初始化 16
习题2 17
3.1.2 单项算术运算符 19
3.1.1 二项算术运算符 19
3.1 算术运算符 19
第3章 运算符与表达式 19
3.2 关系运算符与逻辑运算符 20
3.2.1 关系运算符 20
3.2.2 逻辑运算符 21
3.2.3 逻辑值 21
3.3 字位运算符 22
3.3.1 字位逻辑运算符 22
3.3.2 移位运算符 24
3.3.3 反码运算符 25
3.4 赋值运算符 26
3.4.1 赋值运算符(=) 26
3.4.2 算术赋值运算符 27
3.4.3 位操作赋值运算符 27
3.5 其他运算符 28
3.5.1 三项条件运算符(?:) 28
3.5.2 逗号(,)运算符 28
3.6 运算符的优先级 29
3.5.6 圆括号()和方括号[]运算符 29
3.5.3 指针运算符 29
3.5.5 引用结构成员运算符(·和->) 29
3.5.4 编译时运算符sizeof 29
3.7 表达式 30
3.7.1 表达式中的类型转换 30
3.7.2 强制类型转换符 31
3.7.3 使用括号改变运算次序 31
3.7.4 使用空格和括号增加可读性 32
3.8 常用数学标准函数 32
3.8.1 算术函数 32
3.8.2 三角函数 32
3.8.3 绝对值函数 32
3.8.4 随机数函数 32
习题3 33
4.1 赋值语句 34
4.1.1 赋值语句的格式与功能 34
第4章 顺序结构程序设计 34
4.1.2 赋值语句中的类型转换 35
4.2 字符I/O函数 36
4.2.1 字符输入函数getchar() 36
4.2.2 字符输出函数putchar() 36
4.3 格式化I/O函数 37
4.3.1 格式化输出函数printf() 37
4.3.2 格式化输入函数scanf() 41
4.4 顺序结构程序举例 43
习题4 45
第5章 选择结构程序设计 46
5.1 条件语句 46
5.1.1 if~else选择 46
5.1.2 if选择 47
5.2 复合语句 48
5.3.1 嵌套条件语句的形式 49
5.3 嵌套的条件语句 49
5.3.2 elseif结构的嵌套条件语句 51
5.4 用运算符?:替代条件语句 52
5.5 开关语句与多路选择 53
5.5.1 开关语句 53
5.5.2 多路选择程序举例 55
习题5 58
6.1.1 while循环语句 59
6.1 while型循环 59
第6章 循环结构程序设计 59
6.1.2 while型循环程序 60
6.2 for型循环 63
6.2.1 for循环语句 63
6.2.2 for型循环程序 65
6.3 do~while型循环 67
6.3.1 do~while循环语句 67
6.3.2 do~while型循环程序 68
6.4 多重循环 69
6.5.1 break语句 71
6.5 循环的中途退出 71
6.5.2 continue语句 72
6.5.3 goto语句及标号 73
习题6 75
第7章 数组 77
7.1 一维数组说明及初始化 77
7.1.1 一维数组的说明 77
7.1.2 一维数组的初始化 78
7.2.2 字符型数组的初始化 81
7.2.1 使用字符型数组存储字符串 81
7.2 字符型数组与字符串 81
7.3 字符串I/O函数 83
7.3.1 字符串输入函数gets() 83
7.3.2 字符串输出函数puts() 84
7.4 二维数组与双下标变量 85
7.4.1 二维数组的说明 85
7.4.2 双下标变量 86
7.4.3 二维数组的初始化 86
7.5.2 字符串数组的初始化 87
7.5 二维字符型数组与多个字符串 87
7.5.1 字符串数组 87
习题7 88
第8章 指针 90
8.1 指针运算符 及 90
8.1.1 指针运算符 90
8.2 指针的说明及初始化 91
8.2.1 指针的说明 91
8.1.3 与*互为逆运算 91
8.1.2 指针运算符 91
8.2.2 指针的初始化 92
8.2.3 指针的特殊值 93
8.3 指针运算表达式 93
8.3.1 指针的算术运算表达式 93
8.3.2 指针的关系运算表达式 94
8.3.3 指针的赋值运算表达式 94
8.3.4 指针运算表达式的应用举例 95
8.4.1 两种方法访问数组 96
8.4 指针与数组 96
8.4.2 指针与数组表现形式的互换性 97
8.5 字符型指针与字符串 99
8.5.1 使用字符型指针处理字符串 99
8.5.2 用字符串常量初始化字符型指针 100
8.5.3 不要使用无指向的指针 101
8.6 指针数组 103
8.6.1 指针数组的说明 103
8.6.2 指针数组的初始化 103
8.6.3 指针数组与二维数组 104
8.6.4 指针数组与多个字符串 105
8.7 指向数组的指针 106
8.7.1 数组指针的说明 106
8.7.2 数组指针的用法 107
8.8 指向指针的指针 108
8.8.1 二级指针的说明 108
8.8.2 二级指针的用法 108
习题8 109
9.1 C语言函数的基本概念 111
第9章 函数结构程序设计 111
9.2 函数定义 112
9.2.1 函数定义的一般形式 112
9.2.2 从函数中返回 113
9.3 函数说明及函数调用 115
9.3.1 函数说明 115
9.3.2 函数调用 116
9.4 函数参数的传送方式 116
9.4.1 参数的传值传送方式 117
9.4.2 参数的传址传送方式 117
9.5 函数返值的传送 119
9.5.1 使用return语句传送返值 119
9.5.2 使用传址参数传送返值 120
9.6 数组参数的传送 121
9.6.1 向函数传送一维数组 121
9.6.2 向函数传送二维数组 122
9.7.1 向函数传送一个字符串 124
9.7 字符串参数的传送 124
9.7.2 向函数传送多个字符串 125
9.8 局部变量与全局变量 126
9.8.1 局部变量 126
9.8.2 全局变量 128
9.9 变量的存储类型及其寿命与可见性 130
9.9.1 变量的存储类型 130
9.9.2 变量的寿命与可见性 131
9.9.3 存储类型与变量的初始化 131
9.10.1 指针型函数定义 133
9.10 指针型函数 133
9.10.2 返值为全局变量地址 134
9.10.3 返值为static型的内部变量地址 134
9.10.4 返值为调用函数内局部变量地址 136
9.11 指向函数的指针 137
9.11.1 函数指针的说明 137
9.11.2 向函数传送函数参数 138
9.12.1 嵌套调用 140
9.12 嵌套调用及递归调用 140
9.12.2 递归调用 141
9.13 带参数的main()和命令行参数 144
9.13.1 命令行的一般格式 144
9.13.2 带参数的main() 144
9.14 编译预处理命令 146
9.14.1 #define命令 146
9.14.2 #include命令 147
9.14.3 条件编译命令 148
习题9 150
第10章 结构与联合 152
10.1 结构定义及结构变量 152
10.1.1 结构定义 152
10.1.2 结构变量的说明 153
10.1.3 结构变量成员的访问 154
10.1.4 结构变量的初始化 154
10.2.1 结构数组的说明及初始化 156
10.2 结构数组 156
10.2.2 结构数组的应用 157
10.3 结构指针 160
10.3.1 结构指针的说明及初始化 160
10.3.2 结构指针目标成员的访问 161
10.4 结构及结构成员在函数间的传送 163
10.4.1 向函数传送结构成员 163
10.4.2 向函数传送完整结构 165
10.5.1 结构成员数组 167
10.5 结构成员数组及成员结构 167
10.5.2 结构成员结构 169
10.6 动态分配内存与链表 171
10.6.1 C语言的动态存储管理系统 171
10.6.2 malloc()及free()函数 171
10.6.3 链表的概念 173
10.6.4 栈式链表的建立及遍历 174
10.6.5 队列链表的建立及遍历 177
10.7.1 联合的定义及变量说明 178
10.7 联合 178
10.7.2 联合成员的访问 179
10.7.3 联合在函数间的传送 181
10.8 类型定义 182
习题10 183
第11章 文件及其I/O函数 184
11.1 C语言文件的概念 184
11.1.1 磁盘文件 184
11.1.2 设备文件及标准设备文件 184
11.1.3 文件I/O系统 185
11.1.4 文件控制结构 185
11.1.5 文件型指针 185
11.2 fopen()及fclose()函数 186
11.2.1 打开文件函数fopen() 186
11.2.2 关闭文件函数fclose() 187
11.3 putc()及getc()函数 188
11.3.1 文件的字符输出函数putc() 188
11.3.2 文件的字符输入函数getc() 189
11.4 feof()、ferror()、rewind()及clearerr()函数 191
11.4.1 测试文件结束函数feof() 191
11.4.2 ferror()、clearerr()及rewind()函数 192
11.5 fgets()及fputs()函数 194
11.5.1 文件的字符串输入函数fgets() 194
11.5.2 文件的字符串输出函数fputs() 196
11.6 fread()及fwrite()函数 197
11.6.1 读数据块函数fread() 197
11.6.2 写数据块函数fwrite() 198
11.7 fprintf()及fscanf()函数 199
11.7.1 文件的格式化输出函数fprintf() 199
11.7.2 文件的格式化输入函数fscanf() 199
11.8 设备文件的I/O 200
11.8.1 设备文件的I/O处理 200
11.8.2 标准设备文件的I/O处理 201
11.8.3 控制台I/O函数 201
11.8.4 标准设备文件的重定向 202
习题11 203
附录ATurboC程序在集成环境中的开发 204
A.1 TurboC集成开发环境 204
A.1.1 基本导航操作 204
A.1.2 TurboC的“热健” 205
A.1.3 菜单中的命令、开关及命名约定 205
A.1.5 快速参考行 206
A.1.6编辑窗口 206
A.1.4 主菜单 206
A.1.7信息窗口 208
A.2TurboC程序的开发过程 209
A.2.1建立第一个TurboC程序 209
A.2.2修改第一个TurboC程序 210
A.2.3建立第二个TurboC程序 211
附录BC语言关键字 213
附录C常用字符与ASCⅡ代码对照表 214
主要参考资料 215