第1章 C语言概述 1
1.1C语言的发展过程和特点 1
1.1.1C语言的产生与发展 1
1.1.2C语言的特点 1
1.2C语言的程序组成 2
1.2.1几个简单的C语言程序实例 2
1.2.2C语言程序的结构特点 4
1.2.3C语言程序的书写风格 4
1.3C语言程序上机步骤 4
本章小结 6
习题 6
实训 7
第2章 基本数据类型、运算符与表达式 11
2.1C语言数据类型概述 11
2.2标识符、常量和变量 12
2.2.1标识符 12
2.2.2常量和符号常量 12
2.2.3变量 13
2.3整型数据 13
2.3.1整型数据的分类 13
2.3.2整型常量的表示 13
2.3.3整型变量的定义和初始化 14
2.3.4整型数据在内存中的存储形式 14
2.4实型数据 15
2.4.1实型数据的分类 15
2.4.2实型常量的表示 15
2.4.3实型变量的定义和初始化 15
2.4.4实型数据在内存中的存储形式 16
2.5字符型数据 16
2.5.1字符型常量的表示 16
2.5.2字符串常量 17
2.5.3字符型变量定义和初始化 17
2.5.4字符型数据在内存中的存储形式 18
2.5.5字符型数据与整型数据的关系 18
2.6不同类型数据间的转换 19
2.6.1隐式类型转换 19
2.6.2显式类型转换(强制转换) 20
2.7运算符和表达式 20
2.7.1C语言运算符简介 21
2.7.2算术运算符和算术表达式 21
2.7.3赋值运算符和赋值表达式 22
2.7.4逗号运算符和逗号表达式 22
本章小结 23
习题 23
实训 25
第3章 顺序结构程序设计 27
3.1C语言语句概述 27
3.2C语言赋值语句 28
3.3数据输入输出的概念及在C语言中的实现 29
3.4字符数据的输入输出 29
3.4.1putchar函数(字符输出函数) 29
3.4.2getchar函数(字符输入函数) 30
3.5格式输入输出 31
3.5.1printf函数(格式输出函数) 31
3.5.2scanf函数(格式输入函数) 36
3.6顺序结构程序设计举例 39
本章小结 40
习题 40
实训 42
第4章 选择结构程序设计 44
4.1关系运算和逻辑运算 44
4.1.1关系运算符和关系表达式 44
4.1.2逻辑运算符和逻辑表达式 45
4.2if语句 46
4.2.1if语句的一般形式 46
4.2.2if语句的嵌套 48
4.3条件表达式构成的选择结构 49
4.4switch语句 50
4.5程序举例 51
本章小结 53
习题 53
实训 54
第5章 循环控制 55
5.1概述 55
5.2goto语句以及用goto语句构成循环 55
5.3while语句 56
5.4do-while语句 57
5.5for语句 58
5.6循环的嵌套 60
5.7控制语句 61
5.8程序举例 61
本章小结 62
习题 63
实训 64
第6章 数组 66
6.1引言 66
6.2一维数组 66
6.2.1一维数组的定义 67
6.2.2一维数组的引用 68
6.2.3一维数组的初始化 69
6.2.4一维数组程序举例 69
6.3二维数组 70
6.3.1二维数组的定义 70
6.3.2二维数组元素的引用 71
6.3.3二维数组的初始化 72
6.3.4二维数组的初始化程序举例 72
6.4字符数组与字符串 73
6.4.1字符数组的定义 73
6.4.2字符数组的初始化 74
6.4.3字符数组元素的引用 74
6.4.4字符串 75
6.4.5字符串的引用和输入输出 75
6.4.6字符串常用处理函数 76
6.4.7字符数组应用举例 77
本章小结 79
习题 79
实训 79
第7章 函数 82
7.1概述 82
7.1.1模块化程序设计 82
7.1.2函数的分类 84
7.2函数的定义 85
7.3函数参数和函数的值 86
7.3.1形式参数和实际参数 88
7.3.2函数的返回值 89
7.4函数的调用 89
7.4.1函数调用的形式 90
7.4.2函数调用的方式 90
7.4.3函数的说明 90
7.5函数的嵌套调用和递归调用 91
7.5.1函数的嵌套调用 91
7.5.2函数的递归调用 92
7.6数组作为函数参数 95
7.6.1数组元素作函数实参 95
7.6.2数组名作函数参数 96
7.7变量的作用域和类型 99
7.7.1变量的作用域 99
7.7.2局部变量 100
7.7.3全局变量 100
7.8变量的存储类别 102
7.8.1动态存储方式与静态存储方式 102
7.8.2auto变量 102
7.8.3static变量 103
7.8.4register变量 104
7.8.5用extern声明外部变量 104
7.8.6关于变量的声明与定义 104
7.8.7变量属性小结 105
7.9内部函数和外部函数 105
7.9.1内部函数 106
7.9.2外部函数 106
7.10如何运行一个多文件的程序 107
本章小结 107
习题 108
实训 109
第8章 编译预处理 113
8.1引言 113
8.2宏定义 114
8.2.1不带参数的宏定义 114
8.2.2带参数的宏定义 115
8.2.3带参数的宏与函数的区别 116
8.3文件包含 116
8.4条件编译 119
本章小结 120
习题 121
实训 123
第9章 指针 126
9.1引言 126
9.2地址和指针的概念 126
9.3变量的指针和指向变量的指针变量 127
9.3.1指针变量的定义和初始化 127
9.3.2指针变量的引用 128
9.3.3指针变量作函数参数 130
9.4指针与数组 132
9.4.1指向数组元素的指针 133
9.4.2通过指针引用数组元素 133
9.4.3指针的运算 134
9.4.4数组名作函数参数 136
9.4.5指针与二维数组 141
9.5指针与字符串 145
9.5.1字符串的表示形式 146
9.5.2字符串指针作函数参数 147
9.5.3对字符指针变量与字符数组的讨论 148
9.6指针与函数 149
9.6.1指针函数 149
9.6.2用函数指针变量调用函数 151
9.6.3用指向函数的指针作函数参数 152
9.7指针数组与多级指针 153
9.7.1指针数组 154
9.7.2多级指针 155
9.7.3指针数组作main函数的形参 157
9.8void指针类型 157
本章小结 157
习题 158
实训 163
第10章 结构体与共用体 166
10.1结构体类型的声明和结构体变量的定义 166
10.1.1结构体的概念 166
10.1.2结构体类型的说明 167
10.1.3结构体变量的定义 168
10.2结构体变量的引用 171
10.3结构体变量的初始化 172
10.4结构体数组 174
10.4.1结构体数组的定义 174
10.4.2结构体数组的初始化和引用 176
10.4.3结构体数组的引用举例 176
10.5结构体指针 177
10.5.1指向结构体变量的指针 177
10.5.2指向结构体数组的指针 179
10.6结构体和函数 180
10.6.1值传递——用结构体变量的成员作函数参数 181
10.6.2多值传递——用结构体变量作函数参数 181
10.6.3地址传递——用结构体指针(或结构体数组)作函数参数 182
10.7用指针处理链表 185
10.7.1链表概述 185
10.7.2建立简单链表 186
10.8共用体 188
10.8.1共用体的概念 188
10.8.2共用体类型的声明和共用体变量的定义 188
10.8.3共用体变量引用 189
10.9用typedef定义类型 192
10.9.1用typedef定义类型的一般形式 192
10.9.2用typedef定义类型时应注意的事项 193
本章小结 193
习题 194
实训 196
第11章 位运算 198
11.1概述 198
11.2位运算符和位运算 198
11.2.1“按位与”运算符 198
11.2.2“按位或”运算符 199
11.2.3“异或”运算符 200
11.2.4“取反”运算符 200
11.2.5左移运算符 201
11.2.6右移运算符 201
11.2.7位运算赋值运算符 202
11.2.8不同长度的数据进行位运算 202
11.3位运算举例 202
本章小结 203
习题 203
实训 204
第12章 文件 207
12.1C语言文件概述 207
12.1.1文件的概念 207
12.1.2缓冲文件系统和非缓冲文件系统 207
12.2文件类型指针 208
12.3文件的打开和关闭 209
12.3.1文件的打开(fopen函数) 209
12.3.2文件的关闭(fclose函数) 210
12.4文件的读写 210
12.4.1文件的字符输入输出函数(fgee函数和fputc函数) 211
12.4.2文件的格式化输入输出函数(fscanf函数和fprintf函数) 212
12.4.3二进制文件的输入输出函数 213
12.4.4其他读写函数 214
12.5文件的定位、测试与随机读写 215
12.5.1rewind函数 215
12.5.2fseek函数和随机读写 215
12.5.3ftell函数 217
12.6检错与处理 217
12.6.1ferror函数 217
12.6.2clearerr函数 218
12.6.3exit函数 218
12.7程序举例 218
本章小结 221
习题 221
实训 223
附录 227
附录A 常用字符与ASCⅡ代码对照表 227
附录B C语言中的关键字 228
附录C 运算符和结合性 228
附录D C语言常用语法提要 229
附录E 库函数 233
试卷 239
C语言程序设计试卷一 239
C语言程序设计试卷二 241
参考文献 246