第6版 标準C程式设计


第6版 标準C程式设计

文章插图
标準C程式设计(第6版)【第6版 标準C程式设计】本书通过示例程式、案例学习、编程练习、项目设计以及其他教学手段来帮助读者更好地理解C语言,使得学习过程更加愉悦
基本介绍书名:标準C程式设计(第6版)
ISBN:9787302346661
类别:计算机
页数:507
定价:68元
出版社:清华大学出版社
出版时间:2013-12-12
装帧:平装
开本:16开
图书简介第6版保留了这本畅销书的精髓,以简洁、清晰且逻辑有序的方式讲解C语言程式设计的概念,十分适合C语言的初学者 。本书通过示例程式、案例学习、编程练习、项目设计以及其他教学手段来帮助读者更好地理解C语言,使得学习过程更加愉悦 。图书目录第1章C语言概述 11.1C语言的历史 11.2C语言的主要特性 31.3示例程式1:显示一条讯息 31.4示例程式2:两个数相加 61.5示例程式3:利息计算 71.6示例程式4:子例程的使用 91.7示例程式5:数学函式的使用 101.8C程式的基本结构 111.9编程风格 121.10运行C程式 131.11在UNIX系统环境下 141.11.1创建程式 141.11.2编译与连结 141.11.3运行程式 151.11.4创建自己的可运行档案 151.11.5多个源档案问题 151.12在MS-DOS系统环境下 16複习题 17编程练习 19第2章常量、变数及数据类型 212.1概述 212.2字元集 212.3C标记符 232.4关键字与标识符 232.5常量 242.5.1整型常量 242.5.2实数常量 262.5.3单字元常量 272.5.4字元串常量 272.5.5反斜槓字元常量 272.6变数 282.7数据类型 292.7.1整型 302.7.2浮点型 312.7.3void类型 312.7.4字元类型 322.8变数的声明 322.8.1基本类型的声明 322.8.2自定义类型的声明 342.9存储类型的声明 352.10变数的赋值 362.10.1赋值语句 362.10.2从键盘读取数据 382.11符号常量的定义 412.11.1可修改性 412.11.2可理解性 412.12将变数声明为常量 422.13将变数声明为可变的 422.14数据的溢出 432.15案例学习 442.15.1平均数计算 442.15.2温度转换问题 44複习题 45编程练习 47第3章运算符与表达式 493.1概述 493.2算术运算符 493.2.1整数算术运算 503.2.2实数算术运算 513.2.3混合算术运算 523.3关係运算符 523.4逻辑运算符 533.5赋值运算符 543.6递增和递减运算符 563.7条件运算符 573.8逐位运算符 573.9特殊运算符 583.9.1逗号运算符 583.9.2sizeof运算符 583.10算术表达式 603.11表达式的计算 603.12算术表达式的优先权 613.13一些可计算性问题 633.14表达式中的类型转换 643.14.1隐式类型转换 643.14.2显式类型转换 653.15运算符的优先权及其关联性 673.16数学函式 693.17案例学习 703.17.1销售人员的工资 703.17.2二次方程的求解 71複习题 72编程练习 76第4章输入输出操作管理 794.1概述 794.2读取一个字元 804.3写一个字元 824.4格式化输入 834.4.1整数输入 844.4.2实数输入 864.4.3字元串输入 874.4.4混合数据类型的读取 894.4.5错误输入的检测 894.4.6使用scanf函式时应记住的几个要点 914.5格式化输出 924.5.1整数的输出 934.5.2实数的输出 944.5.3单个字元的显示 954.5.4字元串的显示 964.5.5混合数据的输出 974.5.6提高输出的可读性 984.6案例学习 994.6.1库存报告 994.6.2可靠性图形 100複习题 102编程练习 105第5章判断与分支 1075.1概述 1075.2if判断语句 1075.3简单if语句 1085.4if…else语句 1115.5嵌套if…else语句 1145.6阶梯式elseif语句 1175.7switch语句 1205.8?:运算符 1245.9goto语句 1285.10案例学习 1315.10.1数值的分布範围 1315.10.2账单计算 132练习题 135编程练习 139第6章判断与循环 1436.1概述 1436.2while语句 1456.3do语句 1476.4for语句 1496.4.1简单的for循环 1496.4.2for循环的其他特性 1536.4.3for循环的嵌套 1546.5循环中的跳转 1586.5.1跳出循环 1586.5.2跳过循环的一部分 1626.5.3避免使用goto语句 1646.5.4跳出程式 1646.6简洁的测试表达式 1646.7案例学习 1666.7.1二项式係数表 1666.7.2柱状图 1676.7.3最小成本 169 6.7.4描绘两函式的曲线图 170複习题 172编程练习 175第7章数组 1797.1概述 1797.2一维数组 1807.3一维数组的声明 1827.4一维数组的初始化 1847.4.1编译时初始化 1847.4.2运行时初始化 1857.5二维数组 1897.6二维数组的初始化 1927.7多维数组 2007.8动态数组 2007.9与数组相关的其他内容 2017.10案例学习 2027.10.1数列的中值问题 2027.10.2标準差的计算 2047.10.3测试评分 2057.10.4产品与销售分析 207複习题 213编程练习 215第8章字元数组与字元串 2198.1概述 2198.2字元串变数的声明与初始化 2208.3从终端读取字元串 2218.3.1使用scanf函式 2218.3.2读取文本行 2238.3.3使用getchar和gets函式 2238.4在萤幕上显示字元串 2278.4.1使用printf函式 2278.4.2使用putchar和puts函式 2308.5字元的算术运算 2318.6将字元串组合在一起 2328.7两个字元串的比较 2348.8字元串处理函式 2348.8.1strcat函式 2348.8.2strcmp函式 2368.8.3strcpy函式 2368.8.4strlen函式 2368.8.5其他字元串函式 2388.9字元串表 2408.10字元串的其他特性 2428.11案例学习 2438.11.1计算文本中的单词数 2438.11.2客户列表处理程式 244複习题 246编程练习 249第9章用户自定义函式 2519.1概述 2519.2为什幺需要自定义函式 2519.3多函式程式 2529.4自定义函式的元素 2549.5函式定义 2559.5.1函式头 2569.5.2函式体 2579.6返回值及其类型 2579.7函式调用 2589.8函式声明 2609.9函式的类型 2629.10无参数无返回值的函式 2629.11有参数无返回值的函式 2649.12有参数有返回值的函式 2679.13无参数但有一个返回值的函式 2719.14返回多个值的函式 2719.15函式的嵌套 2729.16函式的递归 2739.17将数组传递给函式 2759.17.1一维数组 2759.17.2二维数组 2789.18将字元串传递给函式 2799.19变数的作用域、可见性和生存期 2799.19.1自动变数 280 9.19.2外部变数 2819.19.3外部声明 2849.19.4静态变数 2859.19.5暂存器变数 2869.19.6嵌套代码块 2879.20多档案程式 2889.21案例学习 290複习题 293编程练习 297第10章结构体与共用体 29910.1概述 29910.2结构体的定义 29910.3声明结构体变数 30110.4访问结构体成员 30310.5结构体的初始化 30410.6结构体变数的複製与比较 30510.7单个成员的运算 30710.8结构体数组 30810.9结构体中的数组 31010.10结构体中的结构体 31110.11结构体与函式 31310.12共用体 31610.13结构体的大小 31710.14位域 31710.15案例学习 321複习题 324编程练习 327第11章指针 33111.1概述 33111.2理解指针 33111.3访问变数的地址 33311.4指针变数的声明 33411.5指针变数的初始化 33611.6通过指针访问变数 33711.7指针链 33911.8指针表达式 34011.9指针的递增与比例因子 34111.10指针与数组 34211.11指针与字元串 34511.12指针数组 34711.13将指针作为函式的参数 34811.14函式返回指针 35111.15指向函式的指针 35211.16指针与结构体 35411.17指针存在的问题 35711.18案例学习 35811.18.1考试成绩处理程式 35811.18.2库存更新程式 362複习题 363编程练习 366第12章档案管理 36712.1概述 36712.2定文并打开档案 36812.3关闭档案 36912.4档案的输入输出操作 37012.4.1getc与putc函式 37012.4.2getw和putw函式 37112.4.3fprintf与fscanf函式 37312.5I/O操作的错误处理 37512.6随机访问档案 37712.7命令行参数 382複习题 385编程练习 386第13章动态记忆体分配与鍊表 38713.1概述 38713.2动态记忆体分配 38713.3用malloc函式分配一块记忆体 38813.4用calloc函式分配多个记忆体块 39013.5用free函式释放已用的空间 39113.6用realloc函式改变记忆体块的大小 391 13.7鍊表的概念 39313.8鍊表的优点 39513.9鍊表的种类 39613.10再论指针 39713.11创建鍊表 39913.12插入一个数据项 40213.13删除一个数据项 40513.14鍊表的套用 40713.15案例学习 40813.15.1在已排序鍊表中插入数据 40813.15.2构建已排序的鍊表 411複习题 413编程练习 415第14章预处理器 41714.1概述 41714.2宏替换指令 41814.2.1简单宏替换 41814.2.2带参数的宏 42014.2.3宏嵌套 42114.2.4取消宏定义 42214.3档案包含 42214.4编译器控制指令 42314.4.1情形1 42314.4.2情形2 42414.4.3情形3 42514.4.4情形4 42514.5ANSIC的其他预处理指令 42614.5.1#elif指令 42614.5.2#pragma指令 42714.5.3#error指令 42714.5.4字元串化运算符# 42714.5.5标记符贴上运算符## 428複习题 429编程练习 430第15章C程式开发的一些指导原则 43115.1概述 43115.2程式设计 43115.2.1问题分析 43115.2.2勾勒出程式的结构 43215.2.3算法开发 43215.2.4控制结构的选择 43315.3程式编码 43315.3.1自身文档化 43315.3.2语句的构造 43415.3.3输入/输出格式 43415.3.4程式的通用性 43515.4常见的程式错误 43515.4.1丢失分号 43515.4.2误用分号 43515.4.3丢失括弧 43615.4.4丢失引号 43715.4.5误用引号 43715.4.6使用不正确的注释字元 43715.4.7未声明变数 43815.4.8忽视了运算符的优先权 43815.4.9忽视了递增递减运算符的计算顺序 43915.4.10忽视了函式参数的说明 43915.4.11在函式调用中实参和形参类型不匹配 43915.4.12函式未声明 43915.4.13在scanf函式的参数中丢失了&运算符 44015.4.14超出了数组的边界 44015.4.15忘记了给字元串的空字元留出空间 44115.4.16使用未初始化的指针 44115.4.17丢失了间接运算符和地址运算符 441 15.4.18在指针表达式中丢失括弧 44215.4.19宏定义语句中的参数遗漏了括弧 44215.5程式测试与调试 44215.5.1错误的类型 44315.5.2程式测试 44315.5.3程式调试 44415.6程式的效率 44415.6.1运行时间 44515.6.2记忆体需求 445複习题 445附录A位级程式设计 447附录B字元的ASCII值 453附录CANSIC语言的库函式 455附录D项目设计 459附录EC99的特性 501