这本C语言入门书被翻译成五种语言出版,如今迎来了中文版第17版

学习任何程序设计语言的最佳方法都是创建良好的程序,C 语言也不例外。一旦决定编写程序我们就会发现,总是有至少两种方法可以实现。那么,如何才能找到最好的方法来实现程序?

《C语言程序设计》就能帮助读者解决此类问题。《C语言程序设计》是一本C 语言程序设计的经典教材。多年来,本书被很多工程和科学研究所及院校指定为学习教材。

(1)C语言程序设计的经典教材,目前英文原版更新至第17版。前16版被翻译为印地语、古吉拉特语、英语、日语、韩语,分别在印度、美国、日本、新加坡、韩国出版。

这本C语言入门书被翻译成五种语言出版,如今迎来了中文版第17版_第1张图片


(2)适合初学者。对编程语言概念进行详细解释,尤其对复杂主题提供深入理解;每章配有随学随练的章末练习与总结提炼的课后笔记,帮助巩固本章所涵盖的概念和技巧。
(3)本书相较前16版,增加概念实例和面试常见问题。每个编程概念给出实例,使主题更容易理解;而且设有单独的面试常见问题的章节,是准备面试的参考手册。
(4)本书提供C 语言程序员快速参考卡片、可供读者下载的程序源代码,并配套出版《C 语言程序设计 习题解答》。

本书这一版本(第17 版)除了讲解C 语言中基本的函数、指针、控制指令、数据类型、数组、字符串、输入输出、位操作等内容外,还增加了C 语言程序设计的各个主题的实例和面试问题,以便读者尽快熟悉C 语言的实际应用。书中的实例和习题已经过作者认真挑选,集中体现了各个知识要点的具体用法。本书提供可供读者下载的程序源代码,并配套出版《C 语言程序设计 习题解答》。
本书结构合理,内容深入浅出,既适合用作高等学校本科和专科学生学习C 语言程序设计的教材,也适合用作零基础的程序设计初学者的自学用书。

目录

第 1 章 起步 001

本章内容  002

1.1 什么是C 语言  003

1.2 C 语言的基础知识  003

1.2.1 字母、数字和特殊符号  004

1.2.2 常量、变量和关键字  004

1.2.3 C 语言的常量类型  004

1.2.4 整型常量的创建规则  005

1.2.5 浮点型常量的创建规则  005

1.2.6 字符型常量的创建规则  005

1.2.7 C 语言的变量类型  006

1.2.8 变量名的创建规则  006

1.2.9 C 语言的关键字  006

1.3 第 1 个C 语言程序  007

1.3.1 C 语言程序的格式  007

1.3.2 C 语言程序中的注释  007

1.3.3 什么是main()  008

1.3.4 变量及其用法  009

1.3.5 printf() 及其用法  009

1.3.6 编译和运行  010

1.4 接收输入  010

1.5 程序  011

习题  012

课后笔记  014

第 2 章 C 语言的指令  017

本章内容  018

2.1 指令的类型  019

2.2 类型声明指令  019

2.3 算术指令  019

2.4 整型和浮点型的转换  021

2.5 赋值时的类型转换  021

2.6 操作符的优先层次  022

2.7 操作符的结合性  024

2.8 控制指令  024

2.9 程序  024

习题  026

课后笔记  028

第3 章 决策控制指令  031

本章内容  032

3.1 if-else 语句  033

3.2 if-else 中的多条语句  034

3.3 嵌套的if-else 语句  035

3.4 一点告诫  036

3.5 程序  037

习题  038

课后笔记  041

第4 章 更复杂决策的创建  043

本章内容  044

4.1 使用逻辑操作符:检测范围  045

4.2 使用逻辑操作符:是 否问题  046

4.3 ! 操作符  048

4.4 再论操作符的优先层次  049

4.5 条件操作符  049

4.6 程序  050

习题  052

课后笔记  056

第5 章 循环控制指令  059

本章内容  060

5.1 循环  061

