这本C语言入门书被翻译成五种语言出版,如今迎来了中文版第17版
学习任何程序设计语言的最佳方法都是创建良好的程序,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版相关推荐
- c语言10个人 三向成绩,C语言入门学习精华:这样学习C语言最有效
C语言入门学习精华:这样学习C语言最有效 c语言死了吗? 本材料描述了使用C语言的高级技能,并努力将您的C语言能力从"基本"提升到"高级".然而,学习态度比学习 ...
- R语言入门第二集 实验一:R 语言数据结构、数据导入与数据处理
R语言入门第二集 实验一:R 语言数据结构.数据导入与数据处理 一.资源 R语言基本数据结构练习和数据的导入和处理对象常用函数练习--东北大学大数据班R语言实训第一次作业" R(4)求解数据 ...
- iText 新年新版:截图识别文字后,翻译为 100+ 种语言
iText 是一款从图片中识别文字的工具,解决了诸如扫描版 PDF 无法复制等问题.在保持简洁的同时,我也在不断 改进 iText 的功能和便利性.新年第一版,来看看有哪些变化吧. 识别文字后自动翻译 ...
- 翻译:A DSL in 5 Languages(五种语言的DSL)
文章目录 五种语言的DSL 问题 实例搜索准则 RUBY 策略 例子 优势 python 战略 例子 优势 弱点 PHP 战略 C# java 总结 英文原文见: https://blog.csdn. ...
- python语言的实验心得体会_爱的五种语言——“好妈妈”培训班家教情商课课堂纪实!...
12月26日晚,荷地镇"七群体七服务"专题培训暨首届"好妈妈"培训班第五节课开课.讲师团成员.东坪村村委会副主任吴丽云以<爱的五种语言>为题为培训班 ...
- 爱的五种语言:创造完美的两性沟通
不管什么时候,只要我们一上网,信息流就会奔涌而来,这不仅会给我们的记忆带来过重的负荷,而且还会导致大脑颞叶难以聚精会神地关注任何一件事.--尼古拉斯·卡尔 夫妻是永世情缘,理应好好相爱,共渡一生. 父 ...
- java如何把汉字转换成机内码_java语言如何将汉字转化成五笔
java语言如何将汉字转化成五笔 [2021-01-31 08:32:59] 简介: php将汉字转ascii的方法:首先创建一个php示例文件:然后通过封装好的"public funct ...
- 各取所需:Microsoft Windows XP with sp3 十五种语言的MSDN原版光盘镜像
各取所需:Microsoft Windows XP with sp3 十五种语言的MSDN原版光盘镜像 2008年09月29日 星期一 10:30 这篇文章,是有关Windows XP下载的" ...
- vhdl语言入门_从当初汇编、C语言入手,到如今FPGA开发已然十年,总结出“三多”!...
从大学时代第一次接触FPGA至今已有10多年的时间,至今记得当初第一次在EDA实验平台上完成数字秒表.抢答器.密码锁等实验时那个兴奋劲.当时由于没有接触到HDL硬件描述语言,设计都是在MAX+plus ...
最新文章
- 最新!NLG顶会INLG2021最佳长论文出炉!一作华人学生代表出席今晚INLG
- listview上拉隐藏标题与下拉显示标题
- 1.1 - C#语言习惯 - 使用属性而不是可访问的数据成员
- 从零认识单片机(9)
- JDBC连接数据库(一)
- (转)Elasticsearch NoNodeAvailableException None of the configured nodes are available
- 基于JAVA+SpringMVC+Mybatis+MYSQL的停车场管理系统
- mysql创建视图不允许子查询
- 如何快速进入一个陌生的领域,高手通常用这三步
- 关于vite2.0和vue/cli建立项目的区别
- linux svn 客户端安装配置
- 关于constraint 的disable和enable
- 修改win10注册表来控制cpu的最大运行频率,实现电脑降温
- curl针对HTTP的相关使用方法
- 横向滑动页面,导航条滑动居中的 js 实现思路
- STM32标准库(固件库)分析
- oppo计算机找不到,oppo手机文件在电脑上无法读取怎么办
- 微信小程序picker选择器(下拉框)以及传值问题
- 怎样用 Excel 快速做数据分析?
- 祝学校计算机系的新年贺词,计算机工程学院 2019祝福情景剧
热门文章
- c# 备份oracle waitforexit()方法死锁,从过程的空的stdout原因同步读数据死锁[重复](Synchronized reading dat...
- 获国际权威认可 | 云扩科技入选《RPA全球市场格局报告,Q3 2022》
- pear php5.6,一键安装php5.6.40脚本
- sawyer机器人进入SDK模式
- 数据库系统概论第五版:考试预测_HUST_CSE
- 你要学习,你要学习,你要学习 1
- 百度索引是什么如何增加索引
- MT6758处理器芯片资料介绍
- 2019年淘宝运营里中小卖家需要掌握的技能!
- 日期格式化使用 YYYY-MM-dd 的潜在问题