第1章 概论 1
1.1 程序设计与程序设计语言 1
1.1.1 程序与程序设计 1
1.1.2 程序设计语言 1
1.2 C语言概况 2
1.2.1 C语言发展史 3
1.2.2 C语言程序设计的初步知识 3
1.2.3 C语言的特点 4
1.3 C程序的开发与运行 5
习题 6
第2章 数据类型、运算符与表达式 8
2.1 常量、变量和标识符 8
2.1.1 常量 8
2.1.2 变量 8
2.1.3 标识符 9
2.2 基本数据类型及其变量、常量 10
2.2.1 整型数据 11
2.2.2 浮点型数据 11
2.2.3 字符型数据 12
2.2.4 变量的初始化 13
2.2.5 求数据类型字节数 13
2.2.6 类型别名 13
2.3 运算符及其表达式 14
2.3.1 运算符 14
2.3.2 表达式 15
2.4 赋值运算符、算术运算符及其表达式 15
2.4.1 赋值运算符、复合的赋值运算符及其表达式 15
2.4.2 算术表达式 16
2.4.3 增1、减1运算符及其表达式 16
2.5 逗号运算符 17
2.6 位运算 17
2.6.1 逻辑位运算符 18
2.6.2 移位运算符 19
习题 20
第3章 数据的输入和输出 21
3.1 整型、浮点型数据的输出和输入 21
3.1.1 数据的输出和输入 21
3.1.2 整型数据的输出 23
3.1.3 浮点型数据的输出和输入 24
3.1.4 不同数据类型数据之间的转换 25
3.2 字符型数据 26
3.2.1 字符型数据的输出 26
3.2.2 字符型数据的输入 27
3.3 C语言语句 27
3.3.1 简单语句 28
3.3.2 复合语句 29
3.3.3 控制语句 29
习题 30
第4章 C语言的程序结构 31
4.1 C语言的结构 31
4.2 关系运算和逻辑运算 32
4.2.1 关系运算符和关系表达式 32
4.2.2 逻辑运算符和逻辑表达式 32
4.3 分支选择结构 33
4.3.1 if-else选择语句 33
4.3.2 条件运算符 36
4.3.3 switch语句 37
4.4 循环结构 39
4.4.1 if-goto实现循环功能 39
4.4.2 while语句与do-while语句 40
4.4.3 for循环语句 42
4.4.4 循环的嵌套 43
4.5 break语句和continue语句 43
4.5.1 break语句 43
4.5.2 continue语句 44
4.5.3 break语句与continue语句的比较 44
4.6 程序设计举例 44
习题 46
第5章 数组 48
5.1 一维数组 48
5.1.1 一维数组的定义 48
5.1.2 一维数组的引用 49
5.1.3 一维数组的初始化 50
5.2 字符数组与字符串 51
5.2.1 字符数组的定义和引用 51
5.2.2 字符数组的初始化 52
5.2.3 字符数组的输入与输出 53
5.2.4 字符串处理函数 54
5.3 二维数组 57
5.3.1 二维数组的定义和引用 57
5.3.2 二维数组的初始化 58
5.3.3 二维字符数组 59
5.4 程序设计举例 59
习题 61
第6章 函数 64
6.1 函数概述 64
6.1.1 函数的概念 64
6.1.2 函数类型说明与函数返回值 67
6.1.3 对被调用函数的声明 68
6.2 函数编写实例 68
6.3 函数调用和参数传递 69
6.3.1 函数的形参 69
6.3.2 函数调用 70
6.3.3 函数参数传递 70
6.4 函数的嵌套调用和递归调用 72
6.4.1 函数的嵌套调用 72
6.4.2 函数的递归调用 73
6.5 局部变量与全局变量 74
6.5.1 局部变量 75
6.5.2 全局变量 75
6.6 变量的存储类型 77
6.6.1 静态存储变量 78
6.6.2 动态存储变量 79
6.6.3 存储类型小结 80
6.7 程序设计举例 81
习题 82
第7章 编译预处理 85
7.1 宏定义 85
7.1.1 符号常量宏定义 85
7.1.2 带参数的宏定义 86
7.1.3 宏定义的解除 88
7.2 文件包含 89
7.2.1 文件包含的格式 89
7.2.2 文件包含的作用 90
7.2.3 文件包含的嵌套 91
7.3 条件编译 91
7.3.1 #if...#else...#endif命令 92
7.3.2 #ifdef...#else...#endif命令 92
7.3.3 #ifndef...#else...#endif命令 93
7.3.4 条件编译的作用 93
7.4 应用举例 94
习题 95
第8章 指针 96
8.1 概述 96
8.1.1 地址与指针 96
8.1.2 直接访问和间接访问 96
8.1.3 指针运算符 97
8.2 指针变量的定义和运算 97
8.2.1 指针变量的定义和初始化 97
8.2.2 指针变量的引用 98
8.2.3 指针变量的运算 98
8.2.4 指针变量的应用 99
8.3 指针与数组 100
8.3.1 一维数组的地址与指针变量 100
8.3.2 二维数组的地址与指针变量 101
8.3.3 二维数组与二级指针 102
8.4 指针变量作为函数参数 103
8.4.1 指向变量的指针变量作为函数参数 104
8.4.2 指向数组的指针变量作为函数参数 104
8.5 字符型指针与字符串 107
8.6 指向函数的指针 108
习题 110
第9章 结构体和共用体 115
9.1 结构体类型及其变量 115
9.1.1 结构体类型及其变量的定义 115
9.1.2 结构体变量的引用和初始化 116
9.2 结构体数组 118
9.3 结构体与指针 119
9.3.1 指向结构体类型变量的指针 119
9.3.2 指向结构体数组的指针 121
9.4 指针与链表 122
9.4.1 链表的建立和输出 122
9.4.2 对链表的插入操作 124
9.4.3 对链表的删除操作 125
9.5 共用体 129
9.5.1 共用体的定义 129
9.5.2 共用体变量的定义与引用 129
9.6 枚举 131
9.6.1 枚举变量的定义 131
9.6.2 枚举变量的应用 132
9.7 程序设计举例 132
习题 133
第10章 文件 138
10.1 C语言文件概述 138
10.2 文件类型指针 139
10.3 文件的打开与关闭 139
10.3.1 文件的打开(fopen()函数) 139
10.3.2 文件的关闭(fclose()函数) 141
10.4 文件的读与写 142
10.4.1 字符读写函数(fputc()、fgetc()、putc()、getc()) 142
10.4.2 字符串读写函数(fgets()和fputs()) 143
10.4.3 格式读写函数(fscanf()和fprintf()) 145
10.4.4 数据块读写函数(fread()和fwrite()) 146
10.5 文件的定位 147
10.6 文件的错误检测 149
10.7 程序设计举例 149
习题 153
第11章 C语言上机指导 156
11.1 Turbo C的安装 156
11.2 使用Turbo C的上机步骤 156
11.2.1 使用Turbo C 157
11.2.2 常见的编译出错信息 164
11.3 上机实验内容 164
11.3.1 上机实验总的目的和要求 164
11.3.2 实验部分 165
实验一 C语言程序的运行环境和运行一个C语言程序的方法 165
实验二 数据类型、运算符和表达式 165
实验三 简单的C语言程序设计 167
实验四 逻辑运算和判断选择控制 167
实验五 循环控制 168
实验六 数组 168
实验七 函数 169
实验八 编译预处理 170
实验九 指针 170
实验十 结构体和共用体 171
实验十一 文件 173
附录1 常用字符与ASCII代码表 174
附录2 C语言的关键字及其用途 175
附录3 C语言运算符的优先级和结合方向 176
附录4 C库函数 177
附录5 Turbo C编译错误信息 182
参考文献 185