• c语言程序设计 现代方法 第2版·修订版 编程语言 (美)k.n.金 新华正版
  • c语言程序设计 现代方法 第2版·修订版 编程语言 (美)k.n.金 新华正版
21年品牌 40万+商家 超1.5亿件商品

c语言程序设计 现代方法 第2版·修订版 编程语言 (美)k.n.金 新华正版

61.5 4.7折 129.8 全新

库存224件

江苏无锡
认证卖家担保交易快速发货售后保障

作者(美)k.n.金

出版社人民邮电出版社

ISBN9787115565198

出版时间2021-07

版次2

装帧平装

开本16

页数696页

字数1273千字

定价129.8元

货号xhwx_1202416696

上书时间2024-09-24

念微书店

四年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
正版特价新书
商品描述
主编:

1.近30年来c语言入门教程,累计印数10万,豆瓣评分9.3分
2.c开发人员的理想参书,哈佛、麻省理工、斯坦福等诸多名校c语言教材 
3.第二版修订版基于c1x标准新升级,增加了c11和c18中的内容,同时章末包含大量题供读者练
4.书中讨论了各种实际的环境和使用场景,包括window、unix和linux等
5.浙江大学教授翁恺、哈尔滨大学教授苏小红、boolan咨询师吴咏炜、linux专家宋宝华联合

c语言已经有近50年的历史了。在中国,超过95%的大学用c语言作为入门编程语言,但也因此把c语言当作一种学编程的媒介语言来教,使得只学到了其中的基础部分,而对c语言近30年的发展及其在中的应用所知甚少。本书是难得的真正讲述c语言的教材,覆盖了c99、c11、c18标准的内容。本书非常适合今后会用c语言来做嵌入式系统、设备驱动和作系统等产品开发的人士学。在浙江大学,我们在工程实践课程中使用了本书的上一个版本,收获了良好的效果。

——翁恺,浙江大学计算机学院教授

书如其名,本书以一种崭新的视角和通俗易懂的方式,来向读者介绍c语言的“现代方法”,聚焦程序设计的核心问题和方法,给c语言这门经久不衰、老而弥坚的语言赋予了崭新的面貌。本书介绍了c99和c1x的许多新特,而且编排方式方便读者查阅。本书用现代的视角来解读c语言,每章后面的“问与答”也很贴心,适时地解答了读者在阅读过程中可能会遇到的很多疑难问题。本书内容特别适合具备语言基础,想深入了解c语言精髓的读者,我相信这本书会受到读者的欢迎,成为c语言爱好者提升内功的一本武林秘笈。

——苏小红,哈尔滨大学教授、博士生导师,省级名师

本书讨论了c语言的所有特,从c89一直贯穿到c18。内容足够新,也足够全面,这是它的突出特。

——吴咏炜,boolan首席咨询师

本书是c语言程序设计的经典图书,本次修订版增加了c1x的内容,并c1x与之前的c89、c99进行了比对,做到了与时俱进。本书更是新增了第28章,重点介绍了c1x的多线程特,相信对读者会有巨大的帮助。读者通过阅读本书,可深入理解c89、c99和c1x的演进,并进一步思c语言为什么这么演进,这对提高自身的思维能力以及对软件工程问题的认知都会有帮助。

——宋宝华,linux专家

目录:

章 c语言概述1

1.1c语言的历史1

1.1.1起源1

1.1.2标准化1

1.1.3基于c的语言2

1.2c语言的优缺点3

1.2.1c语言的优点3

1.2.2c语言的缺点4

1.2.3高效地使用c语言5

问与答5

第2章 c语言基本概念7

2.1编写一个简单的c程序7

2.1.1编译和8

2.1.2集成开发环境9

2.2简单程序的一般形式9

2.2.1指令9

2.2.2函数9

2.2.3语句10

2.2.4显示字符串11

2.3注释11

2.4变量和赋值13

2.4.1类型13

2.4.2声明13

2.4.3赋值14

2.4.4显示变量的值15

2.4.5初始化16

2.4.6显示表达式的值17

2.5读入输入17

2.6定义常量的名字18

2.7标识符19

