欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    C Primer第4 版习题解答.docx

    • 资源ID:10668777       资源大小:55.37KB        全文页数:121页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C Primer第4 版习题解答.docx

    1、C Primer第4 版习题解答C+ Primer(第4 版)习题解答.txt51自信是永不枯竭的源泉,自信是奔腾不息的波涛,自信是急流奋进的渠道,自信是真正的成功之母。书名:C+ Primer(第4 版)习题解答? 作者:蒋爱军李师贤 梅晓勇? 来源:人民邮电出版社? 出版时间:2006 年12 月? ISBN:9787115155108? 定价:45 元内容介绍:C+ Primer(第4 版)是C+大师Stanley B. Lippman 丰富的实践经验和C+标准委员会原负责人JoseLajoie 对C+标准深入理解的完美结合,更加入了C+先驱Barbara E. Moo 在C+教学方面的

    2、真知灼见,C+ Primer(4 版)习题解答2是初学者的最佳C+指南,而且对于中高级程序员,也是不可或缺的参考书。本书正是这部久负盛名的C+经典教程的配套习题解答。书中提供了C+ Primer(第4 版)中所有习题的参考答案。本书对使用C+ Primer(第4 版)学习C+程序设计语言的读者是非常理想的参考书。C+是一门非常实用的程序设计语言,既支持过程式程序设计,也支持面向对象程序设计,因而也是目前应用极为广泛的一门程序设计语言。在层出不穷的介绍C+语言的书籍中,C+ Primer 是一本广受欢迎的权威之作。强大的作者阵容、全面的内容介绍、新颖的组织方式,使之深受C+爱好者的青睐。本书编者

    3、在翻译C+ Primer(第4 版)的过程中也深深地感受到了这一点。在学习一门程序设计语言的过程中,亲自动手编写代码是一种极其有效的学习方式,可以对语言的理解和应用达到事半功倍的效果,因此,C+ Primer(第4版)中提供了许多习题,以帮助读者加深对书中内容的理解。本书试图成为C+ Primer(第4 版)的配套书籍,根据C+ Primer(第4 版)中所介绍的内容提供配套习题的解答,书中所给出的“见xx 节”,均指参见C+Primer(第4 版)的相应章节。本书中给出的程序均已通过Microsoft Visual C+ .NET 2003 的编译。源文件(实现文件)以.cpp 为扩展名,头

    4、文件为了与此对应采用.hpp 为扩展名(而没有采用编译器的默认扩展名.h)。为了节省篇幅,有些程序中将类的定义与使用类的主函数放在同一实现文件中。包含主函数的源文件根据习题编号命名。大多数模板的定义都没有区分头文件和实现文件(因为编者所用的编译器支持模板的包含编译模型)。另外,使用Visual C+ .NET 2003 编译器的默认设置会自动连接一些默认库,因此可能有某些所用到的库函数或库类型没有显式指明相应的头文件。使用其他编译器的读者需特别注意,必要时应加上相应的#include 指示。衷心希望本书能对使用C+ Primer(第4 版)学习C+语言的读者有所帮助。由于编者水平所限,书中不当

    5、之处在所难免,恳请读者批评指正。编 者2006 年10月习题 1.1查看所用的编译器文档,了解它所用的文件命名规范。编译并运行本节的main程序。C+ Primer(4 版)习题解答3【解答】一般而言,C+编译器要求待编译的程序保存在文件中。C+程序中一般涉及两类文件:头文件和源文件。大多数系统中,文件的名字由文件名和文件后缀(又称扩展名)组成。文件后缀通常表明文件的类型,如头文件的后缀可以是.h或.hpp 等;源文件的后缀可以是.cc 或.cpp 等,具体的后缀与使用的编译器有关。通常可以通过编译器所提供的联机帮助文档了解其文件命名规范。习题1.2修改程序使其返回-1。返回值-1 通常作为程

    6、序运行失败的指示器。然而,系统不同,如何(甚至是否)报告main 函数运行失败也不同。重新编译并再次运行程序,看看你的系统如何处理main 函数的运行失败指示器。【解答】笔者所使用的Windows 操作系统并不报告main 函数的运行失败,因此,程序返回-1 或返回0 在运行效果上没有什么区别。但是,如果在DOS 命令提示符方式下运行程序,然后再键入echo %ERRORLEVEL%命令,则系统会显示返回值-1。习题1.3编一个程序,在标准输出上打印“Hello, World”。【解答】#includeint main()std:cout Hello, World std:endl;retur

    7、n 0;习题1.4我们的程序利用内置的加法操作符“+”来产生两个数的和。编写程序,使用乘法操作符“*”产生两个数的积。【解答】#include C+ Primer(4 版)习题解答4int main()std:cout Enter two numbers: v1 v2;std:cout The product of v1 and v2 is v1 * v2 std:endl;return 0;习题1.5我们的程序使用了一条较长的输出语句。重写程序,使用单独的语句打印每一个操作数。【解答】#include int main()std:cout Enter two numbers: v1 v2;s

    8、td:cout The sum of ;std:cout v1;std:cout and ;std:cout v2;std:cout is ;C+ Primer(4 版)习题解答5std:cout v1 + v2 ;std:cout std:endl;return 0;习题1.6解释下面的程序段:std:cout The sum of v1; and v2; is v1 + v2 std:endl;这段代码合法吗?如果合法,为什么?如果不合法,又为什么?【解答】这段代码不合法。注意,第1、2、4 行的末尾有分号,表示这段代码包含三条语句,即第1、2 行各为一个语句,第3、4 行构成一个语句。“

    9、”为二元操作符,在第2、3 两条语句中,第一个“”缺少左操作数,因此不合法。在第2、3 行的开头加上“std:cout”,即可更正。习题1.7编译有不正确嵌套注释的程序。【解答】由注释对嵌套导致的编译器错误信息通常令人迷惑。例如,在笔者所用的编译器中编译1.3 节中给出的带有不正确嵌套注释的程序:#include /* comment pairs /* */ cannot nest.* cannot nest is considered source code,* as is the rest of the program*/int main()return 0;编译器会给出如下错误信息:er

    10、ror C2143: syntax error : missing ; before error C2501: include : missing storage-class or type specifierswarning C4138: */ found outside of comment (第6 行)error C2143: syntax error : missing ; before (第8 行)error C2447: : missing function header (old-style formal list?)(第8 行)习题1.8指出下列输出语句哪些(如果有)是合法的。

    11、std:cout /*;std:cout */;std:cout /* */ */;预测结果,然后编译包含上述三条语句的程序,检查你的答案。纠正所遇到的错误。【解答】第一条和第二条语句合法。C+ Primer(4 版)习题解答7第三条语句中操作符之后至第二个双引号之前的部分被注释掉了,导致操作符的右操作数不是一个完整的字符串,所以不合法。在分号之前加上一个双引号即可更正。习题1.9下列循环做什么? sum 的最终值是多少?int sum = 0;for (int i = -100; i = 100; +i)sum += i;【解答】该循环求-100100 之间所有整数的和(包括-100 和10

    12、0)。sum 的最终值是0。习题1.10用for 循环编程,求从50100 的所有自然数的和。然后用while 循环重写该程序。【解答】用for 循环编写的程序如下:#include int main()int sum = 0;for (int i = 50; i = 100; +i)sum += i;std:cout Sum of 50 to 100 inclusive is sum std:endl;return 0;C+ Primer(4 版)习题解答8用while 循环编写的程序如下:#include int main()int sum = 0, int i = 50;while (i

    13、 = 100) sum += i;+i;std:cout Sum of 50 to 100 inclusive is sum std:endl;return 0;习题1.11用while 循环编程,输出100 递减的自然数。然后用for 循环重写该程序。【解答】用while 循环编写的程序如下:#include int main()int i = 10;while (i = 0) std:cout i ;C+ Primer(4 版)习题解答9-i;return 0;用for 循环编写的程序如下:#include int main()for (int i = 10; i = 0; -i)std:

    14、cout i ;return 0;习题1.12对比前面两个习题中所写的循环。两种形式各有何优缺点?【解答】在for 循环中,循环控制变量的初始化和修改都放在语句头部分,形式较简洁,且特别适用于循环次数已知的情况。在while 循环中,循环控制变量的初始化一般放在while 语句之前,循环控制变量的修改一般放在循环体中,形式上不如for 语句简洁,但它比较适用于循环次数不易预知的情况(用某一条件控制循环)。两种形式各有优点,但它们在功能上是等价的,可以相互转换。习题1.13编译器不同,理解其诊断内容的难易程度也不同。编写一些程序,包含本小节“再谈编译”部分讨论的那些常见错误。研究编译器产生的信息

    15、,这样你在编译更复杂的程序遇到这些信息时不会陌生。【解答】C+ Primer(4 版)习题解答10对于程序中出现的错误,编译器通常会给出简略的提示信息,包括错误出现的文件及代码行、错误代码、错误性质的描述。如果要获得关于该错误的详细信息,一般可以根据编译器给出的错误代码在其联机帮助文档中查找。习题1.14如果输入值相等,本节展示的程序将产生什么问题?【解答】sum 的值即为输入值。因为输入的v1 和v2 值相等(假设为x),所以lower 和upper 相等,均为x。for 循环中的循环变量val 初始化为lower,从而val=upper为真,循环体执行一次,sum 的值为val(即输入值x

    16、);然后val 加1,val 的值就大于upper,循环执行结束。习题1.15用两个相等的值作为输入编译并运行本节中的程序。将实际输出与你在习题1.14 中所做的预测相比较,解释实际结果和你预计的结果间的不相符之处。【解答】运行1.4.3 节中给出的程序,输入两个相等的值(例如3,3),则程序输出为:Sum of 3 to 3 inclusive is 3与习题1.14 中给出的预测一致。习题1.16编写程序,输出用户输入的两个数中的较大者。【解答】#include int main()std:cout Enter two numbers: v1 v2; / 读入数据if (v1 = v2)s

    17、td:cout The bigger number is v1 std:endl;elsestd:cout The bigger number is v2 std:endl;return 0;习题1.17编写程序,要求用户输入一组数。输出信息说明其中有多少个负数。【解答】#include int main()int amount = 0, value;/ 读入数据直到遇见文件结束符,计算所读入的负数的个数while (std:cin value)if (value = 0)+amount;std:cout Amount of all negative values read is amount

    18、 std:endl;return 0;习题1.18编写程序,提示用户输入两个数并将这两个数范围内的每个数写到标准输出。C+ Primer(4 版)习题解答12【解答】#include int main()std:cout Enter two numbers: v1 v2; / 读入两个数/ 用较小的数作为下界lower、较大的数作为上界upperint lower, upper;if (v1 = v2) lower = v1;upper = v2; else lower = v2;upper = v1;/ 输出从lower 到upper 之间的值std:cout Values of lower

    19、 to upper inclusive are: std:endl;for (int val = lower; val = upper; +val)std:cout val ;return 0;C+ Primer(4 版)习题解答13习题1.19如果上题给定数1000 和2000,程序将产生什么结果?修改程序,使每一行输出不超过10 个数。【解答】所有数的输出连在一起,不便于阅读。程序修改如下:#include int main()std:cout Enter two numbers: v1 v2; / 读入两个数/ 用较小的数作为下界lower、较大的数作为上界upperint lower,

    20、 upper;if (v1 = v2) lower = v1;upper = v2; else lower = v2;upper = v1;/ 输出从lower 到upper 之间的值std:cout Values of lower to upper inclusive are: std:endl;for (int val = lower, count=1; val = upper; +val, +count) std:cout val ;if (count % 10 = 0) /每行输出10 个值std:cout std:endl;return 0;粗黑体部分为主要的修改:用变量count

    21、记录已输出的数的个数;若count 的值为10 的整数倍,则输出一个换行符。习题1.20编写程序,求用户指定范围内的数的和,省略设置上界和下界的if 测试。假定输入数是7 和3,按照这个顺序,预测程序运行结果。然后按照给定的数是7 和3 运行程序,看结果是否与你预测的相符。如果不相符,反复研究关于for 和while 循环的讨论直到弄清楚其中的原因。【解答】可编写程序如下:/ 1-20.cpp/ 省略设置上界和下界的if 测试,求用户指定范围内的数的和#include int main()std:cout Enter two numbers: v1 v2; / 读入数据int sum = 0;

    22、/ 求和for (int val = v1; val = v2; +val)sum += val; / sum = sum + valstd:cout Sum of v1 to v2 inclusive is sum std:endl;return 0;如果输入数据为7 和3,则v1 值为7,v2 值为3。for 语句头中将val 的初始值设为7,第一次测试表达式val = v2 时,该表达式的值为false,for 语句的循环体一次也不执行,所以求和结果sum 为0。习题1.21本书配套网站( 章的代码目录下有Sales_ item.h 源文件。复制该文件到你的工作目录。编写程序,循环遍历一

    23、组书的销售交易,读入每笔交易并将交易写至标准输出。【解答】#include #include Sales_item.hint main()Sales_item book;/ 读入ISBN,售出书的本数,销售价格std:cout Enter transactions: book) C+ Primer(4 版)习题解答16/ 输出ISBN,售出书的本数,总收入,平均价格std:cout ISBN, number of copies sold, total revenue, and average price are: std:endl;std:cout book std:endl;return 0

    24、;习题1.22编写程序,读入两个具有相同ISBN 的Sales_item 对象并产生它们的和。【解答】#include #include Sales_item.hint main()Sales_item trans1, trans2;/ 读入交易std:cout Enter two transactions: trans1 trans2;if (trans1.same_isbn(trans2)std:cout The total information: std:endl ISBN, number of copies sold, total revenue, and average price

    25、 are: std:endl trans1 + trans2;C+ Primer(4 版)习题解答17elsestd:cout The two transactions have different ISBN. std:endl;return 0;习题1.23编写程序,读入几个具有相同ISBN 的交易,输出所有读入交易的和。【解答】#include #include Sales_item.hint main()Sales_item total, trans;/ 读入交易std:cout Enter transactions: total) while (std:cin trans)if (to

    26、tal.same_isbn(trans) / ISBN 相同total = total + trans;else / ISBN 不同std:cout Different ISBN. std:endl;return 1;/ 输出交易之和C+ Primer(4 版)习题解答18std:cout The total information: std:endl ISBN, number of copies sold, total revenue, and average price are: std:endl total;else std:cout No data?! std:endl;return 1;return 0;习题1.24编写程序,读入几笔不同的交易。对于每笔新读入的交易,要确定它的ISBN 是否和以前的交易的ISBN 一样,并且记下每一个ISBN 的交易的总数。通过给定多笔不同的


    注意事项

    本文(C Primer第4 版习题解答.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开