目录
目 录
第1章 C语言程序设计概述 1
1.1 C语言程序的基本组成 2
1.2 C语言程序设计的一般步骤 5
1.3 C语言程序的上机执行过程 7
1.4 C语言的学习方法 10
1.4.1 为什么要学C语言 10
1.4.2 如何学习C语言 11
1.5 案例:程序的铭牌 11
本章小结 11
习题 12
第2章 C语言基础 15
2.1 C语言的字符集 16
2.2 标识符 16
2.2.1 保留字 16
2.2.2 用户自定义标识符 16
2.3 数据与C语言的数据类型 17
2.3.1 整型数据类型 18
2.3.2 实型数据类型 20
2.3.3 字符型数据类型 21
2.4 常量 21
2.4.1 整型常量 21
2.4.2 实型常量 22
2.4.3 字符常量 23
2.4.4 字符串常量 23
2.4.5 符号常量 24
2.5 变量 25
2.6 运算符 26
2.6.1 算术运算 27
2.6.2 关系运算 30
2.6.3 逻辑运算 31
2.6.4 赋值运算 33
2.6.5 逗号运算 34
2.6.6 条件运算符和条件表达式 35
2.6.7 sizeof运算符 35
2.6.8 类型转换 36
2.7 数据的输入/输出 39
2.7.1 字符数据的输入/输出 40
2.7.2 格式化输出/输入函数 41
2.8 案例:鸡兔同笼 48
本章小结 49
习题 50
第3章 程序设计基本结构 55
3.1 顺序结构 56
3.2 条件判断——选择结构 57
3.2.1 if语句 57
3.2.2 switch语句 66
3.3 一遍又一遍——循环结构 68
3.3.1 while循环语句 68
3.3.2 for循环语句 70
3.3.3 do…while循环语句 73
3.3.4 break和continue语句 75
3.3.5 三种循环语句的比较 77
3.3.6 循环嵌套 77
3.4 应用举例 79
3.4.1 一般计算问题 79
3.4.2 穷举法求解问题 83
3.4.3 递推和迭代法求解问题 84
3.4.4 用嵌套的循环求解问题 88
3.5 案例:基因信息处理 90
本章小结 94
习题 94
第4章 数组 109
4.1 数组的基本概念 110
4.2 一维数组 110
4.2.1 一维数组的定义 110
4.2.2 一维数组的引用 111
4.2.3 一维数组的初始化 112
4.2.4 一维数组的应用 113
4.3 二维数组 122
4.3.1 二维数组的定义 122
4.3.2 二维数组的引用 123
4.3.3 二维数组的初始化 123
4.3.4 二维数组的应用 124
4.4 字符数组 126
4.4.1 字符数组的定义 126
4.4.2 字符数组的初始化 126
4.4.3 字符数组的引用 127
4.4.4 字符串的输入/输出 128
4.4.5 字符串处理函数 131
4.4.6 应用举例 133
4.5 案例:抽奖嘉年华 136
本章小结 137
习题 139
第5章 指针 151
5.1 指针的概念 152
5.1.1 内存地址和指针 152
5.1.2 指针变量的声明 152
5.1.3 取地址运算符和间接寻址运算符 153
5.1.4 指针变量的引用 155
5.2 指针与数组 156
5.2.1 指针的算术运算 157
5.2.2 指针的比较运算 158
5.2.3 指针与一维数组 159
5.2.4 指针与二维数组 161
5.3 指针与字符串 166
5.3.1 字符型指针变量与字符串 166
5.3.2 字符指针变量与字符数组 168
5.4 指针数组 169
5.4.1 指针数组的定义 169
5.4.2 指针数组的应用 169
5.5 案例:括号匹配问题 173
本章小结 175
习题 175
第6章 函数 181
6.1 函数的定义与调用 182
6.1.1 函数的定义 182
6.1.2 函数调用 185
6.2 函数间的数据传递 189
6.2.1 通过参数传递 189
6.2.2 通过函数返回值传递 198
6.2.3 函数设计的原则 199
6.3 变量的作用域和生存周期 199
6.3.1 变量的作用域 199
6.3.2 变量的生存周期 203
6.4 函数的嵌套调用和递归调用 209
6.4.1 函数的嵌套调用 209
6.4.2 函数的递归调用 210
6.5 案例:掷骰子游戏 212
本章小结 214
习题 215
第7章 结构体、共用体与枚举类型 221
7.1 结构体 222
7.1.1 结构体的定义 223
7.1.2 结构体变量 224
7.1.3 结构体数组 228
7.1.4 结构体指针 231
7.1.5 结构体与函数 235
7.2 共用体 239
7.2.1 共用体的定义 239
7.2.2 共用体变量的定义 240
7.2.3 共用体变量的引用 241
7.3 枚举类型 244
7.3.1 枚举类型的定义 244
7.3.2 枚举变量的定义和引用 245
7.4 typedef类型定义 247
7.5 案例:维护通讯录数据库 248
本章小结 252
习题 253
第8章 文件 261
8.1 文件概述 262
8.1.1 什么是文件 262
8.1.2 文本文件和二进制文件 262
8.1.3 文件类型指针 263
8.1.4 文件操作 264
8.2 文件的打开与关闭 265
8.2.1 打开文件 265
8.2.2 关闭文件 267
8.3 文件的读写操作 268
8.3.1 按字符读写文件 268
8.3.2 按格式读写文件 273
8.3.3 按数据块读写文件 275
8.4 文件的定位 277
8.5 文件出错检测 279
8.6 案例:打字练习程序 280
本章小结 282
习题 284
第9章 底层程序设计 287
9.1 位运算符 288
9.1.1 按位逻辑运算 288
9.1.2 移位运算 293
9.1.3 位运算赋值运算符 295
9.2 位段 296
9.3 案例:查看内存单元 299
本章小结 300
习题 301
第10章 编译预处理 303
10.1 #include文件包含命令 304
10.2 #define宏定义 305
10.2.1 不带参数的宏定义 305
10.2.2 带参数的宏定义 307
10.3 条件编译 309
10.4 编写大型程序 311
10.5 案例:数据压缩和解压缩 312
本章小结 316
习题 316
第11章 指针的高级应用 317
11.1 多级指针 318
11.2 main()函数带参数 319
11.3 函数指针 320
11.4 动态内存分配 322
11.4.1 动态内存分配函数 322
11.4.2 动态内存空间的使用 324
11.5 链表 326
11.6 案例:简单的学生成绩管理系统 331
本章小结 338
习题 338
参考文献 345
附录 347
附录A 字符与ASCII码对照表 348
附录B 运算符和结合性 349
附录C C语言中的关键字 350
附录D C常用的库函数 350