2.8c程序的书写规范21

问与答23

练题25

编程题26

第3章 格式化输入/输出28

3.1printf函数28

3.1.1转换说明29

3.1.2转义序列31

3.2scanf函数31

3.2.1scanf函数的工作方法32

3.2.2格式串中的普通字符34

3.2.3易混淆的printf函数和scanf函数34

问与答35

练题37

编程题38

第4章 表达式40

4.1算术运算符40

4.2赋值运算符44

4.2.1简单赋值44

4.2.2左值45

4.2.3复合赋值45

4.3自增运算符和自减运算符46

4.4表达式求值47

4.5表达式语句50

问与答50

练题52

编程题54

第5章 选择语句56

5.1逻辑表达式56

5.1.1关系运算符56

5.1.2判等运算符57

5.1.3逻辑运算符57

5.2if语句58

5.2.1复合语句59

5.2.2else子句59

5.2.3级联式if语句61

5.2.4“悬空else”的问题63

5.2.5条件表达式63

5.2.6c89中的布尔值64

5.2.7c99中的布尔值65

5.3switch语句66

问与答69

练题72

编程题74

第6章 循环77

6.1while语句77

6.2do语句80

6.3for语句82

6.3.1for语句的惯用法83

6.3.2在for语句中省略表达式83

6.3.3c99中的for语句84

6.3.4逗号运算符84

6.4退出循环86

6.4.1break语句87

6.4.2continue语句87

6.4.3goto语句88

6.5空语句90

问与答92

练题94

编程题95

第7章 基本类型97

7.1整数类型97

7.1.1c99中的整数类型99

7.1.2整型常量99

7.1.3c99中的整型常量100

7.1.4整数溢出100

7.1.5读/写整数101

7.2浮点类型102

7.2.1浮点常量103

7.2.2读/写浮点数103

7.3字符类型104

7.3.1字符作104

7.3.2有符号字符和无符号字符105

7.3.3算术类型105

7.3.4转义序列106

7.3.5字符处理函数107

7.3.6用scanf和printf读/写字符108

7.3.7用getchar和putchar读/写字符108

7.4类型转换110

7.4.1常规算术转换111

7.4.2赋值过程中的转换112

7.4.3c99中的隐式转换113

7.4.4强制类型转换114

7.5类型定义115

7.5.1类型定义的优点115

7.5.2类型定义和可移植116

7.6sizeof运算符117

问与答117

练题120

编程题121

第8章 数组124

8.1一维数组124

8.1.1数组下标124

8.1.2数组初始化126

8.1.3指示器127

8.1.4对数组使用sizeof运算符129

8.2多维数组130

8.2.1多维数组初始化131

8.2.2常量数组132

8.3c99中的变长数组134

问与答135

练题136

编程题138

第9章 函数141

9.1函数的定义和调用141

9.1.1函数定义144

9.1.2函数调用145

9.2函数声明147

9.3实际参数149

9.3.1实际参数的转换150

9.3.2数组型实际参数151

9.3.3变长数组形式参数153

9.3.4在数组参数声明中使用static154

9.3.5复合字面量155

9.4return语句155

9.5程序终止156

9.6递归157

9.7泛型选择161

问与答163

练题166

编程题169

0章 程序结构171

10.1局部变量171

10.1.1静态局部变量172

10.1.2形式参数172

10.2外部变量172

10.2.1示例:用外部变量实现栈172

10.2.2外部变量的利与弊173

10.3程序块177

10.4作用域178

10.5构建c程序179

问与答185

练题185

编程题186

1章 指针188

11.1指针变量188

11.2取地址运算符和间接寻址运算符189

11.2.1取地址运算符189

11.2.2间接寻址运算符190

11.3指针赋值191

11.4指针作为参数192

11.5指针作为返回值195

问与答196

练题198

编程题199

2章 指针和数组201

12.1指针的算术运算201

12.1.1指针加上整数202

12.1.2指针减去整数202

12.1.3两个指针相减203

12.1.4指针比较203

12.1.5指向复合字面量的指针203

12.2指针用于数组处理204

12.3用数组名作为指针206

