第1章 概述 1
1.1 什么是程序 2
1.2 程序设计语言 2
1.2.1 机器语言 3
1.2.2 汇编语言 3
1.2.3 高级语言 3
1.3 C语言程序 4
1.3.1 注释 5
1.3.2 关键字 5
1.3.3 预处理命令 5
1.3.4 函数 6
1.3.5 语句 7
1.4 编写和运行C程序 7
习题 11
第2章 数据类型 13
2.1 变量 15
2.1.1 整型变量 16
2.1.2 实型变量 17
2.1.3 字符变量 18
2.2 常量 19
2.2.1 整型常量 19
2.2.2 浮点型常量 19
2.2.3 字符常量 20
2.2.4 字符串常量 20
2.3 变量初始化 22
习题 22
第3章 数据的使用 24
3.1 应用实例 25
3.2 输入与输出 26
3.2.1 字符输出——putchar函数 27
3.2.2 字符输入——getchar函数 27
3.2.3 格式化输出——printf函数 28
3.2.4 格式化输入——scanf函数 33
3.3 运算符和表达式 39
3.3.1 算术运算符 39
3.3.2 运算符的优先级和结合性 40
3.3.3 赋值运算符 41
3.3.4 自增、自减运算符 42
3.3.5 逗号运算符 43
3.3.6 表达式语句 44
3.4 数据类型转换 45
3.4.1 数据类型的隐式转换 45
3.4.2 强制类型转换运算符 48
习题 49
第4章 控制结构 53
4.1 关系运算符和关系表达式 54
4.1.1 关系运算符 54
4.1.2 关系表达式 55
4.2 逻辑运算符和逻辑表达式 55
4.2.1 逻辑运算符 55
4.2.2 逻辑表达式 56
4.3 选择结构 57
4.3.1 if语句 57
4.3.2 else子句 59
4.3.3 if语句嵌套 60
4.3.4 使用if语句应注意的问题 62
4.3.5 条件运算符和条件表达式 65
4.3.6 switch语句 66
4.3.7 break语句 68
4.3.8 应用实例 69
4.4 循环结构 71
4.4.1 while语句 71
4.4.2 do while语句 72
4.4.3 for语句 75
4.4.4 使用break语句 78
4.4.5 使用continue语句 79
4.4.6 循环语句嵌套 79
4.4.7 应用实例 81
习题 83
第5章 函数 87
5.1 什么是函数 88
5.2 函数的定义和调用 88
5.2.1 计算两个实数的平均值 88
5.2.2 显示提示信息 89
5.2.3 函数的定义 90
5.2.4 return语句 91
5.2.5 函数的调用 91
5.3 函数的声明 92
5.4 函数的参数传递 94
5.5 递归 95
5.5.1 函数的递归调用 95
5.5.2 递归的思想 97
5.5.3 递归的使用 97
5.5.4 求解汉诺塔问题的C程序 99
5.6 局部变量与全局变量 99
5.6.1 程序块 99
5.6.2 局部变量 100
5.6.3 全局变量 102
5.6.4 作用域规则 103
5.7 变量的存储类别 104
5.7.1 变量的性质 104
5.7.2 auto 105
5.7.3 register 105
5.7.4 static 106
5.7.5 extern 107
习题 109
第6章 数组 115
6.1 数组的引入 116
6.2 一维数组 117
6.2.1 一维数组定义 118
6.2.2 一维数组的元素引用 118
6.2.3 一维数组的初始化 119
6.2.4 冒泡法排序 121
6.3 字符数组与字符串 124
6.3.1 字符数组 124
6.3.2 字符串 124
6.3.3 字符串的输入/输出 125
6.4 二维数组和多维数组 127
6.4.1 二维数组的定义 127
6.4.2 二维数组的元素引用 127
6.4.3 二维数组初始化 128
6.4.4 二维数组使用举例 129
6.5 应用实例 129
习题 130
第7章 指针 134
7.1 基本概念 135
7.1.1 指针和地址 135
7.1.2 定义指针变量 135
7.1.3 指针的基本运算 137
7.2 指针作为函数参数 139
7.3 指针与数组 143
7.3.1 一维数组与指针 143
7.3.2 指针的算术运算 146
7.3.3 用指针操作数组 149
7.3.4 一维数组(名)作为函数参数 152
7.3.5 二(多)维数组和指针 154
7.3.6 二维数组(名)作为函数参数 158
7.4 指针与字符串 159
7.4.1 用指针操作字符串 159
7.4.2 常用字符串处理函数 161
7.5 指针数组和指向指针的指针 164
7.5.1 指针数组 164
7.5.2 指向指针的指针 168
7.6 指向函数的指针和返回指针的函数 170
7.6.1 指向函数的指针 170
7.6.2 返回指针的函数 171
7.7 应用实例 173
习题 175
第8章 预处理指令 180
8.1 宏替换 181
8.1.1 简单宏替换 181
8.1.2 带参数的宏替换 182
8.2 文件包含 186
习题 187
第9章 结构体与共用体 189
9.1 结构体 190
9.1.1 结构体类型的定义 190
9.1.2 结构体变量的定义 191
9.1.3 结构体变量的使用 193
9.2 结构体数组 194
9.2.1 结构体数组的定义 194
9.2.2 结构体数组的初始化 196
9.3 结构体类型指针 197
9.3.1 指向结构体变量的指针 197
9.3.2 指向结构体数组的指针 199
9.4 结构体与函数 201
9.4.1 结构体变量的成员作函数实参 201
9.4.2 结构体变量作函数参数 202
9.4.3 指向结构体的指针作函数参数 203
9.5 链表 205
9.5.1 静态链表 206
9.5.2 动态链表 207
9.6 共用体 218
9.6.1 共用体变量的定义 218
9.6.2 共用体变量的使用 220
习题 220
第10章 文件 225
10.1 文件概述 226
10.1.1 数据文件的存储形式 226
10.1.2 文件类型指针 227
10.2 文件的打开与关闭 227
10.2.1 文件打开函数fopen 227
10.2.2 文件关闭函数fclose 228
10.3 文件读/写函数 229
10.3.1 文件读函数fgetc 229
10.3.2 文件写函数fputc 230
10.3.3 文件读函数fgets 231
10.3.4 文件写函数fputs 231
10.3.5 文件读函数fread 232
10.3.6 文件写函数fwrite 233
10.3.7 文件读函数fscanf 234
10.3.8 文件写函数fprimf 235
10.4 文件定位 235
10.4.1 rewind函数 236
10.4.2 fseek函数 236
习题 238
附录一 习题参考答案 241
附录二 ASCⅡ字符集 259
附录三 运算符及其优先级表 262
附录四 常用库函数 263
附录五 全国计算机等级考试二级C语言程序设计考试大纲 269
参考文献 272