第1章 C语言概述 1
1.1 程序设计与计算机语言 1
1.1.1 程序设计 1
1.1.2 计算机语言 1
1.2 C语言的发展过程和特点 3
1.2.1 C语言的发展过程 3
1.2.2 C语言的特点 3
1.3 C程序的基本结构和组成 4
1.3.1 C程序的基本结构 4
1.3.2 C程序的基本组成 5
1.4 C语言的基本标识符 6
1.5 运行C程序的步骤实例 7
1.5.1 运行C语言程序的一般过程 7
1.5.2 运行C语言程序的一个 7
实例 7
本章小结 9
习题 10
实训 11
第2章 C语言数据类型、运算符与表达式 12
2.1 C语言的数据类型 12
2.2 常量 13
2.2.1 整型常量 13
2.2.2 实型常量 14
2.2.3 字符常量 15
2.2.4 字符串常量 16
2.2.5 符号常量 17
2.3 变量 17
2.3.1 变量的定义与初始化 17
2.3.2 整型变量 18
2.3.3 实型变量 20
2.3.4 字符型变量 21
2.4 运算符及表达式 22
2.4.1 算术运算符和算术表达式 23
2.4.2 关系运算符和关系表达式 23
2.4.3 逻辑运算符和逻辑表达式 24
2.4.4 赋值运算符和赋值表达式 25
2.4.5 逗号运算符和逗号表达式 25
2.4.6 变量的自增、自减(++,--)运算符 26
2.4.7 混合运算和类型转换 27
本章小结 28
习题 28
实训 31
第3章 程序控制结构 33
3.1 顺序结构 33
3.1.1 赋值语句 33
3.1.2 数据输出 34
3.1.3 数据输入 38
3.1.4 应用实例 41
3.2 选择结构 42
3.2.1 单分支选择结构 43
3.2.2 双分支选择结构 43
3.2.3 多分支选择结构 47
3.3 循环结构 49
3.3.1 循环的基本概念 49
3.3.2 用while语句设计循环结构程序 50
3.3.3 用do...while语句设计循环结构程序 51
3.3.4 用for语句设计循环结构程序 53
3.3.5 break语句与continue语句 55
3.3.6 几种循环语句的比较 56
3.3.7 循环的嵌套 57
3.3.8 应用实例 58
3.4 实际应用 61
本章小结 64
习题 65
实训 70
第4章 数组 74
4.1 数组的基本概念 74
4.2 一维数组 74
4.2.1 一维数组的定义 75
4.2.2 一维数组的初始化 75
4.2.3 一维数组的引用 76
4.2.4 一维数组程序举例 77
4.3 二维数组 78
4.3.1 二维数组的定义 78
4.3.2 二维数组的初始化 79
4.3.3 二维数组的引用 79
4.3.4 二维数组程序举例 80
4.4 字符数组 81
4.4.1 字符数组的定义、初始化及引用 81
4.4.2 字符串与字符数组 82
4.5 字符串处理函数 84
4.5.1 字符串输出函数puts() 84
4.5.2 字符串输入函数gets() 84
4.5.3 字符串连接函数strcat() 85
4.5.4 字符串拷贝函数strcpy() 85
4.5.5 字符串比较函数strcmp() 86
4.5.6 测字符串长度函数strlen() 86
4.5.7 字符串小写函数strlwr() 86
4.5.8 字符串大写函数strupr() 86
4.6 应用实例 86
4.7 实际应用 89
本章小结 91
习题 92
实训 96
第5章 函数 98
5.1 模块化设计与函数 98
5.1.1 模块化设计 98
5.1.2 函数概述 99
5.2 函数定义与分类 101
5.2.1 函数的定义 101
5.2.2 函数的分类 102
5.3 函数的调用 103
5.3.1 函数调用的方式 103
5.3.2 函数的参数传递 104
5.4 函数的声明与返回值 106
5.4.1 函数的声明 106
5.4.2 函数的返回值 107
5.5 函数的嵌套和递归调用 108
5.5.1 函数的嵌套调用 108
5.5.2 函数的递归调用 109
5.6 变量的存储类型 112
5.6.1 变量的存储类别 112
5.6.2 变量的作用域 114
5.7 外部函数和内部函数 117
5.7.1 外部函数 117
5.7.2 内部函数 118
5.8 实际应用 118
本章小结 120
习题 121
实训 125
第6章 编译预处理 128
6.1 宏定义 128
6.1.1 不带参数的宏定义 128
6.1.2 带参数的宏定义 130
6.2 文件包含处理 132
6.3 条件编译 133
6.3.1 #ifdef...#endif和#ifndef...#endif命令 133
6.3.2 #if...#endif命令 133
本章小结 134
习题 134
实训 135
第7章 指针 138
7.1 指针概述 138
7.1.1 指针与指针变量 138
7.1.2 指针变量的定义和应用 139
7.1.3 指针变量的运算 141
7.1.4 指向指针的指针 143
7.2 指针与数组 144
7.2.1 指针与一维数组 144
7.2.2 指针与二维数组 146
7.2.3 指针与字符串 147
7.2.4 指针数组 149
7.2.5 指向指针的指针 150
本章小结 151
习题 151
实训 154
第8章 结构体与共用体 156
8.1 结构体的定义及其变量的初始化 156
8.1.1 结构体定义 156
8.1.2 结构类型变量的说明 157
8.1.3 结构体变量的初始化 158
8.2 结构体类型变量的引用 159
8.3 结构体数组 160
8.3.1 定义 160
8.3.2 结构体数组初始化 160
8.4 指针和结构体 162
8.4.1 指向结构体变量的指针 162
8.4.2 指向结构体数组的指针 163
8.4.3 结构指针参数 163
8.5 用指针处理链表 164
8.5.1 链表 164
8.5.2 建立链表 165
8.5.3 链表输出 166
8.5.4 对链表中的元素进行删除 167
8.5.5 对链表插入结点 168
8.5.6 主函数 169
8.6 共用体(联合) 170
8.6.1 共用体的概念 170
8.6.2 引用方式 170
8.6.3 共用体的特点 171
8.7 枚举 171
8.8 用typedef定义类型 172
8.9 实际应用 173
本章小结 175
习题 176
实训 180
第9章 位运算 184
9.1 位运算和位运算符 184
9.1.1 按位与运算 184
9.1.2 按位或运算 185
9.1.3 按位异或运算 186
9.1.4 求反运算 187
9.1.5 左移运算 187
9.1.6 右移运算 187
9.1.7 位复合赋值运算符 188
9.2 位域(位段) 188
9.2.1 位段的定义和位段变量的说明 188
9.2.2 关于位段的定义和引用的说明 189
9.2.3 位段的使用 189
本章小结 190
习题 191
实训 193
第10章 文件 195
10.1 文件概述 195
10.1.1 C文件概述 195
10.1.2 C文件结构及其指针 195
10.1.3 文件系统的缓冲性 196
10.2 文件的打开与关闭 196
10.2.1 文件的打开函数fopen() 197
10.2.2 文件的关闭函数fclose() 198
10.3 文件的读/写操作 199
10.3.1 读/写字符函数fgetc()和fputc() 199
10.3.2 读/写字符串函数fgets()和fputs() 200
10.3.3 读/写数据块函数fread()和fwrite() 200
10.3.4 读/写格式化函数fscanf()和fprintf() 201
10.4 文件的定位和随机读/写 201
10.4.1 文件的定位 201
10.4.2 文件随机读/写函数 202
10.5 文件检测函数 204
10.5.1 文件结束检测函数feof() 204
10.5.2 读写文件出错检测函数ferror() 204
10.5.3 清除错误标志函数clearerr() 204
10.6 实际应用 205
本章小结 206
习题 206
实训 207
第11章 C++简介 209
11.1 C++概述 209
11.1.1 C++的发展 209
11.1.2 C++的特点 210
11.1.3 C++与C语言的不同点 210
11.2 面向对象的程序设计 211
11.2.1 面向对象程序设计基本概念 211
11.2.2 类和对象 211
11.2.3 数据的抽象和封装 213
11.2.4 继承性和多态性面向对象的基本概念 214
11.3 实际应用 216
本章小结 216
习题 216
附录A ASCII代码表 218
附录B C语言常用关键字及说明 219
附录C C语言运算符及优先级 221
附录D 常用库函数 223
参考文献 231