标准C程序设计

当前位置:首页 > 计算机网络 > 研究生/本科/专科教材 > 标准C程序设计

出版社:清华大学出版社
出版日期:2008-6
ISBN:9787302172451
作者:巴拉古路萨米
页数:505页

作者简介

《世界著名计算机教材精选·标准C程序设计(第4版)》是印度各大学使用最广的C语言程序设计教材之一。《世界著名计算机教材精选·标准C程序设计(第4版)》旨在教授读者如何使用C语言进行程序设计。全书贯彻了“用示例学习”的概念。在深入介绍了C语言的每个特性之后,给出了一个完整的示例程序,用于演示说明其应用。每章末尾的“案例学习”不仅介绍了把C语言的特性集成在一起的常用方法,而且还显示了它在实际生活中的应用。最后一章介绍了开发高效、无错误的C程序的一些指导原则。
《世界著名计算机教材精选·标准C程序设计(第4版)》在前一版的基础上增加介绍了C99的一些新特性,并增加了不少复习题和项目设计题,而且在附录IV中给出了4个完整的应用程序开发示例,使得《世界著名计算机教材精选·标准C程序设计(第4版)》的实际应用性更强。
《世界著名计算机教材精选·标准C程序设计(第4版)》特点:
带注释的代码全书随处可见,这些注释说明了C语言的各种特性是如何集成在一起以实现特定任务的。补充信息和“注意”对正文进行了必要的补充,但独立于正文之外。最后一章给出了开发高效的C程序的一些指导原则,以及经验不足的C程序员可能容易犯的常见错误列表。每章末尾的案例研究演示了把C特性集成在一起的常用方式,并显示了一些实际的应用。每章末尾的“谨记”一节列举了一些有用的提示和可能出问题的地方。每章末尾的“问题”和“练习”为读者复习所学概念和实际的应用开发提供机会。附录给出的编程项目介绍了开发大型程序时如何集成C的各种特性。

书籍目录

第1章  C语言概述
1.1 C语言的历史
 1.2 C语言的主要特性
 1.3 示例程序1:显示一条消息
 1.4 示例程序2:两个数相加
 1.5 示例程序3:利息计算
 1.6 示例程序4:子例程的使用
 1.7 示例程序5:数学函数的使用
 1.8 C程序的基本结构
 1.9 编程风格
 1.10 运行一个程序
 1.11 UNIX系统环境下
  1.11.1 创建程序
  1.11.2 编译与链接
  1.11.3 运行程序
  1.11.4 创建自己的可运行文件
  1.11.5 多个源文件问题
 1.12 MS-DOS系统环境下
 复习题
 编程练习
第2章 常量、变量及数据类型
 2.1 概述
 2.2 字符集
 2.3 C标记符
 2.4 关键字与标识符
 2.5 常量
  2.5.1 整型常量
  2.5.2 实数常量
  2.5.3 单字符常量
  2.5.4 字符串常量
  2.5.5 反斜杠字符常量
 2.6 变量
 2.7 数据类型
 2.7.1 整数型
  2.7.2 浮点数类型
  2.7.3 void类型
  2.7.4 字符类型
 2.8 变量的声明
  2.8.1 基本类型的声明
  2.8.2 自定义类型的声明
 2.9 存储类的声明
 2.10 变量的赋值
  2.10.1 赋值语句
  2.10.2 从键盘读取数据
 2.11 符号常量的定义
  2.11.1 可修改性
  2.11.2 可理解性
 2.12 将变量声明为常量
 2.13 将变量声明为可变的
 2.14 数据的溢出
 2.15 案例学习
  2.15.1 平均数计算
  2.15.2 温度转换问题
 复习题
 编程练习
第3章 运算符与表达式
 3.1 概述
 3.2 算术运算符
  3.2.1 整数算术运算
  3.2.2 实数算术运算
  3.2.3 混合算术运算
 3.3 关系运算符
 3.4 逻辑运算符
 3.5 赋值运算符
 3.6 递增和递减运算符
 3.7 条件运算符
 3.8 逐位运算符
 3.9 特殊运算符
  3.9.1 逗号运算符
  3.9.2 sizeof运算符
 3.10 算术表达式
 3.11 表达式的计算
 3.12 算术表达式的优先级
 3.13 一些可计算性问题
 3.14 表达式中的类型转换
  3.14.1 隐式类型转换
  3.14.2 显式类型转换
 3.15 运算符的优先级及其关联
 3.16 数学函数
 3.17 案例学习
  3.17.1 销售人员的工资
  3.17.2 二次方程的求解
 复习题
 编程练习
