第1章 C语言程序设计概述 1
1.1 C语言的发展及其特点 1
1.1.1 C语言发展历程 1
1.1.2 C程序的特点 2
1.1.3 C语言与C++语言交融发展 3
1.2 C语言程序的组成与结构 3
1.3 C程序的上机步骤与方法 6
1.3.1有关概念 6
1.3.2运行C程序的一般步骤 7
1.3.3上机运行C程序的方法 8
1.3.4 Visual C++ 6.0环境运行C程序的步骤 8
1.4如何学好C语言 11
习题 11
第2章 数据类型,运算符和表达式 13
2.1 C语言字符集与标识符 13
2.1.1 C语言字符集 13
2.1.2标识符 14
2.2常量和变量 15
2.2.1常量 15
2.2.2变量 16
2.3基本数据类型 17
2.3.1 C语言的数据类型 17
2.3.2整型数据 17
2.3.3实型数据 20
2.3.4字符型数据 21
2.3.5变量赋初值 23
2.4运算符和表达式 23
2.4.1运算符和表达式概述 23
2.4.2算术运算符及算术表达式 25
2.4.3关系运算符及关系表达式 28
2.4.4逻辑运算符及逻辑表达式 29
2.4.5条件运算符及条件表达式 31
2.4.6赋值运算符及赋值表达式 33
2.4.7逗号运算符及逗号表达式 35
2.4.8求字节运算符 36
2.4.9类型转换 36
习题 37
第3章 顺序结构 40
3.1概述 40
3.2简单顺序语句 40
3.2.1表达式语句 40
3.2.2空语句 40
3.2.3复合语句 41
3.3 C语言数据的输入输出 41
3.3.1字符输入输出函数 42
3.3.2格式输入输出 43
3.4综合实例 51
习题 53
第4章 选择结构 56
4.1 if语句 56
4.1.1 if语句的基本形式 56
4.1.2 if语句嵌套 60
4.2 switch语句 62
4.3程序应用 65
习题 72
第5章 循环结构 75
5.1问题的提出 75
5.2 while循环结构 76
5.2.1 while语句的基本形式 76
5.2.2 while语句的应用 76
5.3 do…while循环结构 79
5.3.1 do…while语句的基本形式 79
5.3.2 do…while语句的应用 80
5.4 for循环结构 82
5.4.1 for语句的基本形式 82
5.4.2 for语句的应用 82
5.5转向语句 86
5.5.1 break语句 86
5.5.2 continue语句 87
5.5.3 goto语句 88
5.6程序应用 89
习题 93
第6章 数组 95
6.1问题的提出 95
6.2数组的基本概念 95
6.3一维数组 96
6.3.1一维数组的声明 96
6.3.2一维数组的引用 97
6.3.3一维数组的初始化 98
6.3.4一维数组的应用 98
6.4二维数组 103
6.4.1二维数组的声明 103
6.4.2二维数组的引用 104
6.4.3二维数组的初始化 104
6.4.4多维数组 105
6.4.5二维数组的应用 105
6.5字符数组 109
6.5.1字符数组的声明 109
6.5.2字符数组的引用 109
6.5.3字符数组的初始化 110
6.5.4字符串变量 111
6.5.5字符串变量的输入输出 111
6.5.6字符串函数 113
6.5.7字符数组的应用 115
习题 117
第7章 函数 120
7.1概述 120
7.2函数定义的形式 120
7.3函数参数和函数的返回值 122
7.3.1形式参数和实际参数 122
7.3.2函数的返回值 123
7.4函数的调用 125
7.4.1函数调用的一般形式 125
7.4.2函数调用的方式 127
7.4.3对被调函数的声明和函数原型 127
7.5函数的嵌套调用 130
7.6函数的递归调用 131
7.7数组作为函数参数 136
7.7.1数组元素作为函数实参 136
7.7.2一维数组名作为函数参数 137
7.7.3二维数组名作为函数参数 140
7.8变量的作用域 141
7.8.1局部变量 141
7.8.2全局变量 142
7.8.3变量的优先级 144
7.9变量的存储类别 144
7.9.1 auto变量 145
7.9.2用static声明的局部变量 145
7.9.3 register变量 147
7.9.4用extern声明外部变量 148
7.9.5用static声明外部变量 151
7.9.6存储类别小结 151
7.10内部函数和外部函数 153
7.10.1内部函数 153
7.10.2外部函数 153
习题 155
第8章 指针 158
8.1数据、地址与指针 158
8.1.1数据存储与地址指向 158
8.1.2地址与指针 159
8.2指针变量 160
8.2.1指针变量的声明与赋值 160
8.2.2通过指针访问变量 163
8.2.3指针变量的应用 164
8.3指针与数组 166
8.3.1数组名与数组首地址 166
8.3.2指针的运算 167
8.3.3通过指针访问一维数组 169
8.3.4通过指针访问多维数组 172
8.4指针与字符串 175
8.4.1通过指针访问字符数组 175
8.4.2字符指针作为函数参数传递 177
8.5指针数组 179
8.6指针函数 181
8.7函数指针 182
8.8多级指针 184
8.9 void指针类型 185
8.9.1 void的含义 185
8.9.2 void使用规则 186
8.10带参数的main()函数 189
8.11指针的内存动态分配 190
8.12指针的应用举例 193
习题 196
第9章 复合数据类型 200
9.1结构体数据类型 200
9.1.1结构体变量的使用 201
9.1.2结构体数组 205
9.1.3结构体指针 208
9.1.4结构体及指向结构体的指针作为函数的参数 210
9.1.5结构体综合举例 211
9.2链表 213
9.2.1链表与数组的主要区别 213
9.2.2链表的操作 213
9.2.3链表应用举例 216
9.3共用体定义和共用体变量声明 217
9.3.1共用体定义 217
9.3.2共用体类型变量 218
9.3.3共用体类型变量的引用 218
9.4枚举数据类 220
9.4.1枚举类型的定义和枚举变量的说明 220
9.4.2枚举类型变量的赋值和使用 220
9.5类型说明 222
习题 223
第10章 文件 228
10.1文件概述 228
10.2 FILE结构类型 228
10.3文件的操作 229
10.3.1文件的打开 229
10.3.2文件的关闭 231
10.3.3文件的读写 231
10.3.4文件缓冲区操作 237
10.3.5文件的随机读写 238
10.3.6文件的监测 242
10.4 C库文件 243
习题 245
第11章 位运算 246
11.1整数的计算机表示 246
11.2位运算符 248
11.2.1取反运算符~ 248
11.2.2按位与运算符& 249
11.2.3按位或运算符| 249
11.2.4按位异或运算符^ 250
11.2.5左移运算符<< 251
11.2.6右移运算符>> 251
11.2.7位运算与赋值运算的结合 251
11.2.8位运算举例 251
习题 252
第12章 编译预处理 254
12.1宏声明 254
12.1.1不带参数的宏声明 254
12.1.2带参数的宏声明 256
12.2文件包含 262
12.3条件编译 265
习题 269
第13章 C语言的实际应用 271
13.1 C语言程序设计步骤 271
13.2实际应用中常见模块设计 272
13.2.1输入模块设计 272
13.2.2选择菜单模块设计 275
13.2.3数据结构设计 277
13.2.4功能模块设计 277
13.3实际应用举例 280
13.3.1学生成绩管理 280
13.3.2个人理财管理 295
附录A ASCII编码表 319
附录B ctype.h文件中所包含的字符函数 321
附录C math.h文件中所包含的数学函数 322
附录D C语言运算符优先级详细列表 324