第1章 C语言程序设计概述 1
1.1 程序与程序设计语言 1
1.1.1 程序与程序设计 1
1.1.2 程序设计语言 2
1.1.3 算法与数据结构 3
1.2 C语言概述 3
1.2.1 C语言的特点 3
1.2.2 C语言程序的基本结构 4
1.2.3 C语言的基本要素 5
1.3 设计C语言程序的基本过程 6
1.3.1 C语言程序编程环境 6
1.3.2 编译、连接和运行 8
1.4 如何学习C语言 8
习题1 9
第2章 数据类型和表达式 11
2.1 C语言数据类型 12
2.2 变量 13
2.3 常量 15
2.3.1 整型常量 15
2.3.2 实型常量 16
2.3.3 字符型常量 16
2.3.4 符号常量 17
2.4 数据的输入、输出 18
2.4.1 printf()函数 18
2.4.2 scanf()函数 20
2.5 运算符与表达式 23
2.5.1 算术运算符 23
2.5.2 关系运算符 25
2.5.3 逻辑运算符 25
2.5.4 赋值运算符 26
2.5.5 条件运算符 27
2.5.6 逗号运算符 27
2.5.7 位运算符 28
2.6 类型转换 29
2.6.1 自动类型转换 29
2.6.2 强制类型转换 30
习题2 31
第3章 程序控制结构 33
3.1 概述 33
3.2 顺序结构 34
3.3 选择结构 36
3.3.1 单分支结构 36
3.3.2 双分支结构 37
3.3.3 分支结构的嵌套 38
3.3.4 多路分支结构 41
3.4 循环结构 46
3.4.1 for循环结构 47
3.4.2 while循环结构 49
3.4.3 do-while循环结构 50
3.4.4 循环结构的嵌套 52
3.5 break和continue控制语句 53
3.5.1 break语句 53
3.5.2 continue语句 55
3.6 程序控制结构的综合应用 56
习题3 61
第4章 数组 64
4.1 一维数组 64
4.1.1 一维数组的定义和引用 64
4.1.2 一维数组的初始化 66
4.1.3 一维数组编程实例 66
4.2 一维字符数组和字符串 74
4.2.1 一维字符数组的定义和初始化 74
4.2.2 字符串概念 75
4.2.3 字符串存储 75
4.2.4 字符串输出 77
4.2.5 字符串的处理 78
4.3 二维数组 81
4.3.1 二维数组的定义和引用 81
4.3.2 二维数组的初始化 82
4.3.3 二维数组编程实例 83
习题4 87
第5章 函数 88
5.1 模块化程序设计 88
5.2 函数的定义和调用 90
5.2.1 函数的定义 90
5.2.2 函数的调用 92
5.3 变量的存储属性 97
5.3.1 自动(auto)变量 98
5.3.2 寄存器(register)变量 99
5.3.3 静态(static)变量 99
5.3.4 用extern声明外部变量 101
5.4 函数的嵌套调用 104
5.5 递归函数 105
5.6 数组作函数参数 110
5.6.1 数组元素作函数实参 110
5.6.2 一维数组名作函数参数 111
5.6.3 二维数组名作函数参数 114
习题5 117
第6章 指针 118
6.1 指针的概念 118
6.2 指针与简单变量 120
6.2.1 指针变量的定义与引用 120
6.2.2 指针变量的特殊性 122
6.2.3 指针变量作为函数的参数 123
6.3 指针与一维数组 127
6.3.1 数组名是一个指针常量 127
6.3.2 指针的运算 129
6.3.3 将数组地址传递给函数 131
6.4 指针与字符串 135
6.4.1 使用指针表示字符串 135
6.4.2 动态内存分配 136
6.4.3 常用的字符串处理函数 138
6.5 指针进阶 144
6.5.1 二级指针 144
6.5.2 指针与二维数组 145
6.5.3 指针数组 145
6.5.4 命令行参数 149
6.5.5 返回指针的函数 151
6.5.6 指向函数的指针 152
习题6 154
第7章 构造数据类型与编译预处理 156
7.1 结构体 156
7.1.1 结构体类型的定义 157
7.1.2 结构体变量的定义 158
7.1.3 结构体变量的引用 161
7.1.4 结构体变量的初始化 161
7.2 结构体数组 163
7.3 线性链表 167
7.3.1 链表的概念 168
7.3.2 链表的基本操作 169
7.4 共用体 174
7.4.1 共用体类型定义 174
7.4.2 共用体变量的定义、引用 175
7.4.3 共用体变量的赋值 175
7.5 枚举类型 177
7.6 自定义类型名 179
7.7 编译预处理 180
7.7.1 编译预处理命令简介 180
7.7.2 宏定义 181
7.7.3 文件包含 185
7.7.4 条件编译 186
习题7 189
第8章 文件 192
8.1 文件的基本概念 192
8.2 文件指针 193
8.3 文件的打开、读写与关闭 194
8.3.1 文件的打开 194
8.3.2 文件的关闭 195
8.3.3 文件的读写 195
8.3.4 文件读写函数的选用原则 203
8.4 文件定位 203
习题8 205
附录 208
附录Ⅰ ASCII码表 208
附录Ⅱ C标准库函数 209
2.1 输入与输出函数<stdio.h> 209
2.2 字符类测试函数<ctype.h> 216
2.3 字符串函数<string.h> 217
2.4 数学函数<math.h> 220
2.5 实用函数<stdlib.h> 222
2.6 诊断函数<assert.h> 224
2.7 变长变元表函数<stdarg.h> 225
2.8 非局部跳转函数<setjmp.h> 225
2.9 信号处理函数<signal.h> 226
2.10 日期与时间函数<time.h> 226
2.11 由实现定义的限制<limits.h>和<float.h> 228
附录Ⅲ C语言错误提示 230
3.1 致命错误信息 230
3.2 一般错误信息 230
附录Ⅳ 编程风格 236
附录Ⅴ 全国计算机等级考试二级C语言程序设计考试大纲(2013年版) 238