鑒于C语言的重要地位,优秀的C语言教材层出不穷,广泛用于课堂教学。但限于篇幅,绝大多数教材都只列出了基本语法规则和基本知识点,对于实际编程中用到的一些编程技巧和经验涉猎不多,而对于基本C语言(即一般C语言教材介绍的内容)之外的扩展知识和实用技术则更少提及,这使得学生在学完C语言后,在面对实际问题时依然感觉无从下手。针对这种情况,我们编写了C程式设计案例与提高教程(第2版)这本书。
基本介绍
- 书名:C程式设计案例与提高教程(第2版)
- 作者:王金鹏 肖进杰
- ISBN:9787302391739
- 类别:计算机编程
- 定价:45元
- 装帧:平装
出版背景
C程式设计案例与提高教程(第2版)
作者:王金鹏 肖进杰
图书详细信息:
ISBN:9787302391739
定价:45元
印次:2-1
装帧:平装
印刷日期:2015-3-30
主要内容
ForewordC语言是高等学校计算机及相关专业的必修专业课,是培养学生编程思想、动手能力的主要课程和工具,也是面向对象程式设计、数据结构等后续课程的先导课。对C语言的掌握情况将很大程度上决定着学生大学4年的学习情况。
鑒于C语言的重要地位,优秀的C语言教材层出不穷,广泛用于课堂教学。但限于篇幅,绝大多数教材都只列出了基本语法规则和基本知识点,对于实际编程中用到的一些编程技巧和经验涉猎不多,而对于基本C语言(即一般C语言教材介绍的内容)之外的扩展知识和实用技术则更少提及,这使得学生在学完C语言后,在面对实际问题时依然感觉无从下手。针对这种情况,我们编写了本书。
本书共分3篇。第1篇是对基本C语言中一些重要内容的总结和补充,概括基本C语言的精要和编程经验,指出编程中易出现的问题并介绍一些编程技巧;第2篇讲述扩展C语言的一些实用编程技术: 记忆体管理机制、DOS和BIOS调用、I/O接口的输入输出、中断处理程式的编写、滑鼠和键盘操作、C作图、汉字处理以及数据结构基础等;第3篇是实例解析,汇集大量典型实例,并对这些实例进行讲解,给出原始码。
编写本书的目的是培养编程思想,扩展知识面,提高编程能力,为后续课程的学习和今后的工作打下坚实的基础。
本书适用对象: 一是已经学过C语言,想继续深入学习,以更好地掌握C语言的读者,可将本书作为深入学习的教材;二是正在学习C语言的读者,可将本书作为辅助教材或学习参考书。
关于本书有以下几点说明。
目录
第1章C语言标準及常用编译器介绍31.1C语言标準介绍3
1.1.1经典C语言3
1.1.2C893
1.1.3C993
1.2Turbo C 2.0编程环境及常用操作简介4
1.2.1TC的安装和配置4
1.2.2TC的调用5
1.2.3在TC中编辑、运行程式并查看结果6
1.2.4在DOS命令行中运行程式6
1.2.5在TC中调试程式7
1.2.6多档案程式的创建和运行8
1.3Visual C++6.0编程环境及常用操作简介8
1.3.1工程及源档案的建立8
1.3.2程式的编译、连线和运行11
1.3.3程式的调试11
习题113
第2章输入输出14
2.1printf()和scanf()的常见问题14
2.1.1printf()函式14
2.1.2scanf()函式15
2.2输入数据时的回车换行问题18
2.3输出时常用的几个函式19
2.3.1clrscr()19◆C程式设计案例与提高教程(第2版)目录2.3.2getch()和getche()19
2.4输入输出重定向20
习题222
第3章程式的流程控制25
3.1选择结构25
3.1.1if语句和ifelse语句25
3.1.2嵌套的if语句26
3.1.3if语句常见错误28
3.1.4if语句中的短路效应32
3.1.5switch语句33
3.1.6选择结构程式举例35
3.2循环结构38
3.2.13种循环语句38
3.2.2计数器控制循环和其他条件控制循环39
3.2.3break和continue40
3.2.4循环结束时循环变数的值42
3.2.5循环举例43
习题346
第4章数组与指针48
4.1数组的由来及数组的元素48
4.1.1一维数组的由来及一维数组的元素48
4.1.2多维数组的由来及多维数组的元素48
4.1.3使用数组时的注意事项49
4.2指针变数及其套用50
4.2.1指针变数的定义、赋值和使用50
4.2.2指针变数的类型及运算52
4.3数组名的指针类型53
4.3.1数组名指向的对象53
4.3.2用数组名表示数组元素55
4.4用指针变数处理数组56
4.4.1用指向变数的指针变数处理数组56
4.4.2用指向数组的指针变数处理数组59
4.4.3用指针变数处理数组时的类型问题60
4.5不同场合下使用变数的方法61
4.5.1简单变数61
4.5.2下标变数63
习题465
第5章函式67
5.1函式的定义67
5.1.1函式定义的格式67
5.1.2函式的返回类型68
5.1.3函式参数的设定70
5.2函式的调用72
5.2.1函式调用前的声明72
5.2.2函式调用的方式73
5.3函式调用时的参数传递74
5.4地址作函式参数76
5.4.1什幺时候传地址76
5.4.2变数的地址作参数76
5.4.3数组名作参数78
5.4.4不再用全局变数81
5.4.5地址作参数是单向传递还是双向传递83
5.5递归函式84
5.5.1递归的条件84
5.5.2递归与叠代85
5.6函式编程的常见错误86
习题587
第6章档案89
6.1档案的概念和档案的种类89
6.1.1档案的範畴89
6.1.2档案中存储数据的两种方式89
6.1.3档案的种类90
6.1.4档案操作的两个层面及缓冲区的概念90
6.2档案类型指针91
6.3档案的打开和关闭93
6.3.1档案的打开93
6.3.2档案的关闭97
6.4档案的读写98
6.4.1常用读写函式98
6.4.2读写指针的移动和定位99
6.4.3两个与当前位置指针有关的函式99
6.4.4档案读写的例子101
习题6103
第7章变数和字元处理的几个问题105
7.1与变数有关的几个问题105
7.1.1变数的本质105
7.1.2同名变数的分辨106
7.1.3变数赋初值及初值问题107
7.2实型变数的存储及常见问题108
7.2.1实型变数的存储方式108
7.2.2实型变数的常见使用问题110
7.3字元处理的几个问题111
7.3.1结束标誌用空字元还是换行符111
7.3.2循环次数是数组大小还是实际字元个数112
习题7112
第二篇扩展C编程技术
第8章记忆体管理机制与TC编译模式1178.1暂存器和伪变数117
8.1.1微处理器中的暂存器117
8.1.2段暂存器及其用途118
8.1.3伪变数119
8.2记忆体的定址模式119
8.2.1段式记忆体管理机制和实模式定址119
8.2.2保护模式定址120
8.2.3默认的段和偏移暂存器121
8.2.4近程指针与远程指针121
8.2.5与地址操作有关的几个函式(宏)122
8.3TC的编译模式124
8.3.1微模式124
8.3.2小模式124
8.3.3中模式125
8.3.4紧凑模式125
8.3.5大模式125
8.3.6巨模式125
习题8125
第9章BIOS和DOS调用126
9.1概述126
9.2中断和中断向量表127
9.2.1中断127
9.2.2中断向量表127
9.3BIOS调用128
9.3.1BIOS调用简介128
9.3.2BIOS调用的方法和例子129
9.4DOS调用130
9.4.1DOS调用简介130
9.4.2DOS调用的方法和例子131
9.5BIOS和DOS系统调用函式134
9.5.1int86()134
9.5.2int86x()136
9.5.3intdos()137
9.5.4intdosx()137
9.5.5intr()138
习题9139
第10章I/O接口的输入输出140
10.1I/O连线埠地址及编址方式140
10.1.1I/O连线埠的地址140
10.1.2I/O连线埠的编址140
10.2C语言用于I/O接口输入输出的函式142
10.2.1接口输入函式142
10.2.2接口输出函式142
10.3I/O接口输入输出举例143
习题10146
第11章中断服务程式147
11.1硬中断和软中断147
11.1.1硬中断147
11.1.2软中断148
11.2中断向量表的写入148
11.3中断服务的实现148
11.3.1中断服务程式的编写148
11.3.2中断服务程式的安装149
11.3.3中断服务程式的激活150
11.4中断服务程式举例151
习题11155
第12章C作图与图形处理156
12.1图形系统的初始化及基本框架156
12.1.1初始化图形系统156
12.1.2图形系统的关闭以及两种显示方式的转换157
12.1.3程式的基本框架及实例158
12.2图形系统中的像素与坐标159
12.2.1像素及坐标159
12.2.2像素函式及像素的颜色159
12.3常用图形函式160
12.3.1画点函式160
12.3.2有关画图坐标位置的函式160
12.3.3画线函式161
12.3.4画圆、椭圆和扇形函式161
12.3.5画矩形和条形图函式162
12.3.6颜色控制函式162
12.3.7线形控制函式163
12.3.8填充函式以及与填充有关的函式164
12.4图形方式下的文本输出函式165
12.5萤幕操作函式及动画基本知识166
12.5.1常用的萤幕操作函式166
12.5.2C语言动画设计的常用方法167
12.5.3动画示例167
12.6VRAM的读写170
12.6.1萤幕图形与VRAM的关係170
12.6.2VGA视频存储器的位面结构170
12.6.3将VRAM位面信息存入档案171
12.6.4将档案图像信息写入VRAM位面172
习题12174
第13章键盘和滑鼠操作175
13.1键盘操作175
13.1.1键盘的工作原理175
13.1.2键盘缓冲区176
13.1.3键盘处理函式176
13.2滑鼠操作177
13.2.1滑鼠的INT 33H功能调用178
13.2.2滑鼠主要操作函式180
13.2.3改变滑鼠形状182
13.2.4滑鼠操作举例184
习题13187
第14章汉字的显示与放大188
14.1汉字的编码188
14.1.1区位码188
14.1.2国标码189
14.1.3机内码189
14.1.4字形码190
14.1.5地址码190
14.2用作图方式显示和放大汉字191
14.2.1汉字的显示191
14.2.2汉字的放大193
14.3直接写VRAM法显示汉字195
14.3.1利用定序器直接写VRAM195
14.3.2用方式暂存器和位禁止暂存器直接写VRAM198
习题14201
第15章数据结构基础202
15.1线性表202
15.1.1线性表的概念202
15.1.2线性表的存储结构202
15.2顺序表的操作203
15.2.1空顺序表的建立203
15.2.2求顺序表中某元素的序号203
15.2.3顺序表元素的插入204
15.2.4顺序表元素的删除204
15.3鍊表及操作205
15.3.1线性鍊表的表示205
15.3.2线性鍊表的操作206
15.3.3循环鍊表209
15.3.4双向鍊表209
15.4栈210
15.4.1栈的概念210
15.4.2栈的实现210
15.5伫列214
15.5.1伫列的概念214
15.5.2伫列的实现和操作215
习题15217
第三篇实 例 解 析
第16章基本编程实例221实例1利用输入重定向从档案中读数据221
实例2火车託运费的计算222
实例3找小偷223
实例4判断整数能被3、5、7中的哪些数整除224
实例5找假货225
实例6计算某天是一年中的第几天227
实例7国民生产总值多少年翻番227
实例8兑换硬币228
实例9里程碑上的对称数229
实例10辗转赋值法求表达式的值230
实例11随机数的生成231
实例12列印魔方阵233
实例13猜数游戏234
实例14二维数组的排序输出235
实例15寻找假币236
实例16列印乘法口诀237
实例17计算矩阵相乘238
实例18向排好序的数组中插入数据239
实例19数组作计数器240
实例20判断字元串是否回文241
实例21找素数242
实例22字元串转换为实数243
实例23任意进制数的转换245
实例24利用位运算求整数的原码或补码246
实例25字元串逆置246
实例26用递归法逆序输出字元串247
实例27用递归法对数组排序247
实例28向主调函式中的局部变数存数据248
实例29通过指针变数使函式“返回”两个值249
实例30利用位运算对字母进行大小写转换250
实例31用结构体处理学生成绩251
实例32报数游戏252
实例33带参数的main函式253
实例34时钟程式254
实例35简单的计算器(一)256
实例36简单的计算器(二)258
第17章算法与数据结构实例262
实例1冒泡法排序262
实例2选择法排序263
实例3插入排序264
实例4储油问题265
实例501背包问题267
实例6顺序表的插入和删除270
实例7鍊表操作(一)272
实例8鍊表操作(二)277
实例9鍊表的逆置279
实例10约瑟夫环280
实例11双鍊表的操作283
实例12多项式的表示和计算287
实例13十进制数转换为二进制数290
实例14检查括弧配对292
实例15八皇后问题294
实例16迷宫问题296
实例17骑士巡游问题299
实例18农夫过河问题302
实例19表达式计算308
第18章趣味数学和数值计算实例315
实例1马克思手稿中的数学题315
实例2新郎和新娘配对316
实例3分糖果317
实例4泊松的分酒问题319
实例5求π的近似算法321
实例6角谷猜想323
实例7四方定量324
实例8卡布列克数325
实例9求解线性方程327
实例10求积分331
实例11超长整数的加法332
第19章图形编程实例338
实例1画点及画线函式338
实例2绘製圆、圆弧和椭圆339
实例3画矩形和条形的函式340
实例4设定背景色和前景色340
实例5设定线条类型341
实例6设定填充类型和填充颜色342
实例7图形方式下输出文本343
实例8绘製时钟343
实例9跳动小球345
实例10用直方图显示学生成绩分布347
实例11用圆饼图显示比例349
实例12相向运动的球350
实例13模拟满天星351
实例14正弦曲线352
实例15卫星环绕地球运动353
实例16按钮的製作355
实例17火箭发射演示358
实例18火焰动画製作360
第20章系统和档案操作实例364
实例1获取并修改当前驱动器364
实例2建立目录365
实例3选择当前目录366
实例4删除目录366
实例5获得当前目录367
实例6建立档案368
实例7打开档案369
实例8读档案370
实例9写档案371
实例10关闭档案372
实例11删除档案373
实例12档案改名374
实例13读取CMOS信息375
实例14档案连线376
实例15档案读写操作377
第21章趣味游戏实例379
实例1俄罗斯方块379
实例2贪吃蛇游戏381
实例3潜艇大战383
实例4搬运工384
实例5商人过河游戏387
实例6五子棋389
实例7扫雷389
第22章综合套用实例392
实例1数据档案的读取及图形显示392
实例2数独游戏的求解399
实例3通信录管理系统404
附录A常用的视频BIOS调用408
附录BINT 21H常用功能调用一览表414附录CASCII码錶419参考文献421第1章图像处理基础1
1.1点阵图与矢量图1
1.1.1点阵图1
1.1.2矢量图2
1.2解析度2
1.3颜色模式3
1.4常用档案的存储格式6
1.5转换图像档案格式实例8
第2章Photoshop基本操作10
2.1熟悉工作区10
2.2图像处理基本工作流程13
2.2.1创建新图像档案 13
2.2.2存储图像档案14
2.2.3打开和关闭档案15
2.2.4颜色的设定16
2.2.5填充颜色18
2.2.6使用标尺、格线与参考线19
2.2.7图像编辑的基本操作21
2.3改变图像大小操作实例24
第3章选区的使用27
3.1创建选区27
3.1.1创建规则选区27
3.1.2创建不规则选区29
3.1.3智慧型化的选取工具303.2编辑选区32
3.2.1移动选区33
3.2.2反向选区33
3.2.3取消选区33
3.2.4再次选择刚刚选取的选区33
3.2.5变换选区33
3.2.6增加选区33
3.2.7减少选区34
3.2.8修改选区34
3.2.9羽化选区35
3.2.10选区描边35
3.2.11存储与载入选区35
3.2.12複製、剪下、移动和贴上选区的内容35
3.3绘製一个太极图图示36
第4章图像的绘製与修饰40
4.1绘制图像40
4.1.1画笔工具40
4.1.2铅笔工具42
4.1.3颜色替换工具42
4.1.4擦除工具43
4.2修饰工具44
4.2.1修复画笔工具组44
4.2.2图章工具组47
4.2.3模糊工具组48
4.2.4历史记录画笔工具组49
4.3绘製花纹图案50
第5章色彩的调整53
5.1使用调整工具53
5.2色彩调整的基本方法54
5.2.1去色54
5.2.2反相54
5.2.3阈值55
5.2.4色调分离56
5.2.5色调均化56
5.2.6自动色调56
5.2.7自动对比度56
5.2.8自动颜色57
5.3色彩调整的中级方法57
5.3.1亮度/对比度57
5.3.2色彩平衡57
5.3.3替换颜色58
5.3.4照片滤镜59
5.3.5通道混合器60
5.4色彩调整的高级方法61
5.4.1色阶61
5.4.2曲线62
5.4.3色相/饱和度64
5.4.4渐变映射65
5.4.5可选颜色66
5.4.6匹配颜色66
5.5照片白天变黑夜67
第6章图层的套用72
6.1图层的基础知识72
6.1.1图层面板和选单72
6.1.2图层的类型73
6.2图层的编辑74
6.2.1新建、複製、移动和删除图层74
6.2.2图层的连结、对齐、合併74
6.2.3图层的变换75
6.2.4图层的编组75
6.2.5调整图层的不透明度76
6.3图层的混合模式76
6.4图层样式80
6.4.1图层样式命令80
6.4.2图层样式效果80
6.5填充图层和调整图层87
6.5.1填充图层87
6.5.2调整图层 87
6.5.3编辑图层内容88
6.6製作水晶按钮88
第7章蒙版和通道91
7.1蒙版的创建与基本操作91
7.1.1蒙版及类型91
7.1.2快速蒙版91
7.1.3蒙版面板93
7.1.4图层蒙版94
7.1.5矢量蒙版95
7.1.6剪贴蒙版96
7.2通道及其基本操作96
7.2.1通道及类型96
7.2.2通道的基本操作 97
7.2.3专色通道的使用99
7.2.4通道运算100
7.3使用“贴入”命令创建日落风光101
7.4使用“矢量蒙版”命令创建春色满园102
7.5用通道作为选区载入的技术製作黄花效果104
第8章文本编辑106
8.1输入文字106
8.1.1输入横排、直排文字106
8.1.2输入段落文字107
8.1.3输入蒙版文字107
8.2编辑文字108
8.2.1“字元”面板108
8.2.2“段落”面板108
8.2.3路径文字109
8.3转换文字109
8.3.1将文字转换为路径109
8.3.2将文字转换为形状110
8.3.3将文字层转换为普通层110
8.4变形文字110
8.4.1通过“变换”选单製作变形文字111
8.4.2利用预设的样式製作变形文字111
8.5段落文字的创建和编辑实例112
第9章路径和形状的绘製115
9.1绘製路径115
9.1.1钢笔工具 115
9.1.2自由钢笔工具116
9.1.3添加锚点工具117
9.1.4删除锚点工具117
9.1.5转换点工具117
9.2路径的选择和编辑117
9.2.1路径选择工具组118
9.2.2“路径”面板118
9.2.3填充路径119
9.2.4描边路径119
9.2.5路径转换为选区119
9.2.6选区转换为路径120
9.2.7路径的变形121
9.2.8保存与输出路径121
9.3绘製形状图形122
9.3.1矩形工具122
9.3.2圆角矩形工具122
9.3.3椭圆工具123
9.3.4多边形工具123
9.3.5直线工具124
9.3.6自定形状工具124
9.4製作邮票125
第10章滤镜的套用128
10.1滤镜128
10.1.1滤镜的功能128
10.1.2滤镜的分类128
10.1.3滤镜的使用规则128
10.1.4滤镜选单129
10.2滤镜库129
10.3液化130
10.4常用滤镜的套用131
10.4.1风格化131
10.4.2模糊132
10.4.3扭曲134
10.4.4锐化135
10.4.5像素化136
10.4.6渲染137
10.4.7杂色138
10.4.8画笔描边140
10.4.9视频142
10.4.10素描142
10.4.11转换为智慧型滤镜144
10.4.12纹理144
10.4.13艺术效果145
10.4.14作品保护(Digimarc)147
10.5利用滤镜製作水波147
第11章综合案例150
11.1製作证件照150
11.2绘製手镯153
11.3利用滤镜製作放射文字158
附录Photoshop CS6常用快捷键164
参考文献168