第4章 输入输出操作管理
 4.1 概述
 4.2 读取一个字符
 4.3 写字符
 4.4 格式化输入
  4.4.1 整数输入
  4.4.2 实数输入
  4.4.3 字符串输入
  4.4.4 混合数据类型的读取
  4.4.5 错误输入的检测
  4.4.6 使用scanf函数时应记住的几个要点
 4.5 格式化输出
  4.5.1 整数的输出
  4.5.2 实数的输出
  4.5.3 单个字符的显示
  4.5.4 字符串的显示
  4.5.5 混合数据的输出
  4.5.6 提高输出的可读性
 4.6 案例学习
 4.6.1 库存报告
  4.6.2 可靠性图形
 复习题
 编程练习
第5章 判断与分支
 5.1 概述
 5.2 if判断语句
 5.3 简单if语句
 5.4 if…else语句
 5.5 嵌套if…else语句
 5.6 阶梯式else if语句
 5.7 switch语句
 5.8 ?: 运算符
 5.9 goto语句
 5.10 案例学习
 5.10.1 数值的分布范围
  5.10.2 账单计算
 复习题
 编程练习
第6章 判断与循环
 6.1 概述
 6.2 while语句
 6.3 do语句
 6.4 for语句
  6.4.1 简单的for循环语句
  6.4.2 for循环的其他特性
  6.4.3 for循环的嵌套
 6.5 循环中的跳转
  6.5.1 跳出循环
  6.5.2 跳过循环的一部分
  6.5.3 避免使用goto语句
  6.5.4 跳出程序
 6.6 简洁的测试表达式
 6.7 案例学习
  6.7.1 二项式系数表
  6.7.2 柱状图
  6.7.3 最小成本
  6.7.4 描绘两函数的曲线图
 复习题
 编程练习
第7章 数组
 7.1 概述
 7.2 一维数组
 7.3 一维数组的声明
 7.4 一维数组的初始化
  7.4.1 编译时初始化
  7.4.2 运行时初始化
 7.5 二维数组
 7.6 二维数组的初始化
 7.7 多维数组
 7.8 动态数组
 7.9 与数组相关的其他内容
 7.10 案例学习
  7.10.1 数列的中值问题
  7.10.2 标准偏差的计算
  7.10.3 测试评分
  7.10.4 产品与销售分析
 复习题
 编程练习
第8章 字符数组与字符串
 8.1 概述
 8.2 字符串变量的声明与初始化
 8.3 使用scanf函数从终端读取字符串
  8.3.1 读取文本行
  8.3.2 使用getchar和gets函数
 8.4 在屏幕上显示字符串
  8.4.1 使用printf函数
  8.4.2 使用putchar和puts函数
 8.5 字符的算术运算
 8.6 将字符串组合在一起
 8.7 两个字符串的比较
 8.8 字符串处理函数
  8.8.1 strcat()函数
  8.8.2 strcmp()函数
  8.8.3 strcpy()函数
  8.8.4 strlen()函数
  8.8.5 其他字符串函数
 8.9 字符串表
 8.10 字符串的其他特性
 8.11 案例学习
  8.11.1 计算文本中的字数
  8.11.2 客户列表处理程序
 复习题
 编程练习
第9章 用户自定义函数
 9.1 概述
 9.2 为什么需要自定义函数
 9.3 多函数程序
 9.4 自定义函数的元素
 9.5 函数的定义
  9.5.1 函数头
  9.5.2 函数名与类型
  9.5.3 形参列表
  9.5.4 函数体
 9.6 返回值及其类型
 9.7 函数调用
 9.8 函数声明
 9.9 函数的类型
 9.10 无参数无返回值的函数
 9.11 有参数无返回值的函数
 9.12 有参数有返回值的函数
 9.13 无参数但有一个返回值的函数
 9.14 返回多个值的函数
 9.15 函数的嵌套
 9.16 函数的迭代
 9.17 将数组传递给函数
  9.17.1 一维数组
  9.17.2 二维数组
 9.18 将字符串传递给函数
 9.19 变量的作用域、可见性和生存期
  9.19.1 自动变量
  9.19.2 外部变量
  9.19.3 外部声明
  9.19.4 静态变量
  9.19.5 寄存器变量
  9.19.6 嵌套代码块
 9.20 多文件程序
 9.21 案例学习
 复习题
 编程练习