12.3.1数组型实际参数(改进版)207

12.3.2用指针作为数组名208

12.4指针和多维数组209

12.4.1处理多维数组的元素209

12.4.2处理多维数组的行210

12.4.3处理多维数组的列210

12.4.4用多维数组名作为指针210

12.5c99中的指针和变长数组211

问与答212

练题213

编程题215

3章 字符串217

13.1字面串217

13.1.1字面串中的转义序列217

13.1.2延续字面串218

13.1.3如何存储字面串218

13.1.4字面串的作219

13.1.5字面串与字符常量219

13.2字符串变量220

13.2.1初始化字符串变量220

13.2.2字符数组与字符指针221

13.3字符串的读和写222

13.3.1用printf函数和puts函数写字符串222

13.3.2用scanf函数读字符串223

13.3.3逐个字符读字符串224

13.4访问字符串中的字符225

13.5使用c语言的字符串库226

13.5.1strcpy函数226

13.5.2strlen函数227

13.5.3strcat函数228

13.5.4strcmp函数229

13.6字符串惯用法231

13.6.1搜索字符串的结尾232

13.6.2复制字符串233

13.7字符串数组235

问与答238

练题241

编程题243

4章 预处理器246

14.1预处理器的工作246

14.2预处理指令248

14.3宏定义248

14.3.1简单的宏249

14.3.2带参数的宏250

14.3.3#运算符252

14.3.4##运算符253

14.3.5宏的通用属254

14.3.6宏定义中的圆括号254

14.3.7创建较长的宏255

14.3.8预定义宏256

14.3.9c99中新增的预定义宏257

14.3.10空的宏参数258

14.3.11参数个数可变的宏259

14.3.12__func__标识符260

14.4条件编译260

14.4.1#if指令和#endif指令260

14.4.2defined运算符261

14.4.3#ifdef指令和#ifndef指令261

14.4.4#elif指令和#else指令262

14.4.5使用条件编译262

14.5其他指令263

14.5.1#error指令263

14.5.2#line指令264

14.5.3#pragma指令265

14.5.4_pragma运算符265

问与答266

练题268

5章 编写大型程序272

15.1源文件272

15.2头文件273

15.2.1#include指令273

15.2.2共享宏定义和类型定义274

15.2.3共享函数原型275

15.2.4共享变量声明277

15.2.5嵌套包含278

15.2.6保护头文件278

15.2.7头文件中的#error指令279

15.3把程序划分成多个文件279

15.4构建多文件程序285

15.4.1makefile285

15.4.2期间的错误287

15.4.3重新构建程序287

15.4.4在程序外定义宏289

问与答289

练题291

编程题292

6章 结构、联合和枚举293

16.1结构变量293

16.1.1结构变量的声明293

16.1.2结构变量的初始化295

16.1.3指示器295

16.1.4对结构的作296

16.2结构类型296

16.2.1结构标记的声明297

16.2.2结构类型的定义298

16.2.3结构作为参数和返回值298

16.2.4复合字面量299

16.2.5匿名结构300

16.3嵌套的数组和结构301

16.3.1嵌套的结构301

16.3.2结构数组302

16.3.3结构数组的初始化302

16.4联合309

16.4.1用联合来节省空间310

16.4.2用联合来构造混合的数据结构312

16.4.3为联合添加“标记字段”312

16.4.4匿名联合313

16.5枚举314

16.5.1枚举标记和类型名315

16.5.2枚举作为整数315

16.5.3用枚举声明“标记字段”316

问与答316

练题318

编程题323

7章 指针的应用324

17.1动态存储分配324

17.1.1内存分配函数325

17.1.2空指针325

17.2动态分配字符串326

17.2.1使用malloc函数为字符串分配内存326

17.2.2在字符串函数中使用动态存储分配327

17.2.3动态分配字符串的数组327

17.3动态分配数组329

17.3.1使用malloc函数为数组分配存储空间329

17.3.2calloc函数330

17.3.3realloc函数330

17.4释放存储空间331

17.4.1free函数332

17.4.2“悬空指针”问题332

17.5链表332

17.5.1声明结点类型333

