《明解C语言 中级篇》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(日)柴田望洋著;丁灵译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2017
  • ISBN:9787115464064
  • 页数:338 页
图书介绍:本书图文并茂,示例丰富,通过111段代码和152符图表,通俗易懂地讲解了C语言的进阶知识。全书共10章,每章都会带领读者开发一个有趣的程序,比如“猜数游戏”“猜拳游戏”“打字练习”等,让读者在程序开发的过程中逐步掌握相关的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/OSX) 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