第10章 结构体与共用体
 10.1 概述
 10.2 结构体的定义
 10.3 声明结构体变量
 10.4 访问结构体成员
 10.5 结构体的初始化
 10.6 结构体变量的复制与比较
 10.7 单个成员的运算
 10.8 结构数组
 10.9 结构体中的数组
 10.10 结构体中的结构体
 10.11 结构体与函数
 10.12 共用体
 10.13 结构体的大小
 10.14 位域
 10.15 案例学习
 复习题
 编程练习
第11章 指针
 11.1 概述
 11.2 理解指针
 11.3 访问变量的地址
 11.4 指针变量的声明
 11.5 指针变量的初始化
 11.6 通过指针访问变量
 11.7 指针链
 11.8 指针表达式
 11.9 指针的递增与比例因子
 11.10 指针与数组
 11.11 指针与字符串
 11.12 指针数组
 11.13 指针作为函数的参数
 11.14 函数返回指针
 11.15 指向函数的指针
 11.16 指针与结构体
 11.17 案例学习
  11.17.1 考试成绩处理程序
  11.17.2 库存更新程序
 复习题
 编程练习
第12章 文件管理
 12.1 概述
 12.2 定义并打开文件
 12.3 关闭文件
 12.4 文件的输入输出操作
  12.4.1 getc与putc函数
  12.4.2 getw和putw函数
  12.4.3 fprintf与fscanf函数
 12.5 I/O操作的错误处理
 12.6 随机访问文件
 12.7 命令行参数
 复习题
 编程练习
第13章 动态内存分配与链表
 13.1 概述
 13.2 动态内存分配
 13.3 用malloc函数分配一块内存
 13.4 用calloc函数分配多个内存块
 13.5 用free函数释放已用的空间
 13.6 用realloc函数改变内存块的大小
 13.7 链表的概念
 13.8 链表的优点
 13.9 链表的种类
 13.10 再论指针
 13.11 创建链表
 13.12 插入一个数据项
 13.13 删除一个数据项
 13.14 链表的应用
 13.15 案例学习
  13.15.1 在已排序链表中插入数据
  13.15.2 构建一个已排序的链表
 复习题
 编程练习
第14章 预处理器
 14.1 概述
 14.2 宏替换指令
  14.2.1 简单宏替换
 14.2.2 含参数的宏
  14.2.3 宏嵌套
 14.3 文件包含
 14.4 编译器控制指令
  14.4.1 情形1
  14.4.2 情形2
  14.4.3 情形3
  14.4.4 情形4
 14.5 ANSI C的其他预处理器指令
  14.5.1 #elif指令
  14.5.2 #pragma指令
  14.5.3 #error指令
  14.5.4 字符串化运算符#
  14.5.5 标记符粘贴运算符##
 复习题
 编程练习
第15章 C程序开发指导原则
 15.1 概述
 15.2 程序设计
  15.2.1 问题分析
  15.2.2 勾勒程序结构
  15.2.3 算法开发
  15.2.4 控制结构
 15.3 程序编码
  15.3.1 自身文档化
  15.3.2 语句构造
  15.3.3 输入/输出格式
  15.3.4 程序的通用性
 15.4 常见的程序错误
  15.4.1 丢失分号
  15.4.2 误用分号
  15.4.3 丢失括号
  15.4.4 丢失引号
 15.4.5 误用引号
  15.4.6 使用不正确的注释字符
  15.4.7 未定义变量
  15.4.8 忽视了运算符的优先级
  15.4.9 忽视了递增递减运算符的计算顺序
  15.4.10 忽视了函数参数的说明
  15.4.11 在函数调用中实参和形参类型不匹配
  15.4.12 函数未声明
  15.4.13 在scanf的参数中丢失了&运算符
  15.4.14 超出了数组的边界
  15.4.15 忘记了给字符串的空字符留出空间
  15.4.16 使用未初始化的指针
  15.4.17 丢失了间接运算符和地址运算符
  15.4.18 在指针表达式中丢失括号
  15.4.19 在宏定义语句中参数遗漏了括号
 15.5 程序测试与调试
  15.5.1 错误的类型
  15.5.2 程序测试
  15.5.3 程序调试
 15.6 程序的效率
  15.6.1 运行时间
  15.6.2 内存需求
 复习题
