内容简介
本书全面介绍了应用C语言进行开发的各种技术和技巧,全书共分12章,内容包括基础知识、指针、数据结构、算法、数学应用、文件操作、库函数应用、图形图像、系统调用、加解密与安全性、游戏、综合应用等。全书共提供300个实例,每个实例都突出了其实用性。
本书既可作为C程序的初学者学习用书,也可作为程序开发人员、相关培训机构老师和学生的参考用书。
第1章 基础知识 1
1.1 进制转换 2
实例001 十进制转换为十六进制 2
实例002 十进制转换为二进制 3
实例003 n进制转换为十进制 4
实例004 以IP地址形式输出 5
1.2 条件判断 6
实例005 3个数由小到大排序 6
实例006 a2+b2 8
实例007 整倍数 9
实例008 判断闰年 10
实例009 阶梯问题 11
实例010 评定成绩 12
实例011 整数加减法练习 13
实例012 模拟ATM机界面程序 14
1.3 多重循环打印图形 17
实例013 用#打印三角形 17
实例014 用*打印图形 18
实例015 绘制余弦曲线 20
实例016 打印乘法口诀表 21
实例017 打印杨辉三角 22
1.4 循环的数学应用 23
实例018 序列求和 23
实例019 简单的级数运算 24
实例020 用while语句求n! 25
实例021 特殊等式 26
实例022 求一个正整数的所有因子 27
实例023 一元钱兑换方案 28
实例024 对调数问题 29
实例025 数平方和运算的问题 30
1.5 数组 31
实例026 逆序存放数据 32
实例027 相邻元素之和 33
实例028 选票统计 34
实例029 模拟比赛打分 35
实例030 对调最大与最小数位置 36
实例031 二维数组行列互换 37
实例032 使用数组统计学生成绩 39
实例033 打印5阶幻方 40
1.6 字符和字符串操作 41
实例034 统计各种字符个数 41
实例035 字符串倒置 43
实例036 字符串替换 44
实例037 回文字符串 45
实例038 不用strcat连接两个字符串 46
实例039 删除字符串中连续字符 47
实例040 字符升序排列 49
实例041 在指定的位置后插入字符串 50
1.7 函数 51
实例042 求字符串中字符的个数 51
实例043 递归解决年龄问题 53
实例044 求学生的平均身高 54
实例045 分数计算器程序 55
1.8 趣味计算 57
实例046 加油站加油 57
实例047 小球下落问题 58
实例048 灯塔数量 59
实例049 买苹果问题 60
实例050 猴子吃桃 61
实例051 老师分糖果 62
实例052 新同学的年龄 63
实例053 百钱百鸡问题 64
实例054 彩球问题 65
实例055 求总数问题 66
1.9 宏定义与位运算 67
实例056 用宏定义实现值互换 67
实例057 普通的位运算 69
实例058 循环移位 70
第2章 指针 73
2.1 指针变量 74
实例059 使用指针实现数据交换 74
实例060 使用指针实现整数排序 75
实例061 指向结构体变量的指针 76
2.2 指针与数组 77
实例062 使用指针输出数组元素 77
实例063 用指针实现逆序存放数组元素值 79
实例064 输出二维数组有关值 80
实例065 输出二维数组任一行任一列值 81
实例066 使用指针查找数列中最大值、最小值 83
实例067 用指针数组构造字符串数组 84
实例068 将若干字符串按照字母顺序输出 85
2.3 指针与函数 86
实例069 用指向函数的指针比较大小 86
实例070 使用返回指针的函数查找最大值 88
实例071 使用指针函数求学生成绩 89
实例072 寻找指定元素的指针 90
实例073 寻找相同元素的指针 91
2.4 字符串与指针 92
实例074 使用指针实现字符串复制 92
实例075 字符串的连接 94
实例076 字符串插入 95
实例077 字符串的匹配 96
2.5 指向指针的指针 97
实例078 使用指针的指针输出字符串 98
实例079 实现输入月份号输出该月份英文名 99
实例080 使用指向指针的指针对字符串排序 100
第3章 数据结构 103
3.1 结构体 104
实例081 结构体简单应用 104
实例082 找最高分 106
实例083 平均成绩 108
实例084 比较计数 109
实例085 信息查询 110
实例086 计算开机时间 111
3.2 链表 112
实例087 创建单向链表 112
实例088 创建双向链表 114
实例089 创建循环链表 117
实例090 双链表逆置 118
实例091 双链表逆序输出 120
实例092 约瑟夫环 122
实例093 创建顺序表并插入元素 123
实例094 向链表中插入结点 125
实例095 从链表中删除结点 126
实例096 合并两个链表 129
实例097 单链表就地逆置 130
实例098 头插入法建立单链表 132
3.3 栈和队列 133
实例099 应用栈实现进制转换 133
实例100 用栈设置密码 135
实例101 栈实现行编辑程序 138
实例102 括号匹配检测 141
实例103 用栈及递归计算多项式 143
实例104 链队列 144
实例105 循环缓冲区问题 147
3.4 串与广义表 149
实例106 串的模式匹配 149
实例107 简单的文本编辑器 151
实例108 广义表的存储 154
实例109 广义表的复制 156
3.5 二叉树 160
实例110 二叉树的递归创建 160
实例111 二叉树的遍历 162
实例112 线索二叉树的创建 164
实例113 二叉排序树 166
实例114 哈夫曼编码 167
3.6 图及图的应用 169
实例115 图的邻接表存储 170
实例116 图的深度优先搜索 172
实例117 图的广度优先搜索 175
实例118 Prim算法求最小生成树 177
实例119 迪杰斯特拉算法 180
第4章 算法 183
4.1 简单问题算法 184
实例120 任意次方后的最后三位 184
实例121 计算π的近似值 184
实例122 小于500的所有勾股数 185
实例123 能否组成三角形 186
实例124 偶数拆分 187
实例125 乘积大于和的数 188
实例126 求各位上和为5的数 189
实例127 计算某日是该年第几天 190
4.2 排序算法 191
实例128 直接插入排序 192
实例129 希尔排序 193
实例130 起泡排序 194
实例131 快速排序 195
实例132 选择排序 197
实例133 归并排序 198
4.3 查找算法 199
实例134 顺序查找 199
实例135 二分查找 201
实例136 分块查找 202
实例137 哈希查找 203
4.4 定理与猜想 206
实例138 斐波那契数列 206
实例139 角谷猜想 207
实例140 哥德巴赫猜想 208
实例141 四方定理 209
实例142 尼科彻斯定理 210
4.5 逻辑推理与判断 211
实例143 魔术师的秘密 211
实例144 婚礼上的谎言 212
实例145 谁讲了真话 213
实例146 黑纸与白纸 215
实例147 判断坏球 216
第5章 数学应用 221
5.1 素数问题 222
实例148 求100~200的素数 222
实例149 可逆素数 223
实例150 回文素数 224
5.2 整数趣题 225
实例151 阿姆斯特朗数 225
实例152 特殊的完全平方数 226
实例153 求1000以内的完全数 227
实例154 三重回文数 228
实例155 亲密数 229
实例156 自守数 230
实例157 满足abcd=(ab+cd)2的数 231
实例158 神奇的数字6174 232
实例159 一数三平方 233
5.3 数学问题求解 234
实例160 求等差数列 234
实例161 求整数的绝对值 235
实例162 正弦、余弦、正切值 236
实例163 自然对数的底e的计算 237
实例164 最大公约及最小公倍数 238
实例165 求解二元一次不定方程 239
实例166 二分法求解方程 241
实例167 牛顿迭代法解方程的根 242
5.4 矩阵 243
实例168 打印特殊方阵 243
实例169 求3×3矩阵对角元素之和 244
实例170 矩阵的加法运算 245
实例171 矩阵的乘法运算 246
实例172 打印n阶螺旋方阵 247
5.5 生活中的数学 249
实例173 求车运行速度 249
实例174 卖西瓜 250
实例175 打渔晒网问题 251
实例176 水池注水问题 252
实例177 捕鱼和分鱼问题 253
实例178 递归解分鱼问题 254
实例179 巧分苹果 255
第6章 文件操作 257
6.1 文件读写操作 258
实例180 读取磁盘文件 258
实例181 将数据写入磁盘文件 259
实例182 格式化读写文件 260
实例183 成块读写操作 262
实例184 随机读写文件 263
实例185 以行为单位读写文件 265
6.2 文件内容操作 266
实例186 复制文件内容到另一文件 267
实例187 错误处理 268
实例188 合并两个文件信息 270
实例189 统计文件内容 271
6.3 文件的创建、查找及删除 272
实例190 创建文件 273
实例191 创建临时文件 274
实例192 查找文件 275
实例193 重命名文件 275
实例194 删除文件 276
实例195 删除文件中的记录 277
6.4 文件相关操作 279
实例196 关闭打开的所有文件 279
实例197 同时显示两个文件的内容 281
实例198 显示目录内同类型文件 282
实例199 文件分割 284
实例200 文件加密 286
第7章 库函数调用 289
7.1 时间转换和操作函数 290
实例201 固定格式输出当前时间 290
实例202 当前时间转换 291
实例203 显示程序运行时间 292
实例204 获取DOS系统时间 293
实例205 设置DOS系统日期 293
实例206 设置DOS系统时间 294
实例207 读取并设置bios的时钟 295
7.2 数学函数 296
实例208 求相对的最小整数 296
实例209 求直角三角形斜边 297
实例210 小数分离 298
实例211 求任意数n次幂 299
7.3 字符串、字符函数 300
实例212 函数实现字符匹配 300
实例213 任意大写字母转小写 301
实例214 字符串复制到指定空间 302
实例215 查找位置信息 303
7.4 其他函数 304
实例216 复制当前目录 304
实例217 产生惟一文件 305
实例218 不同亮度显示 306
实例219 字母检测 307
实例220 建立目录 308
实例221 删除目录 309
实例222 数字检测 310
实例223 快速分类 311
实例224 访问系统temp中的文件 313
实例225 设置组合键 314
第8章 图形图像 317
8.1 基本图形 318
实例226 绘制直线 318
实例227 绘制表格 319
实例228 绘制矩形 321
实例229 绘制椭圆 322
实例230 绘制圆弧线 323
实例231 绘制扇区 324
实例232 绘制空心圆 325
实例233 画一个箭头 326
实例234 绘制正弦曲线 327
实例235 绘制彩带 329
8.2 色彩填充及使用 330
实例236 黄色网格填充的椭圆 330
实例237 红色间隔点填充多变形 332
实例238 绘制五角星 333
实例239 颜色变换 334
实例240 彩色扇形 335
实例241 输出不同字体 336
8.3 屏幕操作 338
实例242 相同图案的输出 338
实例243 设置文本及背景颜色 340
实例244 简单的键盘画图程序 342
实例245 鼠标绘图 344
实例246 艺术清屏 346
8.4 图形动画 349
实例247 图形时钟 349
实例248 火箭发射 351
实例249 运动的问候语 352
实例250 正方形下落 353
实例251 跳动的小球 354
实例252 旋转的五角星 356
实例253 变化的同心圆 358
实例254 小球碰撞 359
8.5 图形综合实例 361
实例255 圆形精美图案 361
实例256 直线精美图案 362
实例257 心形图案 363
实例258 钻石图案 365
实例259 雪花 366
实例260 直线、正方形综合 368
第9章 系统相关 371
9.1 时间和日期 372
实例261 获取当前日期与时间 372
实例262 获取当地日期与时间 373
实例263 格林尼治平时 373
实例264 设置系统日期 374
9.2 BIOS操作 376
实例265 获取BIOS常规内存容量 376
实例266 读/写BIOS计时器 377
实例267 获取CMOS密码 377
9.3 硬件、软件中断 379
实例268 获取Ctrl+Break键消息 379
实例269 鼠标中断 380
实例270 设置文本显示模式 382
9.4 磁盘相关 385
实例271 获取当前磁盘空间信息 385
实例272 备份/恢复硬盘分区表 387
实例273 硬盘逻辑锁 390
9.5 信息获取 392
实例274 显卡类型测试 392
实例275 获取系统配置信息 393
实例276 获取环境变量 395
实例277 获取寄存器信息 396
9.6 其他 397
实例278 恢复内存文本 397
实例279 绘制立体窗口 399
实例280 控制扬声器声音 401
实例281 获取Caps Lock键状态 402
实例282 删除多级目录 403
第10章 加解密与安全性 407
10.1 程序保护 408
实例283 自毁程序 408
实例284 明码序列号保护 409
实例285 非明码序列号保护 410
10.2 加密解密 412
实例286 MD5加密 412
实例287 RSA加密 419
实例288 DES加密 420
实例289 RC4加密 424
实例290 SHA1加密 427
实例291 恺撒加密 432
第11章 游戏 435
实例292 猜数字游戏 436
实例293 24点游戏 438
实例294 贪吃蛇游戏 440
实例295 五子棋游戏 444
实例296 弹力球游戏 450
第12章 综合应用 457
实例297 学生管理系统 458
实例298 火车订票系统 465
实例299 通信录管理系统 472
实例300 图书管理系统 476
技术要点对应实例位置 487
1