5.2 while 循环  061

5.2.1 提示和陷阱  062

5.2.2 其他操作符  063

5.3 程序  065

习题  066

课后笔记  068

第6 章 更复杂的循环控制

指令  069

本章内容  070

6.1 for 循环  071

6.1.1 循环的嵌套  073

6.1.2 for 循环的多重初始化  074

6.2 break 语句  074

6.3 continue 语句  075

6.4 do-while 循环  076

6.5 非常规循环  077

6.6 程序  078

习题  079

课后笔记  081

第7 章 case 控制指令  083

本章内容  084

7.1 使用switch 的决策  085

7.2 switch 与if-else 梯状结构的对比  088

7.3 goto 关键字  088

7.4 程序  090

习题  092

课后笔记  095

第8 章 函数  097

本章内容  098

8.1 什么是函数  099

8.2 在函数之间传递值  101

8.3 参数的传递顺序  104

8.4 使用库函数  104

8.5 一个不确定的问题  105

8.6 函数的返回类型  105

8.7 程序  106

习题  108

课后笔记  109

第9 章 指针  111

本章内容  112

9.1 传值调用和传引用调用  113

9.2 指针概述  113

9.3 再论函数调用  116

9.4 结论  118

9.5 程序  118

习题  120

课后笔记  122

第 10 章 递归  125

本章内容  126

10.1 递归的概念  127

10.2 程序  128

习题  130

课后笔记  131

第 11 章 再论数据类型  133

本章内容  134

11.1 整型:long、short、signed、unsigned  135

11.2 字符型:signed、unsigned  136

11.3 浮点型:float、double、long double  136

11.4 一些其他问题  137

11.5 C 语言的存储类型  138

11.5.1 自动存储类型  138

11.5.2 寄存器存储类型  139

11.5.3 静态存储类型  140

11.5.4 外部存储类型  140

11.5.5 一些微妙的问题  142

11.5.6 何时何地使用存储类型  143

习题  143

课后笔记  145

第 12 章 C 预处理器  149

本章内容  150

12.1 C 预处理器的特性  151

12.2 宏展开指令  151

12.2.1 带参数的宏  152

12.2.2 宏与函数的比较  153

12.3 文件包含指令  153

12.4 条件编译指令  154

12.5 #if 和#elif 指令  155

12.6 其他指令  156

12.6.1 #undef 指令  156

12.6.2 #pragma 指令  156

12.7 构建过程  158

12.8 程序  159

习题  161

课后笔记  162

第 13 章 数组  165

本章内容  166

13.1 什么是数组  167

13.2 关于数组的其他信息  168

13.2.1 数组的初始化  168

13.2.2 内存中的数组元素  168

13.2.3 边界检查  169

13.2.4 向函数传递数组元素  169

13.3 指针和数组  170

13.3.1 使用指针访问数组元素  171

13.3.2 把数组传递给函数  172

13.4 可变长数组  174

13.5 程序  175

习题  176

课后笔记  179

第 14 章 多维数组  181

本章内容  182

14.1 二维数组  183

14.1.1 二维数组的初始化  183

14.1.2 二维数组的内存映射  184

14.1.3 指针和二维数组  184

14.1.4 指向数组的指针  186

14.1.5 把二维数组传递给函数  186

14.2 指针数组  187

14.3 三维数组  188

14.4 程序  189

习题  191

课后笔记  193

第 15 章 字符串  195

本章内容  196

15.1 什么是字符串  197

15.2 关于字符串的其他说明  197

15.3 指针和字符串  199

15.4 字符串处理函数  200

15.4.1 strlen()  201

15.4.2 strcpy()  202

15.4.3 strcat()  203

15.4.4 strcmp()  203

15.5 程序  204

习题  206

课后笔记  208

第 16 章 处理多个字符串  211

本章内容  212

16.1 二维字符数组  213

16.2 字符串指针数组  214

16.3 字符串指针数组的限制  216

16.4 程序  216