附录Ⅰ 位级程序设计
 Ⅰ.1 概述
 Ⅰ.2 逐位逻辑运算符
  Ⅰ.2.1 逐位与操作
  Ⅰ.2.2 逐位或操作
  Ⅰ.2.3 逐位非或操作
 Ⅰ.3 逐位移位运算符
 Ⅰ.4 逐位求反运算符
 Ⅰ.5 屏蔽
附录Ⅱ
附录Ⅲ
附录Ⅳ 项目设计
 Ⅳ.1 库存管理系统
 Ⅳ.2 登录记录系统
 Ⅳ.3 链表
 Ⅳ.4 矩阵相乘
附录Ⅴ C99的特性
 Ⅴ.1 概述
 Ⅴ.2 新关键字
 Ⅴ.3 新注释
 Ⅴ.4 新数据类型
  Ⅴ.4.1 _Bool类型
  Ⅴ.4.2 _Complex和_Imaginary类型
  Ⅴ.4.3 long long类型
 Ⅴ.5 变量声明
 Ⅴ.6 I/O格式化的变化
 Ⅴ.7 数组处理
  Ⅴ.7.1 可变长度数组
  Ⅴ.7.2 数组声明中的类型说明
  Ⅴ.7.3 结构的灵活数组成员
 Ⅴ.8 函数实现
  Ⅴ.8.1 默认为inline类型的规则
  Ⅴ.8.2 显式函数定义
  Ⅴ.8.3 return语句的限制
  Ⅴ.8.4 声明函数为inline
 Ⅴ.9 受限指针
 Ⅴ.10 编译器限制的变化
 Ⅴ.11 其他改进
参考文献

编辑推荐

C语言是所有本科生课程的一门核心课,也是现今使用最广泛的计算机语言。国内国外的C语言图书已经非常多了,但通过《世界著名计算机教材精选·标准C程序设计(第4版)》的翻译,我们觉得这《世界著名计算机教材精选·标准C程序设计(第4版)》还是很有引进价值,具体表现在它的以下几个特点上:《世界著名计算机教材精选·标准C程序设计(第4版)》是基于最新的C语言标准。附录IV给出了4个完整的应用程序开发示例。扩展讨论了C的指针。每章后面的“谨记”一节给出了很有用的编程提示以及容易出错的问题。每章后面的案例学习给出了20多个真实的开发,展示了C程序的设计过程。80多个程序设计范例向读者阐述了良好程序设计的基本原则。还有近200个复习题和130多个项目设计题。

内容概要

作者:(印度)巴拉古路萨米(E Balagurusamy) 译者:金名

章节摘录