17.5.2创建结点333

17.5.3->运算符334

17.5.4在链表的开始处插入结点335

17.5.5搜索链表337

17.5.6从链表中删除结点338

17.5.7有序链表339

17.6指向指针的指针344

17.7指向函数的指针345

17.7.1函数指针作为参数345

17.7.2qsort函数346

17.7.3函数指针的其他用途347

17.8受限指针350

17.9弹数组成员351

问与答352

练题355

编程题358

8章 声明359

18.1声明的语法359

18.2存储类型360

18.2.1变量的质361

18.2.2auto存储类型361

18.2.3static存储类型362

18.2.4extern存储类型363

18.2.5register存储类型363

18.2.6函数的存储类型364

18.2.7小结365

18.3类型限定符366

18.4声明符366

18.4.1解释复杂声明368

18.4.2使用类型定义来简化声明369

18.5初始化器369

18.6内联函数371

18.6.1内联定义371

18.6.2对内联函数的372

18.6.3在gcc中使用内联函数372

18.7函数指定符_noreturn和头<stdnoreturn.h>373

18.8静态断言373

问与答374

练题377

9章 程序设计379

19.1模块379

19.1.1内聚与耦合381

19.1.2模块的类型381

19.2信息隐藏381

19.3抽象数据类型385

19.3.1封装385

19.3.2不完整类型386

19.4栈抽象数据类型386

19.4.1为栈抽象数据类型定义接386

19.4.2用定长数组实现栈抽象数据类型388

19.4.3改变栈抽象数据类型中数据项的类型389

19.4.4用动态数组实现栈抽象数据类型390

19.4.5用链表实现栈抽象数据类型392

19.5抽象数据类型的设计问题394

19.5.1命名惯例394

19.5.2错误处理394

19.5.3通用抽象数据类型394

19.5.4新语言中的抽象数据类型395

问与答395

练题396

编程题397

第20章 底层程序设计398

20.1位运算符398

20.1.1移位运算符398

20.1.2按位取反运算符、按位与运算符、按位异或运算符和按位或运算符399

20.1.3用位运算符访问位400

20.1.4用位运算符访问位域401

20.2结构中的位域403

20.3其他底层技术405

20.3.1定义依赖机器的类型405

20.3.2用联合来提供数据的多个视角405

20.3.3将指针作为地址使用407

20.3.4volatile类型限定符409

20.4对象的对齐410

20.4.1对齐运算符_alignof410

20.4.2对齐指定符_alignas和头<stdalign.h>410

问与答411

练题411

编程题413

第21章 标准库414

21.1标准库的使用414

21.1.1对标准库中所用名字的415

21.1.2使用宏隐藏的函数415

21.2c89标准库概述416

21.3c99标准库更新417

21.4<stddef.h>:常用定义418

21.5<stdbool.h>:布尔类型和值419

21.6c11标准库更新419

21.7<stdalign.h>:地址的对齐420

21.8<stdnoreturn.h>:宏noreturn的定义420

问与答420

练题421

编程题422

第22章 输入/输出423

22.1流423

22.1.1文件指针424

22.1.2标准流和重定向424

22.1.3文本文件与二进制文件425

22.2文件作426

22.2.1打开文件426

22.2.2模式427

22.2.3关闭文件428

22.2.4为打开的流附加文件428

22.2.5从命令行获取文件名429

22.2.6临时文件430

22.2.7文件缓冲431

22.2.8其他文件作432

22.3格式化的输入/输出433

22.3.1…printf函数433

22.3.2…printf转换说明433

22.3.3c99对…printf转换说明的修改435

22.3.4…printf转换说明示例436

22.3.5…scanf函数438

22.3.6…scanf格式串438

22.3.7…scanf转换说明439

22.3.8c99对…scanf转换说明的改变441

22.3.9scanf示例441

22.3.10检测文件末尾和错误条件442

22.4字符的输入/输出444

22.4.1输出函数444

22.4.2输入函数444

22.5行的输入/输出446

22.5.1输出函数446

2

—  没有更多了  —

以下为对购买帮助不大的评价

正版特价新书
此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP