本书以Visual C++ 2010为编程环境,通过分析问题、设计算法、编写和调试程序等步骤,介绍了顺序结构、选择结构、循环结构的算法分析和程序设计方法,力求让读者掌握分析问题的方法,培养读者算法设计的能力、编程和调试的能力以及模块化程序设计思想。全书共14章。第1-2章介绍程序设计基础与C语言的编程环境;第3-7章介绍结构化程序设计的3种基本结构与函数和数组的基础知识;第8章介绍字符型数据处理;第9-11章介绍编译预处理、指针以及其他的数据类型;第12、13章介绍位运算与文件;第14章介绍几个综合的编程牯∽?????摴栠楥桧???挠汯灳湡∽???う????巜?潦瑮>??
1章 程序设计基础 1
1.1 程序设计语言 1
1.1.1 什么是程序 1
1.1.2 语言的分类 1
1.1.3 C语言简介 2
1.1.4 C语言组成 3
1.2 计算机的组成与程序设计的本质 3
1.2.1 计算机系统结构 3
1.2.2 程序设计的本质 4
1.2.3 程序设计的过程 4
1.3 算法的概念和特性 5
1.3.1 什么是算法 5
1.3.2 算法举例 5
1.3.3 算法的特性 6
1.4 算法的表示方法 6
1.4.1 自然语言 7
1.4.2 伪代码 7
1.4.3 传统流程图 7
1.4.4 N-S流程图 7
1.5 结构化的程序设计方法 8
1.5.1 结构化程序设计 8
1.5.2 结构化程序设计方法 9
习 题 10
2章 C语言编程与调试 12
2.1 Visual C++ 2010 Epress 12
2.1.1 安装和启动 12
2.1.2 Visual C++ 2010的开发环境 13
2.1.3 Visual C++ 2010中程序编写与调试 15
2.2 Dev C++ 21
2.2.1 安装和启动 21
2.2.2 Dev C++的开发环境 22
2.1.3 Dev C++中程序设计与调试 23
习 题 27
3章 顺序结构程序设计与编程基础 28
3.1 顺序结构算法设计 28
3.2 C语言编程基础 29
3.2.1 数据类型 30
3.2.2 变量 31
3.2.3 常量 33
3.2.4 整型数据的处理 34
3.2.5 实型数据的处理 38
3.2.6 运算符和表达式 41
3.2.7 数据类型的转换 47
3.2.8 C语句 48
3.2.9 C程序的注释 49
3.3 顺序结构程序设计 49
3.4 常见的编程错误及其调试 52
3.4.1 语法错误 52
3.4.2 运行时错误 54
4.4.3 未检测到的错误 55
3.4.4 逻辑错误 56
3.4.5 程序调试方法 57
习 题 57
4章 函数 62
4.1 函数的定义和调用 62
4.1.1 函数定义 62
4.1.2 函数调用 63
4.1.3 函数返回值 64
4.1.4 参数的传递 65
4.1.5 对被调用函数的声明 66
4.2 变量的作用域 67
4.3 变量的存储类别和生存期 70
4.4 程序的模块化设计 72
习 题 74
5章 选择结构程序设计 77
5.1 选择结构算法设计 77
5.2 关系运算与逻辑运算 81
5.2.1 关系运算符和关系表达式 81
5.2.2 逻辑运算符和逻辑表达式 82
5.3 if语句 84
5.4 switch语句 90
5.5 选择结构的嵌套 94
5.6 条件运算符 97
习 题 98
6章 循环结构程序设计 104
6.1 当型循环 104
6.2 直到型循环 110
6.3 for循环语句 112
6.4 break语句和continue语句 114
6.5 循环的嵌套 115
6.6 循环结构编程举例 118
6.7 函数的嵌套调用 122
6.8 函数的递归调用 123
习 题 126
7章 数组 133
7.1 一维数组 133
7.1.1 一维数组 133
7.1.2 一维数组程序设计 135
7.1.3 数组元素作为函数参数 140
7.1.4 一维数组作为函数参数 140
7.2 二维数组 145
7.2.1 二维数组 145
7.2.2 二维数组程序设计 148
7.2.3 多维数组作为函数参数 151
习 题 154
8章 字符、字符数组与字符串 160
8.1 字符类型 160
8.1.1 字符型常量、变量 160
8.1.2 字符型数据的输入和输出 162
8.1.3 字符串 164
8.2 字符数组 165
8.2.1 字符数组的定义和使用 165
8.2.2 字符串数组 167
8.2.3 字符串处理函数 169
8.3 字符串处理 173
8.3.1 字符串处理算法和程序设计 173
8.3.2 字符串作为函数参数 175
习 题 177
9章 编译预处理 181
9.1 宏定义 181
9.1.1 不带参数的宏定义 181
9.1.2 带参数的宏定义 184
9.2 文件包含 186
9.3 条件编译 188
习 题 191
10章 指针 194
10.1 地址和指针 194
10.2 变量的指针和指向变量的指针变量 194
10.2.1 定义指针变量 194
10.2.2 指针变量的引用 195
10.2.3 指针变量作为函数参数 197
10.3 数组的指针和指向数组的指针变量 199
10.3.1 指向数组元素的指针 199
10.3.2 通过指针引用数组元素 199
10.3.3 数组和指向数组的指针变量作函数参数 201
10.3.4 指向多维数组的指针和指针变量 204
10.4 字符串的指针和指向字符串的指针变量 207
10.4.1 字符串的表示形式 207
10.4.2 字符串指针作函数参数 208
10.4.3 字符指针变量和字符数组的讨论 209
10.5 函数的指针和指向函数的指针变量★ 210
10.5.1 用函数指针变量调用函数 210
10.5.2 用指向函数的指针作函数参数 211
10.6 返回指针值的函数 212
10.7 指针数组和指向指针的指针 213
10.7.1 指针数组 213
10.7.2 指向指针的指针 215
10.7.3 指针数组作main函数的形参 217
习 题 219
11章 其他数据类型 225
11.1 结构体 225
11.1.1 结构体类型的声明 225
11.1.2 定义结构体类型变量 226
11.1.3 结构体变量的引用 228
11.1.4 结构体变量的初始化 228
11.2 结构体数组 230
11.2.1 定义结构体数组 230
11.2.2 结构体数组的初始化 230
11.2.3 结构体数组应用举例 232
11.3 指向结构体类型数据的指针 232
11.3.1 指向结构体变量的指针 233
11.3.2 指向结构体数组的指针 233
11.3.3 用结构体变量和指向结构体的指针作函数参数 234
11.4 链表 236
11.4.1 链表概述 236
11.4.2 处理动态链表所需的函数 237
11.4.3 建立动态链表 239
11.4.4 输出链表 242
11.4.5 删除链表的节点 242
11.4.6 插入链表节点 245
11.4.7 链表的综合作 249
11.5 共用体 250
11.5.1 共用体的概念 250
11.5.2 共用体变量的引用 251
11.6 枚举类型 254
11.7 用typedef定义类型 255
习 题 257
12章 位运算 264
12.1 位运算符和位运算 264
12.1.1 按位取反(~)运算符 264
12.1.2 按位与(&)运算符 265
12.1.3 按位或(|)运算符 266
12.1.4 按位异或(^)运算符 266
12.1.5 左移(<<)运算符 267
12.1.6 右移(>>)运算符 268
12.1.7 位运算赋值运算符 269
12.1.8 不同长度的运算数之间的运算规则 269
12.2 位运算程序实例 269
习 题 271
13章 文件 273
13.1 文件概述 273
13.2 文件指针 274
13.3 文件的打开与关闭 274
13.3.1 fopen函数 275
13.3.2 fclose函数 276
13.4 文件的读写 276
13.4.1 fputc函数 277
13.4.2 fgetc函数 278
13.4.3 fputs函数 278
13.4.4 fgets函数 279
13.4.5 fprintf函数 280
13.4.6 fscanf函数 281
13.4.7 fwrite函数 281
13.4.8 fread函数 282
13.4.9 rewind函数 283
13.4.10 fseek函数 284
13.4.11 ftell函数 285
13.4.12 feof函数 285
13.4.13 ferror函数 286
习 题 286
14章 综合程序设计 290
14.1 排序算法比较 290
14.2 个人通讯录 294
习 题 300
附录 ANSI C常用库函数 301
参考文献 306