第1章 C语言概述1.1 C语言的历史作为一种程序设计语言,字母“C”看上去是一个奇怪的名字。但是这个奇怪而好听的语言却是现今最为流行的计算机语言之一,因为它是一种结构化的、高级的、与机器无关的语言。它允许软件开发人员开发程序时无须担心实现这些程序的硬件平台。所有现代语言的起源都是ALGOL语言,该语言是20世纪60年代提出的。ALGOL语言是最先使用块结构的计算机语言。尽管它从来没有在美国流行开来,但在欧洲被广泛使用。ALGOL语言给计算机科学界带来了结构化程序设计的概念。20世纪60年代,计算机科学家,如Corrado Bohm、Guiseppe Jacopini和Edsger Dijkstra使这一概念大众化了。随后,又宣布开发了好几种计算机语言。1967年,Martin Richards开发了一种称为BCPL(基本组合程序设计语言)的计算机语言。该语言主要用于系统软件的开发。1970年,Ken Thompson创建了一种计算机语言,该语言继承了BCPL的很多特性,就称为B语言。在贝尔实验室,8语言用来开发UNIX操作系统的早期版本。BCPL和B语言都是“无类型”的系统程序设计语言。C语言是Dennis Ritchie于1972年在贝尔实验室从ALGOL、BCPL和B语言的基础上发展而来的。C语言利用了这些语言的很多概念,并添加了数据类型的概念以及其他功能强大的特性。由于它是与UNIX操作系统一起被开发出来的,因此它与UNIX有着很强的关联。UNIX操作系统(也是在贝尔实验室开发出来的)几乎完全是用c语言编码的。UNIX是现今使用最为流行的网络操作系统,也是因特网数据超高速路的心脏。多年以来,C语言主要用于科研环境下,但最终,随着多种商用C编译器的发布,以及UNIX操作系统的不断流行,在计算机专业中也开始获得广泛支持。今天,C语言可以运行在多种操作系统和硬件平台下。20世纪70年代,C语言发展为现在所谓的“传统C语言”。自1978年由BrianKemingham和Dennis Ritchie著作的The C Programming Language一书的出版,C语言成了最为流行的语言。该书很受欢迎,以至于在程序设计界,C语言就认为是“K&R C”。C语言的快速发展导致了不同版本的语言出现,这些语言相互类似但往往不兼容。对系统开发人员来说,这是一个严重的问题。为了确保c语言的标准,1983年,美国国家标准局(American National StandardsInstitate,ANSI)任命了一个技术委员会来定义C语言的标准。该委员会于1989年批准了一个C语言版本,这就是现在的ANSI C。该本版又于1990年被国际标准组织(InternationalStardards Organiyation,ISO)批准。C语言的这个版本又称为C89。20世纪90年代,一种完全基于C的语言——C++语言,经历了大量的改进和变化,于1977年11月成为了一种获得ANSl/ISO批准的语言。C++在C的基础上添加了一些新特性,使之不仅成为一种真正的面向对象的语言,而且是一种更通用的语言。与此同时,美国的Sun公司创造了一种新的语言——JaVa语言,它是以C和C++为模型的。所有流行的计算机语言其本质都是动态的。它们通过加入新特性来不断地提高其功能和使用范围,C语言也不例外。尽管c++和Java语言都是从c发展而来的,c语言标准委员会认为,如果C++仃ava语言的一些特性加入到C中,会提高C语言的性能。于是就产生了C语言的1999标准。这个版本的C语言通常称为C99。C语言的历史和发展如图1.1所示。尽管C99是一个改进版本,但很多常用的编译器仍不支持C99的所有新特性。因此,我们将在附录中单独介绍加入到C99的新特性,这样,感兴趣读者就可以快速地参考这些新特性,并在可能的情况下使用它们。

图书封面


 标准C程序设计下载



发布书评

 
 


精彩短评 (总计24条)

  •     很好的基础教程,适合初学者,内容好理解,深浅适中,推荐阅读。比我们当年那本不知道高到哪里去了。在豆瓣上一查C+语言程序设计,几百本出来,各个学校老师真是不负责任,放着经典教材或者其他优秀教材不用,天天自己出书,还就出这种重复性极高的基础教程书,之后强迫自己学校的学生用,赚科研成果~~~~(>_<)~~~~
  •     讲的都是很基本的东西,与标准结合很紧密,可以作为入门教材或工具书使用。虽然内容很初级,但是里面讲到的一些技巧仍然使人受益匪浅。
  •     第三版的错误是否已修改
  •     比起之前用的教材好多了~
  •     太厚了,看书要有耐心
  •     标准C语言英文教材的中文版,翻译得十分到位和准确。
  •     似乎是压箱货,看起来挺旧的,总之凑合
  •     跟英文版的一样,不错
  •     尽管没读完
  •     很好~~快递很快 同学收到书了 也觉得不错
  •     更像手册,不太适合初学者
  •     书是不错的。以前看的是国内的C语言。所以想看看国外的C的编写感觉不错。
  •     非常经典很适合做入门书。
  •     老厚老厚的一本书,但是感觉知识点确实跟那些比较苗条的差不多。个别地方的提示比较好。不适合用来当初学者用的速查书。
  •     书不错,早看完了,才上来评价,呵呵!
  •     后面讲的真简洁。。。
  •     快递还是很快就送到了,不过书本的封皮有多处皱褶,整体有些旧,不是很满意
  •     这本书不错,昨天下午收到,随手翻了翻,觉得收益不少。
  •     这是我学习C语言的入门书,谭浩强的更好一点
  •     我的入门教材
  •     这本书真的很好,强烈推荐。
  •     比较基础,也很全面…… [昔时所读]2009.02学校图书馆借阅。
  •     goog,适合初学者.送货速度不错.
  •     很厚的一本书,但是很容易理解,只是去哪里能找到课后答案?
 

农业基础科学,时尚,美术/书法,绘画,软件工程/开发项目管理,研究生/本专科,爱情/情感,动漫学堂PDF下载,。 PDF下载网 

PDF下载网 @ 2024