明解C语言:中级篇 PDF下载

转载至:  https://www.jb51.net/books/656139.html

下载链接: 

下载声明:  本资料仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版!

本书延续了《明解C语言:入门篇》图文并茂、示例丰富、讲解细致的风格,在结构上又独树一帜,每章都会带领读者编写一个游戏程序并逐步完善或加以变更,来讲解相关的C语言进阶知识。每章的程序都很简单有趣,而且包含着很多实用性的技巧,例如随机数的生成、数组的应用方法、字符串和指针、命令行参数、文件处理、接收可变参数的函数的生成方法、存储空间的动态分配与释放,等等。此外,还会讲解详细的语法规则、众多库函数的使用方法、算法等知识。

本书适合有一定C语言基础,想要掌握实际编程能力的读者阅读。

第1章 猜数游戏  1
1-1 猜数判定  2
通过if语句实现条件分支  2
if语句的嵌套  3
实现多分支的方法  4
1-2 重复到猜对为止  8
通过do语句循环  8
相等运算符和关系运算符  9
通过while语句循环  10
break语句  10
while语句和do语句  11
先判断后循环和先循环后判断  11
1-3 随机设定目标数字  12
rand函数:生成随机数  12
srand函数:设置用于生成随机数的种子  13
随机设定目标数字  15
限制输入次数  17
1-4 保存输入记录  22
数组  22
把输入的值存入数组  24
通过for语句来显示输入记录  26
数组元素的初始化  28
获取数组的元素个数  29
第2章 专注于显示  33
2-1 熟练运用转义字符  34
转义字符  34
\a:警报符  35
\n:换行符  35
\f:换页符  35
\b:退格符  36
\r:回车符  38
\t:水平制表符  39
\v:垂直制表符  39
\'和\":单引号和双引号  40
putchar函数:输出字符  40
\?:问号符  40
\\:反斜杠字符  41
八进制转义字符和十六进制转义字符  41
2-2 操纵时间  42
clock函数:获取程序启动后经过的时间  42
计算处理所需的时间  46
暂停处理一段时间  47
2-3 字幕显示  50
逐个显示并消除字符  50
strlen函数:查询字符串的长度  50
字幕显示(从右往左)  52
字幕显示(从左往右)  53
2-4 格式输入输出  56
把要显示的位数指定为变量  56
显示任意数量的空白字符  57
printf函数:格式输出  60
scanf函数:格式输入  63
第3章 猜拳游戏  69
3-1 猜拳游戏  70
基本设计  70
switch语句  72
表示“手势”的字符串  74
包含汉字的字符串  75
char型  76
显示所有的字符  77
isprint函数:判断显示字符  78
条件运算符和条件表达式  78
字符串的内部  79
通过指针来遍历字符串  80
CHAR_BIT  81
指向字符串的指针数组  81
程序的改良  84
手势的值和手势的判断  86
让计算机“后出”  87
3-2 函数的分割  88
胜负次数  88
函数和标识符的作用域  90
猜赢3次就结束  91
第4章 珠玑妙算  97
4-1 珠玑妙算  98
珠玑妙算  98
出题  99
读取数字串  101
atoi函数/atol函数/atof函数:把字符串转换为数值  102
检查已读取的字符串的有效性  103
字符类别的判断  105
hit和blow的判断  107
第5章 记忆力训练  117
5-1 单纯记忆训练  118
训练记忆4位数  118
整数型的表示范围  119
训练记忆任意位数的数值  120
输入训练等级  121
用字符串表示数值  122
生成作为题目的字符串  122
显示作为题目的字符串  123
strcmp函数:字符串的比较  124
英文字母记忆训练(其一)  125
生成作为题目的字符串  127
英文字母记忆训练(其二)  127
5-2 加一训练  130
加一训练  130
输入等级  132
生成并显示题目  132
消除题目  132
输入答案  133
判断对错  133
保存答对数量  133
显示训练结果  133
用横向图形显示  134
用纵向图形显示  135
把数值存入数组  136
如何存储超过数组元素个数的值(其一)  138
如何存储超过数组元素个数的值(其二)  140
加一训练的改良  142
5-3 存储空间的动态分配与释放  144
声明数组  144
动态存储期  145
存储空间的动态分配与释放  146
指向void型的指针  146
为单个对象分配存储空间  148
为数组对象分配存储空间  151
第6章 日历  161
6-1 今天是几号  162
今天的日期  162
time_t型:日历时间  162
time函数:以日历时间的形式来获取当前时间  163
tm结构体:分解时间  164
localtime函数:把日历时间转换成表示本地时间的分解时间  164
gmtime函数:把日历时间转换成UTC分解时间  166
通过当前时间设定随机数种子  167
asctime函数:把分解时间转换成字符串  167
ctime函数:把日历时间转换成字符串  170
difftime函数:求时间差  171
暂停处理一段时间  173
6-2 求星期  174
mktime函数:把表示本地时间的分解时间转换成日历时间  174
蔡勒公式  175
6-3 日历  178
显示日历  178
求星期  179
闰年的判断  179
月份的天数  179
显示日历的过程  180
横向显示  182
把1个月的日历存入字符串  186
sprintf函数:对字符串进行格式化输出  186
生成空字符串  187
strcpy函数:字符串的复制  188
在第1日左侧设置空白  189
strcat函数:字符串的连接  190
显示字符串  192
年月的计算  193
6-4 命令行参数  194
命令行参数  194
argv指向的实体  196
通过指针以字符串为单位遍历argv  197
通过指针以字符为单位遍历argv  199
不使用argc来遍历  204
启动程序时指定年月的日历  205
第7章 右脑训练  211
7-1 寻找幸运数字  212
复制数组  212
复制数组时跳过一个数组元素  214
寻找幸运数字  216
重新排列数组元素  217
交换两个值  219
7-2 寻找重复数字  222
寻找重复数字  222
键盘输入和操作性能的提升(MS-Windows/MS-DOS)  224
getch函数:获取按下的键  225
putch函数:输出到控制台  225
键盘输入和操作性能的提升(UNIX / Linux / OS X)  226
通用头文件  227
包含头文件保护的头文件的设计  229
替换调用的函数  231
可变参数的声明  232
va_start宏:访问可变参数前的准备  233
va_arg宏:取出可变参数  234
va_end宏:结束对可变参数的访问  235
vprintf函数/ vfprintf函数:输出到流  235
vsprintf函数:输出到字符串  237
改良后的程序  238
7-3 三字母词联想训练  241
瞬间判断力的养成  241
生成题目  242
第8章 打字练习  247
8-1 基本打字练习  248
输入一个字符串  248
消除已输入的字符  249
输入多个字符串  252
打乱出题顺序(方法一)  254
打乱出题顺序(方法二)  256
8-2 键盘布局联想打字  258
键盘布局联想打字  258
8-3 综合打字练习  261
练习菜单  261
单一位置训练  267
混合位置训练  269
C语言的单词训练  271
英语会话训练  273
第9章 文件处理  277
9-1 标准流  278
复制程序  278
getchar函数和EOF  278
赋值和比较  279
流和缓冲区  280
缓冲的种类  280
setvbuf函数/setbuf函数:更改缓冲方法  281
fflush函数:刷新缓冲区  282
标准流  283
重定向  284
9-2 文本文件  285
文件的打开和关闭  285
fopen函数:打开文件  285
FILE型  287
fclose函数:关闭文件  288
保存和获取训练信息  288
更新最高得分  292
读取训练信息  292
fscanf函数:输入格式  293
写入训练信息  293
fprintf函数:输出格式  293
9-3 实用程序的编写  294
concat:文件的连接输出  294
fgetc 函数:从流中读取一个字符  297
fputc 函数:向流输出一个字符  297
detab:把水平制表符转换成空白字符  298
fputs 函数:输出字符串  301
entab:把空白字符转换成水平制表符  302
9-4 二进制文件  304
文本文件和二进制文件   304
fread函数:从文件中读取数据  305
fwrite 函数:向文件中写入数据  305
hdump:通过字符和十六进制编码实现文件转储  305
bcopy:复制文件  307
第10章 英语单词学习软件  311
10-1 英语单词学习软件  312
单词显示软件  312
选择和显示单词  313
向单词学习软件扩展  314
显示选项  316
生成选项  316
生成选项(改良版本)  318
10-2 为字符串数组动态分配空间  320
为单一字符串动态分配空间  320
为字符串数组(二维数组)动态分配空间  321
为字符串数组(指针数组)动态分配空间  323
单词文件的读取  330
后记  335
致谢  336
参考文献  337

打赏 支付宝打赏 微信打赏

如果文章对您有帮助,欢迎移至上方打赏按钮...

随手一点
  • 打酱油

    34人

  • 146人

  • 呵呵

    7人

  • 草泥马

    9人

文章评论 抢沙发