第1章 C语言基础知识 1
1.1 C语言概述 2
1.1.1 C语言与程序设计 2
1.1.2 C程序形式和程序执行过程 3
1.2 简单C程序及其上机步骤 4
1.2.1 简单C程序和编程风格 4
1.2.2 上机步骤 7
1.3 数据类型 10
1.4 常量与变量 11
1.4.1 常量与变量的概念 11
1.4.2 整型常量与变量 12
1.4.3 实型常量与变量 14
1.4.4 字符型常量与变量 16
1.5 运算符和表达式 17
1.5.1 算术运算符和表达式 17
1.5.2 赋值运算符和表达式 19
1.5.3 逗号运算符和表达式 21
1.6 提高部分 22
1.6.1 不带参数的主函数 22
1.6.2 赋值运算符的进一步讨论 22
1.6.3 数据类型的进一步讨论 24
1.6.4 用Visual C++2010编写C程序 26
1.7 上机训练 29
思考题1 30
习题1 31
基础部分 31
提高部分 32
第2章 顺序结构程序设计 33
2.1 结构化程序设计的基本结构 34
2.1.1 语句的概念 34
2.1.2 三种基本结构 34
2.2 赋值语句 36
2.3 输入输出语句 37
2.3.1 格式输入输出函数 37
2.3.2 字符输入输出函数 41
2.4 贯穿实例A——成绩管理程序(1) 42
2.5 提高部分 43
2.5.1 输入输出函数的进一步讨论 43
2.5.2 贯穿实例B——电子通讯录管理系统(1) 47
2.6 上机训练 48
思考题2 49
习题2 50
基础部分 50
提高部分 50
第3章 分支结构程序设计 51
3.1 关系运算符和关系表达式 52
3.1.1 关系运算符 52
3.1.2 关系表达式 52
3.2 逻辑运算符和逻辑表达式 53
3.2.1 逻辑运算符 53
3.2.2 逻辑表达式 54
3.3 if语句 56
3.3.1 if语句的一般形式 56
3.3.2 if语句的嵌套 63
3.4 switch语句 65
3.5 贯穿实例A——成绩管理程序(2) 68
3.6 提高部分 69
3.6.1 if语句和switch语句的进一步讨论 69
3.6.2 条件运算符和表达式 75
3.6.3 贯穿实例B——电子通讯录管理系统(2) 76
3.7 上机训练 77
思考题3 80
习题3 80
基础部分 80
提高部分 81
第4章 循环结构程序设计 83
4.1 for语句 84
4.2 while语句 93
4.3 do-while语句 96
4.4 break语句和continue语句 98
4.4.1 循环体中使用break语句 98
4.4.2 循环体中使用continue语句 100
4.5 循环语句的嵌套 101
4.6 贯穿实例A——成绩管理程序(3) 105
4.7 提高部分 108
4.7.1 for语句的应用 108
4.7.2 三种循环的对比 111
4.7.3 goto语句以及用goto语句构成的循环 115
4.7.4 贯穿实例B——电子通讯录管理系统(3) 117
4.8 上机训练 118
思考题4 121
习题4 122
基础部分 122
提高部分 124
第5章 数组 127
5.1 一维数组 128
5.1.1 一维数组的定义和引用 128
5.1.2 一维数组的初始化 131
5.2 字符串 134
5.2.1 字符串的概念和字符串的输入输出 134
5.2.2 字符串处理函数 136
5.3 二维数组 139
5.4 贯穿实例A——成绩管理程序(4) 142
5.5 提高部分 147
5.5.1 数组程序举例 147
5.5.2 贯穿实例B——电子通讯录管理系统(4) 153
5.6 上机训练 165
思考题5 168
习题5 168
基础部分 168
提高部分 169
第6章 指针 171
6.1 变量的地址和指针变量的概念 172
6.2 指针变量的定义和引用 172
6.3 指针和一维数组 175
6.3.1 使指针变量指向一维数组 175
6.3.2 对指针的算术运算 176
6.4 指针和字符串 179
6.4.1 通过字符数组名引用字符串 179
6.4.2 通过指针变量引用字符串 180
6.5 提高部分 182
6.5.1 指针的进一步讨论 182
6.5.2 指针和二维数组 185
6.6 上机训练 188
思考题6 191
习题6 191
基础部分 191
提高部分 192
第7章 函数 193
7.1 函数的引例 194
7.2 函数的定义与调用 196
7.2.1 函数的定义 196
7.2.2 函数的调用 197
7.2.3 函数的调用过程 203
7.2.4 函数的返回值 205
7.2.5 被调函数的原型说明 207
7.3 函数的嵌套调用 208
7.4 数组做实参 209
7.4.1 一维数组名做实参 209
7.4.2 二维数组名做实参 212
7.5 变量的存储类别 213
7.5.1 内部变量和外部变量 213
7.5.2 动态存储变量和静态存储变量 215
7.6 贯穿实例A——成绩管理程序(5) 216
7.7 提高部分 220
7.7.1 函数的递归调用 220
7.7.2 带参数的main函数 222
7.7.3 指向函数的指针 226
7.7.4 多文件组成的程序运行方法 228
7.7.5 预处理命令 230
7.7.6 贯穿实例B——电子通讯录管理系统(5) 233
7.8 上机训练 236
思考题7 238
习题7 239
基础部分 239
提高部分 241
第8章 结构体和其他构造类型 242
8.1 结构体类型变量的定义和使用 243
8.1.1 结构体类型的概念和声明 243
8.1.2 结构体类型变量的定义和使用 244
8.2 结构体和函数调用 250
8.3 贯穿实例A——成绩管理程序(6) 253
8.4 提高部分 257
8.4.1 结构体的进一步讨论 257
8.4.2 链表 261
8.4.3 共用体 268
8.4.4 贯穿实例B——电子通讯录管理系统(6) 271
8.5 上机训练 274
思考题8 276
习题8 276
基础部分 276
提高部分 277
第9章 文件 279
9.1 文件的概述 280
9.2 文件的基本操作 281
9.3 贯穿实例A——成绩管理程序(7) 289
9.4 提高部分 295
9.4.1 文件读写操作的进一步讨论 295
9.4.2 文件的定位操作 300
9.4.3 贯穿实例B——电子通讯录管理系统(7) 302
9.5 上机训练 314
思考题9 315
习题9 316
基础部分 316
提高部分 316
附录A C语言关键字 318
附录B 常用字符与ASCII代码对照表 319
附录C 运算符的优先级和结合方向 321
附录D 常用C库函数 322
附录E 关键字、运算符、库函数索引 326
附录F 单号习题参考答案 329
参考文献 348