菜单导航

C程序设计语言(第2版·新版)[图书]

作者: 文学驿站 发布时间: 2020年05月04日 04:02:18

C程序设计语言(第2版·新版)[图书]

【插图】

chatu

编辑推荐  

本书是由C语言的设计者Brian W. Kernighan和Dennis M. Ritchie编写的一部介绍标准C语言及其程序设计方法的权威性经典著作。一本必读的程序设计语言方面的参考书。

内容简介

    书籍
    计算机书籍
本书是由C语言的设计者Brian W. Kernighan和Dennis M. Ritchie编写的一部介绍标准C语言及其程序设计方法的权威性经典著作。全面、系统地讲述了C语言的各个特性及程序设计的基本方法,包括基本概念、类型和表达式、控制流、函数与程序结构、指针与数组、结构、输入与输出、UNIX系统接口、标准库等内容。
本书的讲述深入浅出,配合典型例证,通俗易懂,实用性强,适合作为大专院校计算机专业或非计算机专业的C语言教材,也可以作为从事计算机相关软硬件开发的技术人员的参考书。 在计算机发展的历史上,没有哪一种程序设计语言像C语言这样应用如此广泛。
[font color="#FF0000">本书原著 即为C语言的设计者之一Dennis M.Ritchie和著名的计算机科学家Brian W.Kernighan合著的 一本介绍C语言的权威经典著作。[/font>我们现在见到的大量论述C语言程序设计的教材和专著均以 此书为蓝本。原著第1版中介绍的C语言成为后来广泛使用的C语言版本—— 标准C的基础。人们熟知的“hell, World”程序就是由本书首次引入的,现在,这一程序已经成为所有程序设 计语言入门的第一课。 原著第2版根据1987年制定的ANSIC标准做了适当的修订.引入了最新的语言形式,并增加了新的示例,通过简洁的描述、典型的示例,作者全面、系统、准确地讲述了C语言的各 个特性以及程序设计的基本方法。对于计算机从业人员来说,本书是一本必读的程序设计语 言方面的参考书。

作译者

译者简介
徐宝文,东南大学计算机科学与工程系教授,博士生导师,江苏省政协常委,江苏省计算机学会副理事长,江苏省软件行业协会副会长,中国计算机学会理事,中国软件行业协会理事。主要从事程序设计语言、软件工程等方面的教学与研究工作,负责承担过十多项国家级、部省级科研项目;在国内外发表论文130多篇,出版著译作10多部;担任《实用软件详解丛书》与《新世纪计算机系列教材》的主编,第五次国际青年计算机学术会议(ICYCS?9)大会主席;发起并主办过两次“全国程序设计语言发展与教学学术会议”;先后获航空航天部优秀青年教师、江苏省优秀教育工作者、江苏省优秀青年骨干教师、江苏省跨世纪学术带头人等称号。
李志,毕业于国防科技大学计算机学院,现于上海交通大学计算机科学与工程系攻读博士学位,主要从事网格计算、中间件技术等方面的研究。已经出版的译作有《IP技术基础:编址和路由》、《ISDN与Cisco路由器配置》等。
审校人简介
尤晋元,上海交通大学计算机科学与工程系教授、博士生导师、国务院学位委员会学科评议组成员。主要从事操作系统、分布对象计算、中间件技术等方面的研究。并长期担任操作系统及分布计算等课程的教学工作。主编和翻译了多本与操作系统相关的教材和参考书,包括《UNIX操作系统教程》、《UNIX环境高级编程》、《操作系统设计与实现》等。

目录

出版者的话
专家指导委员会
中文版序
译者序
校译者简介

第1版序
引言
第1章 导言 1
1.1 入门 1
1.2 变量与算术表达式 3
1.3 for语句 8
1.4 符号常量 9
1.5 字符输入/输出 9
1.5.1 文件复制 10
1.5.2 字符计数 11
1.5.3 行计数 13
1.5.4 单词计数 14
1.6 数组 15
1.7 函数 17

1.8 参数—传值调用 19
1.9 字符数组 20
1.10 外部变量与作用域 22
第2章 类型、运算符与表达式 27
2.1 变量名 27
2.2 数据类型及长度 27
2.3 常量 28
2.4 声明 31
2.5 算术运算符 32
2.6 关系运算符与逻辑运算符 32
2.7 类型转换 33
2.8 自增运算符与自减运算符 37
2.9 按位运算符 38
2.10 赋值运算符与表达式 40
2.11 条件表达式 41
2.12 运算符优先级与求值次序 42
第3章 控制流 45
3.1 语句与程序块 45
3.2 if-else语句 45
3.3 else-if语句 46
3.4 switch语句 48
3.5 while循环与for循环 49
3.6 do-while循环 52
3.7 break语句与continue语句 53
3.8 goto语句与标号 54
第4章 函数与程序结构 57
4.1 函数的基本知识 57
4.2 返回非整型值的函数 60
4.3 外部变量 62
4.4 作用域规则 68
4.5 头文件 69
4.6 静态变量 70
4.7 寄存器变量 71
4.8 程序块结构 72
4.9 初始化 72
4.10 递归 73
4.11 C预处理器 75
4.11.1 文件包含 75
4.11.2 宏替换 76
4.11.3 条件包含 78
第5章 指针与数组 79
5.1 指针与地址 79
5.2 指针与函数参数 81
5.3 指针与数组 83
5.4 地址算术运算 86
5.5 字符指针与函数 89
5.6 指针数组以及指向指针的指针 92
5.7 多维数组 95
5.8 指针数组的初始化 97
5.9 指针与多维数组 97
5.10 命令行参数 98
5.11 指向函数的指针 102
5.12 复杂声明 105
第6章 结构 111
6.1 结构的基本知识 111
6.2 结构与函数 113
6.3 结构数组 115
6.4 指向结构的指针 119
6.5 自引用结构 121
6.6 表查找 125
6.7 类型定义(typedef) 127
6.8 联合 128
6.9 位字段 130
第7章 输入与输出 133
7.1 标准输入/输出 133
7.2 格式化输出—printf函数 135
7.3 变长参数表 136
7.4 格式化输入—scanf函数 137
7.5 文件访问 140
7.6 错误处理—stderr和exit 143
7.7 行输入和行输出 144
7.8 其他函数 145
7.8.1 字符串操作函数 145
7.8.2 字符类别测试和转换函数 146
7.8.3 ungetc函数 146
7.8.4 命令执行函数 146
7.8.5 存储管理函数 147
7.8.6 数学函数 147
7.8.7 随机数发生器函数 148
第8章 UNIX系统接口 149
8.1 文件描述符 149
8.2 低级I/O—read和write 150
8.3 open、creat、close和unlink 151
8.4 随机访问—lseek 153
8.5 实例—fopen和getc函数的实现 154
8.6 实例—目录列表 157
8.7 实例—存储分配程序 162
附录A 参考手册 167
A.1 引言 167
A.2 词法规则 167
A.2.1 记号 167
A.2.2 注释 167
A.2.3 标识符 167
A.2.4 关键字 168
A.2.5 常量 168
A.2.6 字符串字面值 170
A.3 语法符号 170
A.4 标识符的含义 170
A.4.1 存储类 171
A.4.2 基本类型 171
A.4.3 派生类型 172
A.4.4 类型限定符 172
A.5 对象和左值 172
A.6 转换 173
A.6.1 整型提升 173
A.6.2 整型转换 173
A.6.3 整数和浮点数 173
A.6.4 浮点类型 173
A.6.5 算术类型转换 173
A.6.6 指针和整数 174
A.6.7 void 175
A.6.8 指向void的指针 175
A.7 表达式 175
A.7.1 指针生成 176
A.7.2 初等表达式 176
A.7.3 后缀表达式 177
A.7.4 一元运算符 179
A.7.5 强制类型转换 180
A.7.6 乘法类运算符 180
A.7.7 加法类运算符 181
A.7.8 移位运算符 181
A.7.9 关系运算符 182
A.7.10 相等类运算符 182
A.7.11 按位与运算符 183
A.7.12 按位异或运算符 183
A.7.13 按位或运算符 183
A.7.14 逻辑与运算符 183
A.7.15 逻辑或运算符 183
A.7.16 条件运算符 184
A.7.17 赋值表达式 184
A.7.18 逗号运算符 185
A.7.19 常量表达式 185
A.8 声明 185
A.8.1 存储类说明符 186
A.8.2 类型说明符 187
A.8.3 结构和联合声明 188
A.8.4 枚举 191
A.8.5 声明符 191
A.8.6 声明符的含义 192
A.8.7 初始化 195
A.8.8 类型名 197
A.8.9 typedef 198
A.8.10 类型等价 199
A.9 语句 199
A.9.1 带标号语句 199
A.9.2 表达式语句 199
A.9.3 复合语句 200
A.9.4 选择语句 200
A.9.5 循环语句 201
A.9.6 跳转语句 201
A.10 外部声明 202
A.10.1 函数定义 202
A.10.2 外部声明 204
A.11 作用域与连接 204
A.11.1 词法作用域 205
A.11.2 连接 205
A.12 预处理 205
A.12.1 三字符序列 206
A.12.2 行连接 206
A.12.3 宏定义和扩展 206
A.12.4 文件包含 208
A.12.5 条件编译 209
A.12.6 行控制 210
A.12.7 错误信息生成 210
A.12.8 pragma 210
A.12.9 空指令 210
A.12.10 预定义名字 211
A.13 语法 211
附录B 标准库 219
B.1 输入与输出:[stdio.h] 219
B.1.1 文件操作 220
B.1.2 格式化输出 221
B.1.3 格式化输入 223
B.1.4 字符输入/输出函数 224
B.1.5 直接输入/输出函数 225
B.1.6 文件定位函数 225
B.1.7 错误处理函数 226
B.2 字符类别测试:[ctype.h] 226
B.3 字符串函数:[string.h] 227
B.4 数学函数:[math.h] 228
B.5 实用函数:[stdlib.h] 229
B.6 诊断:[assert.h] 232
B.7 可变参数表:[stdarg.h] 232
B.8 非局部跳转:[setjmp.h] 232
B.9 信号:[signal.h] 233
B.10 日期与时间函数:[time.h] 234
B.11 与具体实现相关的限制:
[limits.h] 和 [float.h] 236
附录C 变更小结 237
索引 241

译者序

你是否喜欢

热门标签