第1章 C语言简介 1
1.1 C语言概述 1
1.1.1 C语言的发展过程 1
1.1.2 C语言的主要特点 2
1.2 程序的算法及流程图 3
1.2.1 算法 3
1.2.2 流程图 5
1.3 C语言程序介绍 6
1.4 C语言程序运行的步骤和方法 8
1.4.1 Visual C+++6.0环境 8
1.4.2 编写与运行C语言程序 9
1.4.3 程序的简单调试 11
小结 12
习题 12
第2章 变量、数据类型和运算符 13
2.1 概述 13
2.2 常量与变量 14
2.3 基本数据类型 16
2.3.1 整型数据类型 16
2.3.2 实型数据类型 18
2.3.3 字符型数据类型 19
2.3.4 字符串数据类型 19
2.4 运算符和表达式 20
2.4.1 运算符与表达式简介 20
2.4.2 算术运算符与表达式 21
2.4.3 赋值运算符与表达式 23
2.4.4 关系运算符与表达式 24
2.4.5 逻辑运算符与表达式 25
2.4.6 sizseof运算符与表达式 26
2.4.7 运算符的优先级及结合方式 26
2.4.8 数据间的混合运算与类型转换 27
小结 28
习题 29
第3章 基本语句与编译预处理 31
3.1 预处理命令 31
3.1.1 宏定义 32
3.1.2 文件包含处理 34
3.2 C语言中的语句 35
3.3 输入与输出函数的调用 35
3.3.1 putchar()函数 36
3.3.2 getchar()函数 37
3.3.3 printf()函数 38
3.3.4 scanf()函数 42
小结 46
习题 46
第4章 选择结构程序设计 48
4.1 if语句 48
4.1.1 简单if语句的两种基本形式 48
4.1.2 if语句的嵌套 51
4.1.3 if语句实例 54
4.2 switch语句 56
4.2.1 switch语句 56
4.2.2 switch语句实例 58
4.3 if语句和switch语句的比较 59
4.4 条件运算符 59
小结 60
习题 61
第5章 循环结构程序设计 64
5.1 概述 64
5.2 while循环 65
5.3 do...while循环 67
5.4 while循环和do...while循环的比较 68
5.5 for循环 69
5.6 转移语句及其构成的循环 71
5.7 3种循环语句的比较 72
5.8 break和continue跳转语句 72
5.8.1 break跳转语句 72
5.8.2 continue跳转语句 73
5.9 循环的嵌套 74
5.1 0程序实例 76
小结 78
习题 79
第6章 数组 83
6.1 数组的基本概念 83
6.2 一维数组的定义与应用 84
6.2.1 一维数组的定义 84
6.2.2 一维数组的存储结构 85
6.2.3 一维数组元素的引用 86
6.2.4 一维数组的初始化 87
6.2.5 一维数组程序的应用 87
6.3 二维数组的定义与应用 90
6.3.1 二维数组的定义 90
6.3.2 二维数组元素的存储结构 92
6.3.3 二维数组元素的引用 93
6.3.4 二维数组的初始化 94
6.3.5 二维数组程序的应用 95
6.4 字符数组 96
6.4.1 字符数组的定义 96
6.4.2 字符数组的引用 96
6.4.3 字符数组的初始化 96
6.4.4 字符串及字符串结束标记 98
6.4.5 字符数组与字符串的区别 98
6.4.6 字符数组的输入与输出 99
6.4.7 常用字符串处理函数 100
6.4.8 字符数组的应用 104
小结 105
习题 105
第7章 函数 112
7.1 概述 112
7.2 函数定义的一般形式 114
7.2.1 无参函数 114
7.2.2 有参函数 114
7.2.3 空函数 115
7.3 常用的库函数 115
7.4 函数的调用 116
7.4.1 区分形参与实参 117
7.4.2 函数的参数数据传递 118
7.4.3 数组作为函数参数 118
7.5 函数声明 120
7.6 函数的嵌套与递归调用 121
7.6.1 函数的嵌套调用 121
7.6.2 函数的递归调用 124
7.7 变量的作用域 126
7.7.1 局部变量 127
7.7.2 全局变量 127
7.8 变量存储类型 130
7.8.1 自动、寄存器和外变量存储类型 130
7.8.2 static存储类型 131
7.9 内部函数与外部函数的概念 133
7.9.1 内部函数 133
7.9.2 外部函数 134
小结 135
习题 135
第8章 指针 137
8.1 指针的基本概念 137
8.2 指针变量的定义和引用 138
8.2.1 指针变量的定义 138
8.2.2 指针变量的引用 139
8.2.3 指针变量作函数参数 141
8.2.4 指针作函数返回值 142
8.3 数组与指针 143
8.3.1 一维数组和指针 144
8.3.2 二维数组和指针 146
8.3.3 用数组名作函数参数 150
8.4 字符串与指针 152
8.4.1 通过赋初值的方式使指针指向一个字符串 152
8.4.2 通过赋值运算使指针指向一个字符串 153
8.4.3 字符指针作函数参数 154
8.5 指针数组与多级指针 154
8.5.1 指针数组 154
8.5.2 多级指针 156
8.6 函数指针 157
小结 158
习题 159
第9章 结构体与共用体 161
9.1 结构体与共用体概述 161
9.2 结构体类型定义和使用 161
9.2.1 定义结构体类型的语法 161
9.2.2 定义结构体类型变量 162
9.2.3 结构类型变量初始化 163
9.2.4 结构体变量的引用 164
9.2.5 结构体类型数组 166
9.3 用指针处理链表 168
9.3.1 链表 168
9.3.2 动态存储分配 169
9.3.3 链表的基本操作 169
9.4 共用体类型的定义和使用 173
9.4.1 定义共用体类型的语法 173
9.4.2 定义共用体类型变量 173
9.4.3 共用体类型变量的初始化 174
9.4.4 共用体类型变量的赋值和使用 174
9.5 枚举类型 175
9.6 用typedef定义类型 176
小结 178
习题 178
第10章 位运算与文件 181
10.1 位运算符及位运算 181
10.1.1 位逻辑运算 181
10.1.2 移位运算 183
10.1.3 不同长度的数据进行位运算 184
10.2 文件的概述 185
10.2.1 文件的概念 185
10.2.2 文件的分类 186
10.2.3 文件指针 186
10.3 打开文件和关闭文件 187
10.3.1 文件操作的步骤 187
10.3.2 文件的打开 188
10.3.3 文件的关闭 188
10.4 文件的顺序读写 189
10.4.1 字符读写函数 189
10.4.2 字符串读写函数 190
10.4.3 格式化读写函数 192
10.4.4 数据块读写函数 192
10.5 文件的定位与随机读/写 194
10.5.1 位置指针复位函数rewind() 194
10.5.2 随机位置指针函数fseek() 195
10.5.3 返回文件当前位置的函数ftell() 196
10.6 文件检测函数 196
10.6.1 读写文件出错检测函数ferror() 196
10.6.2 文件结束检测函数feof() 196
10.6.3 文件出错标志和文件结束标志置零函数clearerr() 197
小结 197
习题 198
附录A 全国计算机等级考试二级C语言考试大纲 202
附录B 2011年3月全国计算机等级考试二级C语言笔试试题及参考答案 205
附录C 部分字符的ASCII码对照表 215
附录D Visual C++ 6.0编译错误信息 216
附录E 常用C库函数 219
附录F 课后习题答案 223