×
图文详情
  • ISBN:9787115464064
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:32开
  • 页数:334
  • 出版时间:2017-09-01
  • 条形码:9787115464064 ; 978-7-115-46406-4

本书特色

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

内容简介

畅销书《明解C语言》第-2弹,C语言进阶不二之选! 111段代码 152幅图表,图文并茂,讲解清晰易懂。 10个有趣的游戏程序,让你在快乐编程中学会实用技巧。 双色印刷,版式赏心悦目。 本书是日本超受欢迎的C语言教程,荣获日本工学教育协会著作奖,原版系列累计畅销超100万册! 本书适合以下读者阅读: 1.入门书中的示例程序都能看懂,但是自己写不出来; 2.理解数组、指针等语法,但是不知如何在程序中使用; 3.学完入门书后找不到一本合适的书继续学习……

目录

第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

展开全部

作者简介

柴田望洋 日本福冈工业大学信息工程学院副教授。在IT界家喻户晓,编写了一系列极富影响力的计算机教材和参考书,如《明解C 》《明解Java》等。本书荣获日本工学教育协会著作奖。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航