第1章 程序设计和C语言 1
1.1 程序设计的基本概念 3
1.1.1 程序和程序设计 3
1.1.2 计算机语言 3
1.1.3 算法的概念 4
1.1.4 结构化程序设计 5
1.2 Turbo C开发环境简介 6
1.3 C语言简介 9
1.3.1 如何学习C语言 9
1.3.2 C程序的构成 10
1.3.3 C程序的书写格式 11
1.3.4 C程序的开发过程 11
1.4 C程序的上机步骤 12
课后总复习 13
第2章 数据类型、运算符和表达式 15
2.1 常量、变量和标识符 17
2.1.1 标识符 17
2.1.2 关键字 17
2.1.3 常量 17
2.1.4 符号常量 18
2.1.5 变量 18
2.2 数据类型 19
2.3 整型数据 20
2.3.1 整型变量 20
2.3.2 整型常量 21
2.4.1 实型变量 22
2.4 实型数据 22
2.4.2 实型常量 23
2.5 字符型数据 24
2.5.1 字符变量 24
2.5.2 字符常量 24
2.5.3 字符型数据的运算 26
2.5.4 字符串常量 26
2.6 不同数据类型之间的转换 27
2.7 算术运算符和算术表达式 28
2.7.1 算术运算符 29
2.7.2 算术表达式 30
2.8 赋值运算符和赋值表达式 30
2.8.2 复合的赋值表达式 31
2.8.1 赋值运算符和赋值表达式 31
2.9 自增和自减运算符 32
2.10 逗号运算符和逗号表达式 34
课后总复习 35
第3章 顺序结构程序设计 38
3.1 C语句分类 40
3.2 赋值语句 41
3.3 数据的输入与输出 41
3.4 数据的输入与输出——scanf函数 42
3.4.1 scanf函数的调用格式 42
3.4.2 scanf函数的格式字符 43
3.4.3 scanf函数的使用说明 44
3.5 数据的输入与输出——printf函数 45
3.5.1 printf函数的调用格式 45
3.5.2 printf函数的格式字符 46
3.5.3 printf函数的使用说明 49
3.6 数据的输入与输出——getchar函数和putchar函数 50
3.6.1 字符输入函数getchar 50
3.6.2 字符输出函数putchar 50
3.7 顺序结构程序举例 51
课后总复习 52
第4章 选择结构程序设计 55
4.1 关系运算符和关系表达式 57
4.1.1 关系运算符 57
4.1.2 关系表达式 57
4.2 逻辑运算符和逻辑表达式 58
4.2.1 逻辑运算符 58
4.2.2 逻辑表达式 59
4.3 条件运算符和条件表达式 60
4.4 if语句 61
4.4.1 if语句的基本形式 61
4.4.2 if语句的嵌套 63
4.5 switch语句 65
课后总复习 67
第5章 循环结构程序设计 71
5.1 用for语句构成的循环结构 73
5.1.1 for循环语句的一般形式 73
5.1.2 for循环语句的执行过程 73
5.2 用while语句构成的循环结构 74
5.2.1 while循环语句的一般形式 74
5.2.2 while循环语句的执行过程 75
5.3.2 do…while循环语句的执行过程 76
5.3 do…while语句构成的循环结构 76
5.3.1 do…while循环语句的一般形式 76
5.3.3 3种循环结构小结 77
5.4 循环结构的嵌套 77
5.5 break和continue语句在循环体中的作用 79
5.5.1 break语句 79
5.5.2 continue语句 80
5.5.3 break和continue的区别 81
5.6 goto语句 82
课后总复习 82
第6章 数组 85
6.1 有关数组的基本概念 87
6.2.2 一维数组的引用 88
6.2.1 一维数组的定义 88
6.2 一维数组 88
6.2.3 一维数组的初始化 90
6.2.4 一维数组应用举例 91
6.3 二维数组 93
6.3.1 二维数组的定义 93
6.3.2 二维数组的引用 94
6.3.3 二维数组的初始化 95
6.3.4 二维数组应用举例 96
6.4 字符数组 97
6.4.1 字符数组的定义 98
6.4.2 字符数组的引用 98
6.4.3 字符数组的初始化 99
6.4.4 字符数组的输入输出 100
6.4.5 字符串处理函数 101
6.4.6 字符数组应用举例 104
课后总复习 105
第7章 函数 108
7.1 库函数 110
7.2 函数定义 111
7.3 函数的参数和返回值 112
7.3.1 函数参数 112
7.3.2 函数返回值 113
7.4 函数的调用 114
7.4.1 函数调用的一般形式 114
7.4.2 函数的嵌套调用 115
7.4.3 函数的递归调用 117
7.5 函数的声明 118
7.5.1 函数声明的形式 118
7.5.2 函数声明的位置 119
7.6 函数参数传递 119
课后总复习 121
第8章 变量的作用域和存储类别 124
8.1 变量的作用域 126
8.1.1 局部变量 126
8.1.2 全局变量 127
8.2 变量的存储类别 128
8.2.1 auto变量 129
8.2.2 static变量 130
8.2.3 register变量 131
8.2.4 extern变量 132
8.3 函数的存储分类 134
8.3.1 内部函数 134
8.3.2 外部函数 134
课后总复习 135
第9章 指针 137
9.1 地址和指针的概念 139
9.2 指针变量 140
9.2.1 指针变量的定义 140
9.2.2 指针运算符 141
9.2.3 指针变量的初始化 142
9.2.4 指针的运算 142
9.3.1 指向数组元素的指针变量 145
9.3 指针与一维数组 145
9.3.2 数组元素的引用 146
9.4 指针与二维数组 148
9.4.1 二维数组及其元素的地址 148
9.4.2 指向数组元素的指针变量 151
9.5 指针与字符串 151
9.5.1 使用字符指针实现字符串的存储 151
9.5.2 字符指针与字符数组的区别 152
9.6 指针的指针 154
9.6.1 指针数组 154
9.6.2 指向指针的指针 156
9.7 指针与函数 158
9.7.1 指针作为函数参数 158
9.7.2 一维数组名作函数实参 160
9.7.3 二维数组名作函数实参 161
9.7.4 字符指针作函数实参 162
9.7.5 返回指针值的函数 163
9.7.6 函数指针 164
9.8 main函数中的参数 165
课后总复习 166
第10章 预编译处理 170
10.1 宏替换 172
10.1.1 不带参数的宏定义 172
10.1.2 带参数的宏定义 174
10.2 文件包含 175
课后总复习 175
第11章 结构体、共用体和用户定义类型 177
11.1 用typedef定义类型 179
11.2 结构体 180
11.2.1 结构体类型的说明 180
11.2.2 结构体类型变量的定义 181
11.2.3 结构体类型变量的初始化 183
11.2.4 结构体类型变量的引用 184
11.2.5 函数之间结构体变量的数据传递 185
11.3 动态存储分配和链表 186
11.3.1 动态存储分配 186
11.3.2 动态链表的概念 188
11.3.3 利用结构体变量构成链表 188
11.4 共用体 193
11.4.1 共用体类型的说明和变量定义 193
11.4.2 共用体变量的引用 194
课后总复习 196
第12章 位运算 199
12.1 位运算符 201
12.2 位运算符详解 201
12.2.1 按位与运算 201
12.2.2 按位或运算 203
12.2.3 按位异或运算 203
12.2.4 按位非运算 204
12.2.5 左移运算 205
12.2.6 右移运算 205
课后总复习 206
第13章 文件 208
13.1 文件概述 210
13.2 文件类型指针 211
13.3.1 文件的打开(fopen函数) 212
13.3 文件的打开与关闭 212
13.3.2 文件的关闭(fclose函数) 213
13.4 文件的读写 213
13.4.1 字符读写函数fputc和fgetc 213
13.4.2 字符串读写函数fputs和fgets 215
13.4.3 数据块读写函数fread和fwrite 216
13.4.4 格式化读写函数fprintf和fscanf 217
13.4.5 判断文件结束函数feof 217
13.5 文件的定位 218
13.5.1 rewind函数 218
13.5.2 fseek函数 219
13.5.3 ftell函数 219
课后总复习 220