习题  218

课后笔记  219

第 17 章 结构体  221

本章内容  222

17.1 为什么要使用结构体  223

17.2 结构体数组  224

17.3 结构体的细节  225

17.3.1 结构体的声明  225

17.3.2 结构体元素的存储  226

17.3.3 复制结构体元素  227

17.3.4 嵌套的结构体  227

17.3.5 传递结构体元素 结构体变量  228

17.3.6 结构体元素的对齐  229

17.4 结构体的应用  230

17.5 程序  230

习题  233

课后笔记  234

第 18 章 控制台输入输出  237

本章内容  238

18.1 I O 的类型  239

18.2 控制台I O 函数  239

18.2.1 格式化的控制台I O 函数  240

18.2.2 sprintf() 和sscanf() 函数  244

18.2.3 未格式化的控制台I O 函数  245

习题  246

课后笔记  249

第 19 章 文件输入输出  251

本章内容  252

19.1 文件操作  253

19.1.1 打开文件  253

19.1.2 读取文件  254

19.1.3 关闭文件  255

19.2 对字符、制表符、空格等进行计数  255

19.3 一个文件复制程序  256

19.4 文件打开模式  257

19.5 文件中的字符串(行)I O  257

19.6 文本文件和二进制文件  259

19.7 文件中的记录I O  259

19.8 低层文件I O  262

19.9 程序  264

习题  266

课后笔记  267

第 20 章 关于输入输出的更多知识  271

本章内容  272

20.1 使用argc 和argv  273

20.2 在读取 写入时检测错误  275

20.3 标准文件指针  276

20.4 I O 重定向  276

20.4.1 输出重定向  276

20.4.2 输入重定向  277

20.4.3 同时重定向  278

习题  278

课后笔记  279

第 21 章 对位进行操作  281

本章内容  282

21.1 位的编号和转换  283

21.2 位操作  284

21.3 反码操作符  284

21.4 右移位和左移位操作符  285

21.4.1 警告  286

21.4.2 << 操作符的用途  287

21.5 AND、OR 和XOR 位操作符  287

21.5.1 & 操作符的用途  288

21.5.2 | 操作符的用途  289

21.5.3 ^ 操作符的用途  289

21.6 showbits() 函数  290

21.7 位复合赋值操作符  290

21.8 程序  291

习题  292

课后笔记  294

第 22 章 C 语言的其他特性  295

本章内容  296

22.1 枚举数据类型  297

22.1.1 枚举数据类型的用途  297

22.1.2 枚举真有必要吗  298

22.2 使用typedef 对数据类型进行重命名  299

22.3 强制类型转换  300

22.4 位段  300

22.5 函数指针  301

22.6 返回指针的函数  302

22.7 接收可变数量参数的函数  302

22.8 联合体  303

22.9 volatile 限定符  306

22.10 程序  306

习题  307

课后笔记  309

第 23 章 常见的C 语言面试问题  311

附录A 编译和运行  325

附录B 优先级表格  331

附录C 追踪缺陷  333

附录D ASCII 表  339

附录E 阶段测验  343

作者简介

亚沙万特,.卡内特卡尔(Yashavant Kanetkar)是一位极受欢迎的IT 领域演说家,在TedEx、印度理工学院(IIT)、印度国家理工学院(NIT)、印度信息技术学院(IIIT)和一些全球软件公司举办过研讨会和讲习班。他的作品在世界范围内广受欢迎,数以百万计的学生和专业人员从中受益。他的作品被翻译为印地语、古吉拉特语、英语、日语、韩语和汉语,分别在印度、美国、日本、韩国和中国出版。由于在创业、专业以及教育方面的建树,他被印度理工学院坎普尔校区授予久负盛名的“杰出校友奖”(distinguished alumnus award)。连续5 年,他被微软公司授予“Z佳.NET 技术撰稿人”和“Z有价值专家”称号。

你可能感兴趣的:(C语言入门,C语言,程序设计,编程语言)