目录 1
第1章 C语言概述 1
1.1 C语言出现的历史背景及特点 1
1.1.1 C语言的发展历史 1
1.1.2 C语言的特点 2
习题 1 2
1.2 简单的C程序介绍 3
1.3 C程序的上机步骤 6
1.3.1 进入和退出Tubro C 2.0 6
1.3.2 编辑源程序文件 8
1.3.3 编译和运行程序 9
2.1 C语言的数据类型 13
第2章 数据类型、运算符与表达式 13
2.2 常量与变量 15
2.2.1 常量 15
2.2.2 变量 16
2.3 整型数据 19
2.3.1 整型常量 19
2.3.2 整型变量 20
2.4 实型数据 22
2.4.1 实型常量 23
2.4.2 实型变量 23
2.5 字符型数据 25
2.5.1 字符型常量 25
2.5.2 字符型变量 27
2.5.3 字符串常量 30
2.6 变量赋初值 31
2.7 各类数值型数据间的混合运算 32
2.8 算术运算符和算术表达式 33
2.8.1 算术运算符 33
2.8.2 算术表达式 34
2.8.3 自增、自减运算符 35
2.9 赋值运算符和赋值表达式 38
2.9.1 赋值运算符 38
2.9.2 赋值表达式 41
2.10 逗号运算符和逗号表达式 43
习题 44
3.1 C语句概述 47
第3章 顺序程序设计 47
3.2 程序的三种基本结构 48
3.2.1 顺序结构 49
3.2.2 选择结构 49
3.2.3 循环结构 50
3.3 字符数据的输入输出 50
3.3.1 putchar函数(字符输出函数) 51
3.3.2 getchar函数(键盘输入函数) 51
3.4 格式输入与输出 53
3.4.1 printf函数(格式输出函数) 53
3.4.2 scanf函数(格式输入函数) 57
3.5 顺序结构程序设计举例 63
习题 64
4.1.2 关系表达式 69
4.1.1 关系运算符 69
第4章 选择结构程序设计 69
4.1 关系运算符和关系表达式 69
4.2 逻辑运算符及逻辑表达式 71
4.2.1 逻辑运算符 71
4.2.2 逻辑表达式 72
4.3 if语句 74
4.3.1 if语句的形式 74
4.3.2 if语句的嵌套形式 76
4.3.3 条件运算符 81
4.4 switch语句 82
4.5 程序举例 86
习题 89
5.2 goto语句 93
第5章 循环结构程序设计 93
5.1 概述 93
5.3 while语句 94
5.4 do-while语句 96
5.5 for语句 98
5.5.1 for语句的一般形式 98
5.5.2 for语句的几种变化形式 100
5.6 循环的嵌套 103
5.7 break语句和continue语句 105
5.7.1 break语句 105
5.7.2 continue语句 107
5.8 程序举例 108
习题 109
6.1 概述 114
第6章 函数 114
6.2 函数定义的一般形式 116
6.3 函数参数和函数的值 118
6.3.1 函数参数 118
6.3.2 函数返回值 120
6.3.3 函数的类型声明 122
6.4 函数的调用 123
6.4.1 函数调用的一般形式 123
6.4.2 函数调用的方式 125
6.5 函数的嵌套调用 125
6.6 函数的递归调用 127
6.7 局部变量和全局变量 131
6.7.1 局部变量 131
6.7.2 全局变量 132
6.8 变量的存储类别 135
6.8.1 动态存储方式和静态存储方式 135
6.8.2 自动变量 136
6.8.3 寄存器变量 136
6.8.4 外部变量 137
6.8.5 内部静态变量和外部静态变量 139
6.8.6 变量的定义和声明 142
6.8.7 存储类别小结 143
6.9 内部函数和外部函数 145
6.9.1 内部函数 145
6.9.2 外部函数 145
6.10 多文件程序的运行 146
习题 147
7.1 宏定义 151
7.1.1 符号常量宏定义 151
第7章 预处理命令 151
7.1.2 带参数的宏定义 152
7.1.3 宏定义的解除 157
7.2 文件包含 157
7.3 条件编译 159
7.3.1 #if…#else…#endif命令 159
7.3.2 #ifdef…#else…#endif命令 160
7.3.3 #ifndef…#else…#endif命令 160
7.3.4 条件编译的作用 161
7.4 常用库函数的应用 162
习题 165
8.1.1 数据在内存中的存储 166
8.1 地址和指针的概念 166
第8章 指针 166
8.1.2 访问变量的两种方式 167
8.1.3 指针及指针变量 168
8.2 指针变量的定义和基本类型 168
8.2.1 指针变量的定义和赋值 168
8.2.2 指针变量的基本类型 170
8.3 指向变量的操作 170
8.3.1 指针变量的引用 170
8.3.2 指针运算 172
8.3.3 指针变量作为函数参数 173
8.4 函数的指针和指向函数的指针变量 175
8.4.1 用函数指针变量调用函数 175
8.4.2 用指向函数的指针作函数参数 176
8.4.4 void指针类型 177
8.4.3 返回指针值的函数 177
习题 178
第9章 数组 183
9.1 一维数组的定义和引用 183
9.1.1 一维数组的定义 183
9.1.2 一维数组的引用 184
9.1.3 一维数组的初始化 191
9.1.4 一维数组的应用 194
9.2 二维数组的定义和引用 198
9.2.1 二维数组的定义 198
9.2.2 二维数组的引用 199
9.2.3 二维数组的初始化 200
9.3 指针和数组 206
9.3.1 数组指针的定义与赋值 206
9.3.2 利用指针引用数组元素 207
9.3.3 指向多维数组的指针 208
9.4 字符串数组、字符串的指针及指向字符串的指针变量 212
9.4.1 字符数组的定义和初始化 212
9.4.2 字符串指针及指向字符串的指针变量 219
9.5 指针数组和指针的指针 220
9.5.1 指针数组 220
9.5.2 指向指针的指针 221
9.6 数组作为函数参数 223
9.6.1 用数组作为函数参数 223
9.6.2 指针数组作为main函数的形参 225
9.7 数组程序举例 226
习题 231
10.2.1 结构体类型的定义 235
10.2 结构体类型及结构体变量的定义 235
10.1 概述 235
第10章 结构体与共用体 235
10.2.2 结构体变量的定义 236
10.3 结构体变量的引用及初始化 239
10.3.1 结构体变量的引用 239
10.3.2 结构体的初始化 240
10.3.3 结构体的应用 241
10.4 结构体数组 242
10.4.1 结构体数组的定义 243
10.4.2 结构体数组的初始化 243
10.4.3 结构体数组的应用 244
10.5 指向结构体类型数据的指针 246
10.5.1 指向结构体变量的指针 246
10.5.2 指向结构体数组的指针 248
10.5.3 用结构体变量和指向结构体的指针作为函数参数 249
10.6 链表 251
10.6.1 链表概述 251
10.6.2 链表的建立 253
10.6.3 结点的删除与插入 257
10.7 共用体 260
10.7.1 共用体变量的定义 260
10.7.2 共用体变量的引用 261
10.8 枚举类型 263
10.9 用typedef定义类型 266
习题 268
第11章 位运算 271
11.1 位运算简介 271
11.1.1 按位运算符 272
11.1.2 移位运算符 275
11.1.3 位运算举例 277
11.2 位段简介 279
11.2.1 位段的概念与定义方法 279
11.2.2 位段的引用方法 281
习题 282
第12章 文件 284
12.1 C文件概述 284
12.2 文件类型指针 285
12.3 文件的打开与关闭 286
12.3.1 文件的打开(fopen函数) 286
12.4 文件的读写 288
12.4.1 fputc(putc)函数和fgetc(getc)函数 288
12.3.2 文件的关闭(fclose函数) 288
12.4.2 fread函数和fwrite函数 291
12.4.3 fprintf函数和fscanf函数 295
12.4.4 其他读写函数 296
12.5 文件定位与出错检查 296
12.5.1 文件定位 296
12.5.2 出错检测 298
12.6 文件输入输出小结 298
习题 299
附录A C语言中的关键字 301
附录B 运算符的优先级和结合性 302
附录C 库函数 303
附录D 实训 308
参考文献 332