第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上机步骤 6
1.3数据类型 9
1.4常量与变量 10
1.4.1常量与变量的概念 10
1.4.2整型常量与变量 12
1.4.3实型常量与变量 14
1.4.4字符型常量与变量 15
1.5运算符和表达式 17
1.5.1算术运算符和表达式 17
1.5.2赋值运算符和表达式 19
1.5.3逗号运算符和表达式 20
1.6提高部分 21
1.6.1赋值运算符的进一步讨论 21
1.6.2数据类型的进一步讨论 23
1.7上机训练 24
思考题1 25
习题1 26
基础部分 26
提高部分 27
第2章 顺序结构程序设计 28
2.1结构化程序设计的基本结构 29
2.1.1语句的概念 29
2.1.2三种基本结构 29
2.2赋值语句 31
2.3输入输出语句 32
2.3.1格式输入输出函数 32
2.3.2字符输入输出函数 36
2.4贯穿实例A——成绩管理程序(1) 37
2.5提高部分 38
2.5.1输入输出函数的进一步讨论 38
2.5.2贯穿实例B——电子通讯录管理系统(1) 42
2.6上机训练 43
思考题2 44
习题2 44
基础部分 44
提高部分 45
第3章 分支结构程序设计 46
3.1关系运算符和关系表达式 47
3.1.1关系运算符 47
3.1.2关系表达式 47
3.2逻辑运算符和逻辑表达式 48
3.2.1逻辑运算符 48
3.2.2逻辑表达式 49
3.3 if语句 50
3.3.1 if语句的一般形式 51
3.3.2 if语句的嵌套 57
3.4 switch语句 59
3.5贯穿实例A——成绩管理程序(2) 62
3.6提高部分 63
3.6.1 if语句和switch语句的进一步讨论 63
3.6.2条件运算符和表达式 69
3.6.3贯穿实例B——电子通讯录管理系统(2) 70
3.7上机训练 71
思考题3 74
习题3 74
基础部分 74
提高部分 75
第4章 循环结构程序设计 77
4.1 for语句 78
4.2 while语句 87
4.3 do-while语句 89
4.4 break语句和continue语句 92
4.4.1循环体中使用break语句 92
4.4.2循环体中使用continue语句 94
4.5循环语句的嵌套 95
4.6贯穿实例A——成绩管理程序(3) 98
4.7提高部分 101
4.7.1 for语句的应用 101
4.7.2三种循环的对比 104
4.7.3 goto语句以及用goto语句构成的循环 108
4.7.4贯穿实例B——电子通讯录管理系统(3) 110
4.8上机训练 111
思考题4 114
习题4 115
基础部分 115
提高部分 117
第5章 数组 120
5.1一维数组 121
5.1.1一维数组的定义和引用 121
5.1.2一维数组的初始化 123
5.2字符串 127
5.2.1字符串的概念和字符串的输入输出 127
5.2.2字符串处理函数 129
5.3二维数组 131
5.4贯穿实例A——成绩管理程序(4) 134
5.5提高部分 139
5.5.1数组程序举例 139
5.5.2贯穿实例B——电子通讯录管理系统(4) 146
5.6上机训练 156
思考题5 160
习题5 160
基础部分 160
提高部分 161
第6章 指针 163
6.1变量的地址和指针变量的概念 164
6.2指针变量的定义和引用 164
6.3指针和一维数组 167
6.3.1使指针变量指向一维数组 167
6.3.2对指针的算术运算 168
6.4指针和字符串 171
6.4.1通过字符数组名引用字符串 171
6.4.2通过指针变量引用字符串 172
6.5提高部分 174
6.5.1指针的进一步讨论 174
6.5.2指针和二维数组 176
6.6上机训练 179
思考题6 183
习题6 183
基础部分 183
提高部分 184
第7章 函数 185
7.1函数的引例 186
7.2函数的定义与调用 188
7.2.1函数的定义 188
7.2.2函数的调用 189
7.2.3函数的调用过程 195
7.2.4函数的返回值 197
7.2.5被调函数的原型说明 199
7.3函数的嵌套调用 200
7.4数组做实参 201
7.4.1一维数组名做实参 201
7.4.2二维数组名做实参 204
7.5变量的存储类别 205
7.5.1内部变量和外部变量 205
7.5.2动态存储变量和静态存储变量 206
7.6贯穿实例A——成绩管理程序(5) 208
7.7提高部分 211
7.7.1函数的递归调用 211
7.7.2带参数的main函数 213
7.7.3指向函数的指针 218
7.7.4多文件组成的程序运行方法 219
7.7.5预处理命令 220
7.7.6贯穿实例B——电子通讯录管理系统(5) 223
7.8上机训练 226
思考题7 229
习题7 229
基础部分 229
提高部分 232
第8章 结构体和其他构造类型 233
8.1结构体类型变量的定义和使用 234
8.1.1结构体类型的概念和声明 234
8.1.2结构体类型变量的使用 235
8.2结构体和函数调用 241
8.3贯穿实例A——成绩管理程序(6) 244
8.4提高部分 248
8.4.1结构体的进一步讨论 248
8.4.2链表 252
8.4.3共用体 259
8.4.4贯穿实例B——电子通讯录管理系统(6) 262
8.5上机训练 265
思考题8 267
习题8 267
基础部分 267
提高部分 268
第9章 位运算 270
9.1移位运算符 270
9.2按位与、或、异或运算符 272
9.3按位取反运算符 274
9.4提高部分 274
9.4.1位运算的复合赋值运算符 274
9.4.2负整型数据的位运算 275
9.4.3无符号整型数据的位运算 276
9.4.4不同类型数据之间的位运算 276
9.4.5位运算在单片机控制中的应用 276
思考题9 278
习题9 279
基础部分 279
提高部分 279
第10章 文件 280
10.1文件的概述 281
10.2文件的基本操作 282
10.3贯穿实例A——成绩管理程序(7) 290
10.4提高部分 296
10.4.1文件读写操作的进一步讨论 296
10.4.2文件的定位操作 301
10.4.3贯穿实例B——电子通讯录管理系统(7) 303
10.5上机训练 307
思考题10 309
习题10 310
基础部分 310
提高部分 310
附录A C语言关键字 311
附录B常用字符与ASCII代码对照表 312
附录C运算符的优先级和结合方向 314
附录D常用C库函数 315
附录E关键字、运算符、库函数索引 319
附录F单号习题参考答案 322
参考文献 341