标题：C语言程序设计与项目实践
图书信息
书 名: C语言程序设计  与项目实践
作　者：郭旭文
出版社： 电子工业出版社
出版时间： 2011年6月1日
ISBN: 9787121137570
开本： 16开
定价: 65.00元
内容简介
本书讲解知识全面、重点突出，其中覆盖了基于VisualC++6.0环境的C开发中的各个方面，通过本书可以使C语言的初学者和大中专学生轻松入门，并且全面了解C语言的应用方向和重点掌握重点内容，从而为进一步学习C语言提供坚实基础。本书内容包括C语言开发环境，数据类型，运算符，控制语句，输入与输出，数组，函数，指针，结构体与共用体，链表，编译预处理，文件，字符串处理，调试，软件测试，常用算法，以及C语言实际应用和工程应用等，最后通过各种实际应用的例子讲解如何使用C语言解决生活中的问题以及如何使用C语言进行工程项目开发。
图书目录
第1章 C语言开发环境简介1
1.1 C语言发展历史 1
1.2 C语言的特点2
1.3 C语言的广泛应用 3
1.4 Visual C++ 6.0开发环境概述 4
1.4.1 Visual C++ 6.0 开发环境安装4
1.4.2 Visual C++ 6.0 开发环境介绍8
1.5 Visual C++6.0下创建开发项目 10
1.5.1 Visual C++ 6.0下创建工程项目10
1.5.2 Visual C++ 6.0 下C源代码创建12
实训1.1——一个经典的C语言程序15
1.6 疑难解答和上机题 16
1.6.1 疑难解答16
1.6.2 上机题18
第2章 基本数据类型19
2.1 数据类型概述 19
2.2 进制换算 20
2.2.1 进位计数制概述20
2.2.2 二进制与其他进制转换20
2.2.3 八进制与其他进制转换22
2.2.4 十六进制与其他进制转换23
2.2.5 十进制与二进制的转换24
2.2.6 机器数及其在内存中存储格式25
2.3 常量 26
2.3.1 整型常量26
2.3.2 实型常量27
2.3.3 字符常量28
2.3.4 字符串常量29
2.4 变量 30
2.4.1 变量与内存结构30
2.4.2 变量的定义31
2.4.3 整型变量33
2.4.4 实型变量34
2.4.5 字符变量35
2.5 枚举 36
2.5.1 枚举的定义36
2.5.2 枚举变量的定义与使用36
2.6 疑难解答和上机题 38
2.6.1 疑难解答38
2.6.2 上机题40
第3章 运算符和表达式43
3.1 运算符与表达式的分类 43
3.1.1 运算符的分类43
3.1.2 表达式的分类45
3.2 运算符的优先级与结合性 46
3.3 赋值运算符与赋值表达式 48
3.4 算术运算符与算术表达式 50
3.4.1 算术运算符与数据类型50
实训3.1——计算圆柱体体积51
3.4.2 模除运算符52
3.4.3 自增自减运算符53
3.5 关系运算符与关系表达式 56
3.6 逻辑运算符与逻辑表达式 57
3.6.1 逻辑与（&&）57
3.6.2 逻辑或（||）58
3.6.3 逻辑非（！）59
实训3.2——判断闰年60
3.7 位运算符 61
实训3.3——交换两变量的值63
3.8 条件运算符 66
实训3.4——分段函数计算66
3.9 sizeof运算符 67
3.10 强制类型转换 68
3.11 疑难解答和上机题 70
3.11.1 疑难解答70
3.11.2 上机题72
第4章 C语言标准输入与输出73
4.1 C语言标准库函数概述 73
4.2 格式输出函数printf 74
4.2.1 标准格式输出74
4.2.2 格式输出控制78
4.3 格式输入函数scanf 80
4.3.1 标准格式输入80
4.3.2 格式输入控制84
4.4 字符输入输出函数 85
4.4.1 putchar函数85
4.4.2 getchar函数85
实训4.1——输出及格率86
4.5 疑难解答和上机题 87
4.5.1 疑难解答87
4.5.2 上机题90
第5章 分支结构程序设计91
5.1 结构化程序设计思想 91
5.2 简单的if语句 92
5.2.1 if语句的定义92
5.2.2 合理设计if语句93
实训5.1——求一元二次方程的实根解94
5.3 多分支if语句 96
5.3.1 if-else语句的结构96
5.3.2 if-else语句的应用97
5.3.3 if-else-if语句的结构及应用99
5.4 嵌套if-else语句 101
5.4.1 嵌套if-else语句的定义101
5.4.2 嵌套if-else语句的应用103
实训5.2——求一元二次方程的复数根解105
5.5 switch语句 108
5.5.1 switch语句的定义108
5.5.2 break语句110
5.5.3 switch语句的执行与应用110
实训5.3——使用switch语句实现四则运算111
5.6 嵌套switch语句 113
5.6.1 嵌套switch语句的定义113
5.6.2 嵌套switch语句的执行与应用114
5.7 疑难解答和上机题 116
5.7.1 疑难解答116
5.7.2 上机题117
第6章 循环结构程序设计119
6.1 循环语句的提出 119
6.2 for循环语句 120
6.2.1 for语句的定义120
6.2.2 for语句的执行120
6.2.3 for语句的应用121
6.3 for循环嵌套语句 124
6.3.1 for循环嵌套语句的定义与执行124
6.3.2 for循环嵌套语句的应用125
实训6.1——打印九九乘法表126
实训6.2——打印三位数水仙花数127
6.4 while循环语句 130
6.4.1 while循环语句的定义130
6.4.2 while循环语句的应用130
实训6.3——记录键盘输入字符数132
6.5 do…while循环语句 134
6.5.1 do…while循环语句的定义134
6.5.2 do…while循环语句的应用134
6.6 goto语句 137
6.7 break语句和continue语句 138
6.7.1 break语句138
6.7.2 continue语句139
6.8 疑难解答和上机题 140
6.8.1 疑难解答140
6.8.2 上机题143
第7章 数组145
7.1 一维数组 145
7.1.1 一维数组的定义145
7.1.2 一维数组赋值与引用147
7.1.3 一维数组的应用151
实训7.1——数列排序152
7.2 二维数组 154
7.2.1 二维数组的定义154
7.2.2 二维数组的赋值与引用155
7.2.3 二维数组的应用158
实训7.2——学员平均成绩计算159
实训7.3——输出杨辉三角161
7.3 字符数组 163
7.3.1 字符数组的定义163
7.3.2 字符数组的赋值与引用164
7.3.3 字符数组与字符串166
7.3.4 二维字符数组168
7.4 疑难解答和上机题 170
7.4.1 疑难解答170
7.4.2 上机题172
第8章 函数173
8.1 函数的定义 173
8.1.1 函数的分类173
8.1.2 函数的定义174
8.2 函数的调用与声明 176
8.2.1 函数的调用176
实训8.1——计算数学分段函数179
8.2.2 函数的声明181
实训8.2——近似计算圆周率pi184
8.2.3 函数的参数187
8.3 局部变量与全局变量 189
8.3.1 局部变量189
8.3.2 全局变量191
8.4 函数的嵌套调用和递归 193
实训8.3——汉诺塔程序设计194
8.5 数组作函数参数 197
8.6 疑难解答和上机题 199
8.6.1 疑难解答199
8.6.2 上机题200
第9章 指针203
9.1 指针的引入 203
9.1.1 指针的定义203
9.1.2 指针的引用204
9.2 指针和地址 206
9.2.1 指针和地址的关系206
9.2.2 指针和地址的区别210
9.2.3 void指针和空指针212
9.3 指针与数组 214
9.3.1 指针与数组首地址214
9.3.2 指针与数组名的区别215
实训9.1——指针转换数组中字母大小写217
9.4 指针与函数 220
9.4.1 指针作函数参数 220
9.4.2 函数返回指针224
9.4.3 指向函数的指针225
9.5 指针与字符串 227
9.5.1 指针与字符串的关系227
9.5.2 指针引用字符串229
9.6 指针与二维数组 231
9.6.1 指针和二维数组的关系231
9.6.2 指针数组235
实训9.2——输出main函数参数值237
9.7 内存分配 239
9.7.1 指针与内存分配240
9.7.2 malloc函数240
9.7.3 memset函数243
9.7.4 free函数244
实训9.3——指针实现简单月历计算245
9.8 疑难解答与上机题 247
9.8.1 疑难解答247
9.8.2 上机题249
第10章 结构体与共用体251
10.1 结构体的定义 251
10.2 结构体变量 253
10.2.1 结构体变量的定义253
10.2.2 结构体变量的初始化254
10.2.3 结构体变量的引用255
10.2.4 结构体数组257
实训10.1——身份证信息录入258
10.2.5 结构体的嵌套261
10.3 结构体指针 262
10.3.1 结构体指针的定义262
10.3.2 结构体指针引用结构体成员263
10.3.3 指向结构体数组的结构体指针265
10.4 结构体变量的内存分配 266
10.4.1 动态分配结构体内存266
10.4.2 结构体在内存中的存储结构270
10.5 结构体指针作函数参数 272
10.5.1 结构体指针作函数参数的定义272
10.5.2 结构体指针作函数参数的应用273
10.6 共用体的定义 275
10.6.1 共用体的定义275
10.6.2 共用体变量的定义与应用275
10.7 共用体的内存结构 277
实训10.2——教师学生信息卡设计278
10.8 疑难解答和上机题 281
10.8.1 疑难解答281
10.8.2 上机题283
第11章 链表285
11.1 什么是链表 285
11.2 结构体实现单链表 286
11.2.1 单链表结点的结构体实现286
11.2.2 单链表的结构体实现287
11.3 结构体实现双向链表 291
11.3.1 双向链表结点的结构体实现291
11.3.2 双向链表结点的内存分配295
11.4 链表结点的插入与删除 296
11.4.1 单链表结点的插入296
11.4.2 双向链表结点的插入297
11.4.3 单链表结点的删除298
11.4.4 双向链表结点的删除299
实训11.1——新员工录入员工信息表300
11.5 疑难解答和上机题 303
11.5.1 疑难解答303
11.5.2 上机题304
第12章 编译预处理305
12.1 宏定义 305
12.1.1 什么是宏定义305
12.1.2 宏定义的应用308
实训12.1——程序不同Log的打印311
12.1.3 宏定义的终止312
12.2 文件包含 313
12.2.1 头文件包含313
实训12.2——银行卡信息录入314
12.2.2 头文件中的函数声明317
12.3 条件编译 318
12.3.1 #if…#else和#endif命令318
12.3.2 #ifdef…#endif和#ifndef…#endif命令321
12.4 疑难解答和上机题 323
12.4.1 疑难解答323
12.4.2 上机题324
第13章 文件327
13.1 文件和文件指针 327
13.1.1 流和文件327
13.1.2 文件指针328
13.2 文件的打开和关闭 329
13.2.1 文件的打开329
13.2.2 文件的关闭332
13.3 文件的读写 333
13.3.1 字符处理函数fgetc和fputc 334
实训13.1——建立readme文件336
13.3.2 字符串处理函数fgets和fputs 339
13.3.3 数据段处理函数fread和fwrite 343
实训13.2——项目信息录入与输出344
13.3.4 标准格式读写函数fprintf和fscanf 350
13.4 文件的定位 352
13.5 疑难解答和上机题 353
13.5.1 疑难解答353
13.5.2 上机题354
第14章 C语言标准数学库函数357
14.1 平方根计算函数sqrt 357
14.2 求指数函数exp和pow 358
14.2.1 指数函数exp 359
14.2.2 指数函数pow 360
14.3 取对数函数log和log10 361
14.3.1 自然对数函数log 361
14.3.2 10为底的对数函数log10362
14.4 绝对值函数abs和fabs 364
14.4.1 绝对值函数abs 364
14.4.2 绝对值函数fabs 365
14.5 三角函数 366
14.5.1 正弦函数sin和asin 366
14.5.2 其他三角函数367
14.6 取整函数floor和ceil 369
14.6.1 取整函数floor 369
14.6.2 取整函数ceil 371
14.7 疑难解答和上机题 372
14.7.1 疑难解答372
14.7.2 上机题373
第15章 字符串处理375
15.1 字符串拷贝函数strcpy 375
15.1.1 库函数strcpy 375
15.1.2 自定义函数strcpy 377
15.2 字符串链接与比较函数strcat和strcmp 378
15.2.1 字符串链接函数strcat 378
15.2.2 字符串比较函数strcmp 379
15.3 字符串长度与查找函数strlen和strchr 381
15.3.1 字符串长度计算函数strlen 381
15.3.2 字符串查找函数strchr 382
15.4 字符串输入输出函数gets和puts 384
15.4.1 字符串输入函数gets 384
15.4.1 字符串输出函数puts 385
15.5 其他字符串处理函数 386
15.5.1 特定字符串比较函数strcmp 386
15.5.2 字符串重设函数strnset 387
15.5.3 字符串子串查找函数strstr 388
实训15.1——文章中字符串查找与替换389
15.6 疑难解答和上机题 392
15.6.1 疑难解答392
15.6.2 上机题394
第16章 C语言调试397
16.1 C语言开发入门 397
16.1.1 注释的编写397
16.1.2 代码风格400
16.2 C语言单步调试与跟踪 404
16.3 C语言断点调试与跟踪 406
16.3.1 设置调试断点406
16.3.2 断点调试409
16.4 查看动态内存 412
实训16.1——代码风格设计415
16.5 疑难解答和上机题 418
16.5.1 疑难解答418
16.5.2 上机题419
第17章 软件测试421
17.1 软件测试概述 421
17.1.1 什么是软件测试421
17.1.2 软件测试模型、分类和流程422
17.2 搭建软件测试环境 424
17.2.1 分析被测软件424
17.2.2 搭建软件测试环境425
17.3 软件测试过程 427
17.3.1 函数级软件测试427
17.3.2 模块级软件测试434
17.4 疑难解答和上机题 436
17.4.1 疑难解答436
17.4.2 上机题437
第18章 C语言常用算法439
18.1 什么是算法 439
18.2 排序算法 440
18.2.1 起泡排序440
18.2.2 选择排序445
18.2.3 合并排序450
18.2.4 快速排序451
18.3 查找算法 453
18.3.1 顺序查找算法454
18.3.2 折半查找算法456
18.4 二叉树 457
18.4.1 二叉树的结构457
18.4.2 C语言实现简单的二叉树458
18.4.3 二叉树的简单操作462
实训18.1——合并两个有序数组467
18.5 疑难解答和上机题 471
18.5.1 疑难解答471
18.5.2 上机题472
第19章 C语言应用实例475
19.1 C语言巧解问题实例 475
19.1.1 求1到1000之内的素数475
19.1.2 巧解古代百钱买百鸡问题477
19.1.3 巧解换钱币问题478
19.1.4 求1-20000之间的平方回文数479
19.1.5 验证卡布列克常数480
19.2 C语言应用实例——计算数学公式 483
19.2.1 C语言实现三角函数sinx逼近483
19.2.2 C语言实现三角函数cosx逼近484
19.2.3 C语言计算排列组合485
19.3 C语言编写万年历 486
19.3.1 万年历的实现流程486
19.3.2 万年历程序设计流程488
19.3.3 万年历程序编写489
19.3.4 结果验证与代码完善494
19.4 疑难解答和上机题 494
19.4.1 疑难解答494
19.4.2 上机题496