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

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

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

(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语言入门书被翻译成五种语言出版,如今迎来了中文版第17版相关推荐

  1. c语言10个人 三向成绩,C语言入门学习精华:这样学习C语言最有效

    C语言入门学习精华:这样学习C语言最有效 c语言死了吗? 本材料描述了使用C语言的高级技能,并努力将您的C语言能力从"基本"提升到"高级".然而,学习态度比学习 ...

  2. R语言入门第二集 实验一:R 语言数据结构、数据导入与数据处理

    R语言入门第二集 实验一:R 语言数据结构.数据导入与数据处理 一.资源 R语言基本数据结构练习和数据的导入和处理对象常用函数练习--东北大学大数据班R语言实训第一次作业" R(4)求解数据 ...

  3. iText 新年新版:截图识别文字后,翻译为 100+ 种语言

    iText 是一款从图片中识别文字的工具,解决了诸如扫描版 PDF 无法复制等问题.在保持简洁的同时,我也在不断 改进 iText 的功能和便利性.新年第一版,来看看有哪些变化吧. 识别文字后自动翻译 ...

  4. 翻译:A DSL in 5 Languages(五种语言的DSL)

    文章目录 五种语言的DSL 问题 实例搜索准则 RUBY 策略 例子 优势 python 战略 例子 优势 弱点 PHP 战略 C# java 总结 英文原文见: https://blog.csdn. ...

  5. python语言的实验心得体会_爱的五种语言——“好妈妈”培训班家教情商课课堂纪实!...

    12月26日晚,荷地镇"七群体七服务"专题培训暨首届"好妈妈"培训班第五节课开课.讲师团成员.东坪村村委会副主任吴丽云以<爱的五种语言>为题为培训班 ...

  6. 爱的五种语言:创造完美的两性沟通

    不管什么时候,只要我们一上网,信息流就会奔涌而来,这不仅会给我们的记忆带来过重的负荷,而且还会导致大脑颞叶难以聚精会神地关注任何一件事.--尼古拉斯·卡尔 夫妻是永世情缘,理应好好相爱,共渡一生. 父 ...

  7. java如何把汉字转换成机内码_java语言如何将汉字转化成五笔

    java语言如何将汉字转化成五笔 [2021-01-31 08:32:59]  简介: php将汉字转ascii的方法:首先创建一个php示例文件:然后通过封装好的"public funct ...

  8. 各取所需:Microsoft Windows XP with sp3 十五种语言的MSDN原版光盘镜像

    各取所需:Microsoft Windows XP with sp3 十五种语言的MSDN原版光盘镜像 2008年09月29日 星期一 10:30 这篇文章,是有关Windows XP下载的" ...

  9. vhdl语言入门_从当初汇编、C语言入手,到如今FPGA开发已然十年,总结出“三多”!...

    从大学时代第一次接触FPGA至今已有10多年的时间,至今记得当初第一次在EDA实验平台上完成数字秒表.抢答器.密码锁等实验时那个兴奋劲.当时由于没有接触到HDL硬件描述语言,设计都是在MAX+plus ...

最新文章

  1. 最新!NLG顶会INLG2021最佳长论文出炉!一作华人学生代表出席今晚INLG
  2. listview上拉隐藏标题与下拉显示标题
  3. 1.1 - C#语言习惯 - 使用属性而不是可访问的数据成员
  4. 从零认识单片机(9)
  5. JDBC连接数据库(一)
  6. (转)Elasticsearch NoNodeAvailableException None of the configured nodes are available
  7. 基于JAVA+SpringMVC+Mybatis+MYSQL的停车场管理系统
  8. mysql创建视图不允许子查询
  9. 如何快速进入一个陌生的领域,高手通常用这三步
  10. 关于vite2.0和vue/cli建立项目的区别
  11. linux svn 客户端安装配置
  12. 关于constraint 的disable和enable
  13. 修改win10注册表来控制cpu的最大运行频率,实现电脑降温
  14. curl针对HTTP的相关使用方法
  15. 横向滑动页面,导航条滑动居中的 js 实现思路
  16. STM32标准库(固件库)分析
  17. oppo计算机找不到,oppo手机文件在电脑上无法读取怎么办
  18. 微信小程序picker选择器(下拉框)以及传值问题
  19. 怎样用 Excel 快速做数据分析?
  20. 祝学校计算机系的新年贺词,计算机工程学院 2019祝福情景剧

热门文章

  1. c# 备份oracle waitforexit()方法死锁,从过程的空的stdout原因同步读数据死锁[重复](Synchronized reading dat...
  2. 获国际权威认可 | 云扩科技入选《RPA全球市场格局报告,Q3 2022》
  3. pear php5.6,一键安装php5.6.40脚本
  4. sawyer机器人进入SDK模式
  5. 数据库系统概论第五版:考试预测_HUST_CSE
  6. 你要学习,你要学习,你要学习 1
  7. 百度索引是什么如何增加索引
  8. MT6758处理器芯片资料介绍
  9. 2019年淘宝运营里中小卖家需要掌握的技能!
  10. 日期格式化使用 YYYY-MM-dd 的潜在问题