Programming in ANSI C

副标题:无

作   者:E. Balagurusamy著;金名等译

分类号:

ISBN:9787302172451

微信扫一扫,移动浏览光盘

简介

  《世界著名计算机教材精选·标准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.1 C语言的历史/1
   1.2 C语言的主要特性/2
   1.3 示例程序1:显示一条消息/3
   1.4 示例程序2:两个数相加/6
   1.5 示例程序3:利息计算/7
   1.6 示例程序4:子例程的使用/9
   1.7 示例程序5:数学函数的使用/10
   1.8 C程序的基本结构/12
   1.9 编程风格/13
   1.10 运行一个程序/13
   1.11 UNIX系统环境下/14
   1.11.1 创建程序/14
   1.11.2 编译与链接/15
   1.11.3 运行程序/15
   1.11.4 创建自己的可运行文件/16
   1.11.5 多个源文件问题/16
   1.12 MS-DOS系统环境下/17
   复习题/17
   编程练习/19
  第2章 常量、变量及数据类型/22
   2.1 概述/22
   2.2 字符集/22
   2.3 C标记符/23
   2.4 关键字与标识符/24
   2.5 常量/24
   2.5.1 整型常量/24
   2.5.2 实数常量/25
   2.5.3 单字符常量/27
   2.5.4 字符串常量/27
   2.5.5 反斜杠字符常量/27
   2.6 变量/28
   2.7 数据类型/29
   2.7.1 整数型/30
   2.7.2 浮点数类型/30
   2.7.3 void类型/31
   2.7.4 字符类型/31
   2.8 变量的声明/31
   2.8.1 基本类型的声明/31
   2.8.2 自定义类型的声明/33
   2.9 存储类的声明/34
   2.10 变量的赋值/35
   2.10.1 赋值语句/36
   2.10.2 从键盘读取数据/38
   2.11 符号常量的定义/40
   2.11.1 可修改性/40
   2.11.2 可理解性/41
   2.12 将变量声明为常量/42
   2.13 将变量声明为可变的/42
   2.14 数据的溢出/42
   2.15 案例学习/43
   2.15.1 平均数计算/43
   2.15.2 温度转换问题/44
   复习题/46
   编程练习/47
  第3章 运算符与表达式/49
   3.1 概述/49
   3.2 算术运算符/49
   3.2.1 整数算术运算/50
   3.2.2 实数算术运算/50
   3.2.3 混合算术运算/51
   3.3 关系运算符/51
   3.4 逻辑运算符/53
   3.5 赋值运算符/54
   3.6 递增和递减运算符/55
   3.7 条件运算符/56
   3.8 逐位运算符/57
   3.9 特殊运算符/57
   3.9.1 逗号运算符/57
   3.9.2 sizeof运算符/58
   3.10 算术表达式/59
   3.11 表达式的计算/60
   3.12 算术表达式的优先级/61
   3.13 一些可计算性问题/62
   3.14 表达式中的类型转换/63
   3.14.1 隐式类型转换/63
   3.14.2 显式类型转换/65
   3.15 运算符的优先级及其关联/67
   3.16 数学函数/68
   3.17 案例学习/69
   3.17.1 销售人员的工资/69
   3.17.2 二次方程的求解/70
   复习题/71
   编程练习/75
  第4章 输入输出操作管理/78
   4.1 概述/78
   4.2 读取一个字符/78
   4.3 写字符/81
   4.4 格式化输入/82
   4.4.1 整数输入/83
   4.4.2 实数输入/85
   4.4.3 字符串输入/86
   4.4.4 混合数据类型的读取/88
   4.4.5 错误输入的检测/88
   4.4.6 使用scanf函数时应记住的几个要点/90
   4.5 格式化输出/91
   4.5.1 整数的输出/91
   4.5.2 实数的输出/92
   4.5.3 单个字符的显示/94
   4.5.4 字符串的显示/95
   4.5.5 混合数据的输出/96
   4.5.6 提高输出的可读性/97
   4.6 案例学习/98
   4.6.1 库存报告/98
   4.6.2 可靠性图形/100
   复习题/101
   编程练习/104
  第5章 判断与分支/106
   5.1 概述/106
   5.2 if判断语句/106
   5.3 简单if语句/107
   5.4 if…else语句/110
   5.5 嵌套if…else语句/113
   5.6 阶梯式else if语句/116
   5.7 switch语句/119
   5.8 ?:运算符/122
   5.9 goto语句/125
   5.10 案例学习/128
   5.10.1 数值的分布范围/128
   5.10.2 账单计算/129
   复习题/132
   编程练习/137
  第6章 判断与循环/140
   6.1 概述/140
   6.2 while语句/142
   6.3 do语句/144
   6.4 for语句/146
   6.4.1 简单的for循环语句/146
   6.4.2 for循环的其他特性/149
   6.4.3 for循环的嵌套/150
   6.5 循环中的跳转/153
   6.5.1 跳出循环/153
   6.5.2 跳过循环的一部分/157
   6.5.3 避免使用goto语句/159
   6.5.4 跳出程序/159
   6.6 简洁的测试表达式/160
   6.7 案例学习/161
   6.7.1 二项式系数表/161
   6.7.2 柱状图/162
   6.7.3 最小成本/164
   6.7.4 描绘两函数的曲线图/165
   复习题/168
   编程练习/172
  第7章 数组/176
   7.1 概述/176
   7.2 一维数组/177
   7.3 一维数组的声明/178
   7.4 一维数组的初始化/180
   7.4.1 编译时初始化/181
   7.4.2 运行时初始化/182
   7.5 二维数组/184
   7.6 二维数组的初始化/188
   7.7 多维数组/192
   7.8 动态数组/193
   7.9 与数组相关的其他内容/193
   7.10 案例学习/194
   7.10.1 数列的中值问题/194
   7.10.2 标准偏差的计算/197
   7.10.3 测试评分/198
   7.10.4 产品与销售分析/201
   复习题/207
   编程练习/210
  第8章 字符数组与字符串/213
   8.1 概述/213
   8.2 字符串变量的声明与初始化/213
   8.3 使用scanf函数从终端读取字符串/215
   8.3.1 读取文本行/217
   8.3.2 使用getchar和gets函数/217
   8.4 在屏幕上显示字符串/219
   8.4.1 使用printf函数/219
   8.4.2 使用putchar和puts函数/223
   8.5 字符的算术运算/223
   8.6 将字符串组合在一起/225
   8.7 两个字符串的比较/226
   8.8 字符串处理函数/227
   8.8.1 strcat()函数/227
   8.8.2 strcmp()函数/228
   8.8.3 strcpy()函数/229
   8.8.4 strlen()函数/229
   8.8.5 其他字符串函数/230
   8.9 字符串表/232
   8.10 字符串的其他特性/234
   8.11 案例学习/235
   8.11.1 计算文本中的字数/235
   8.11.2 客户列表处理程序/237
   复习题/239
   编程练习/242
  第9章 用户自定义函数/244
   9.1 概述/244
   9.2 为什么需要自定义函数/244
   9.3 多函数程序/245
   9.4 自定义函数的元素/247
   9.5 函数的定义/247
   9.5.1 函数头/248
   9.5.2 函数名与类型/248
   9.5.3 形参列表/248
   9.5.4 函数体/249
   9.6 返回值及其类型/250
   9.7 函数调用/251
   9.8 函数声明/253
   9.9 函数的类型/255
   9.10 无参数无返回值的函数/255
   9.11 有参数无返回值的函数/257
   9.12 有参数有返回值的函数/260
   9.13 无参数但有一个返回值的函数/263
   9.14 返回多个值的函数/264
   9.15 函数的嵌套/265
   9.16 函数的迭代/266
   9.17 将数组传递给函数/267
   9.17.1 一维数组/267
   9.17.2 二维数组/271
   9.18 将字符串传递给函数/271
   9.19 变量的作用域、可见性和生存期/272
   9.19.1 自动变量/273
   9.19.2 外部变量/274
   9.19.3 外部声明/277
   9.19.4 静态变量/278
   9.19.5 寄存器变量/279
   9.19.6 嵌套代码块/280
   9.20 多文件程序/281
   9.21 案例学习/284
   复习题/286
   编程练习/290
  第10章 结构体与共用体/293
   10.1 概述/293
   10.2 结构体的定义/293
   10.3 声明结构体变量/294
   10.4 访问结构体成员/296
   10.5 结构体的初始化/297
   10.6 结构体变量的复制与比较/299
   10.7 单个成员的运算/300
   10.8 结构数组/301
   10.9 结构体中的数组/303
   10.10 结构体中的结构体/304
   10.11 结构体与函数/306
   10.12 共用体/309
   10.13 结构体的大小/310
   10.14 位域/310
   10.15 案例学习/313
   复习题/317
   编程练习/320
  第11章 指针/323
   11.1 概述/323
   11.2 理解指针/323
   11.3 访问变量的地址/325
   11.4 指针变量的声明/326
   11.5 指针变量的初始化/327
   11.6 通过指针访问变量/329
   11.7 指针链/331
   11.8 指针表达式/331
   11.9 指针的递增与比例因子/333
   11.10 指针与数组/334
   11.11 指针与字符串/337
   11.12 指针数组/339
   11.13 指针作为函数的参数/340
   11.14 函数返回指针/343
   11.15 指向函数的指针/343
   11.16 指针与结构体/346
   11.17 案例学习/349
   11.17.1 考试成绩处理程序/349
   11.17.2 库存更新程序/352
   复习题/354
   编程练习/357
  第12章 文件管理/358
   12.1 概述/358
   12.2 定义并打开文件/359
   12.3 关闭文件/360
   12.4 文件的输入输出操作/361
   12.4.1 getc与putc函数/361
   12.4.2 getw和putw函数/362
   12.4.3 fprintf与fscanf函数/364
   12.5 I/O操作的错误处理/366
   12.6 随机访问文件/368
   12.7 命令行参数/373
   复习题/375
   编程练习/376
  第13章 动态内存分配与链表/378
   13.1 概述/378
   13.2 动态内存分配/378
   13.3 用malloc函数分配一块内存/379
   13.4 用calloc函数分配多个内存块/381
   13.5 用free函数释放已用的空间/381
   13.6 用realloc函数改变内存块的大小/382
   13.7 链表的概念/383
   13.8 链表的优点/386
   13.9 链表的种类/387
   13.10 再论指针/387
   13.11 创建链表/389
   13.12 插入一个数据项/392
   13.13 删除一个数据项/395
   13.14 链表的应用/397
   13.15 案例学习/398
   13.15.1 在已排序链表中插入数据/398
   13.15.2 构建一个已排序的链表/402
   复习题/404
   编程练习/406
  第14章 预处理器/408
   14.1 概述/408
   14.2 宏替换指令/408
   14.2.1 简单宏替换/409
   14.2.2 含参数的宏/411
   14.2.3 宏嵌套/412
   14.3 文件包含/412
   14.4 编译器控制指令/413
   14.4.1 情形1/414
   14.4.2 情形2/414
   14.4.3 情形3/415
   14.4.4 情形4/415
   14.5 ANSI C的其他预处理器指令/416
   14.5.1 #elif指令/416
   14.5.2 #pragma指令/417
   14.5.3 #error指令/417
   14.5.4 字符串化运算符#/418
   14.5.5 标记符粘贴运算符##/418
   复习题/419
   编程练习/420
  第15章 C程序开发指导原则/421
   15.1 概述/421
   15.2 程序设计/421
   15.2.1 问题分析/421
   15.2.2 勾勒程序结构/421
   15.2.3 算法开发/422
   15.2.4 控制结构/422
   15.3 程序编码/423
   15.3.1 自身文档化/423
   15.3.2 语句构造/424
   15.3.3 输入/输出格式/424
   15.3.4 程序的通用性/424
   15.4 常见的程序错误/425
   15.4.1 丢失分号/425
   15.4.2 误用分号/425
   15.4.3 丢失括号/426
   15.4.4 丢失引号/427
   15.4.5 误用引号/427
   15.4.6 使用不正确的注释字符/427
   15.4.7 未定义变量/428
   15.4.8 忽视了运算符的优先级/428
   15.4.9 忽视了递增递减运算符的计算顺序/429
   15.4.10 忽视了函数参数的说明/429
   15.4.11 在函数调用中实参和形参类型不匹配/429
   15.4.12 函数未声明/429
   15.4.13 在scanf的参数中丢失了&运算符/430
   15.4.14 超出了数组的边界/430
   15.4.15 忘记了给字符串的空字符留出空间/431
   15.4.16 使用未初始化的指针/431
   15.4.17 丢失了间接运算符和地址运算符/431
   15.4.18 在指针表达式中丢失括号/432
   15.4.19 在宏定义语句中参数遗漏了括号/432
   15.5 程序测试与调试/432
   15.5.1 错误的类型/433
   15.5.2 程序测试/433
   15.5.3 程序调试/434
   15.6 程序的效率/435
   15.6.1 运行时间/435
   15.6.2 内存需求/435
   复习题/435
  附录I 位级程序设计/437
   Ⅰ.1 概述/437
   Ⅰ.2 逐位逻辑运算符/437
   Ⅰ.2.1 逐位与操作/437
   Ⅰ.2.2 逐位或操作/439
   Ⅰ.2.3 逐位非或操作/439
   Ⅰ.3 逐位移位运算符/439
   Ⅰ.4 逐位求反运算符/440
   Ⅰ.5 屏蔽/441
  附录Ⅱ/442
  附录Ⅲ/443
  附录Ⅳ 项目设计/446
   Ⅳ.1 库存管理系统/446
   Ⅳ.2 登录记录系统/468
   Ⅳ.3 链表/488
   Ⅳ.4 矩阵相乘/496
  附录V C99的特性/499
   Ⅴ.1 概述/499
   Ⅴ.2 新关键字/499
   Ⅴ.3 新注释/499
   Ⅴ.4 新数据类型/500
   Ⅴ.4.1 _Bool类型/500
   Ⅴ.4.2 _Complex和_Imaginary类型/500
   Ⅴ.4.3 long long类型/500
   Ⅴ.5 变量声明/501
   Ⅴ.6 I/O格式化的变化/501
   Ⅴ.7 数组处理/501
   Ⅴ.7.1 可变长度数组/502
   Ⅴ.7.2 数组声明中的类型说明/502
   Ⅴ.7.3 结构的灵活数组成员/502
   Ⅴ.8 函数实现/502
   Ⅴ.8.1 默认为inline类型的规则/503
   Ⅴ.8.2 显式函数定义/503
   Ⅴ.8.3 return语句的限制/503
   Ⅴ.8.4 声明函数为inline/504
   Ⅴ.9 受限指针/504
   Ⅴ.10 编译器限制的变化/505
   Ⅴ.11 其他改进/505
  参考文献
  

已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

Programming in ANSI C
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    loading icon