c++primer 答案

所需积分/C币:40 2013-08-09 10:14:23 405KB PDF
1
收藏 收藏
举报

属于比较全的答案 很好很强大 你值得拥有 1
(版)习题解答 【解答】 般而言,C++编译器要求待编译的程序保存在文件中。C++程序中一般涉及两 类文件:头文件和源文件。大多数系统中,文件的名字由文件名和文件后缀(又 称扩展名)组成。文件后缀通常表明文件的类型,如头文件的后缀可以是h 或hpp等;源文件的后缀可以是.c或cpp等,具体的后缀与使用的编译器有 关。通常可以通过编译器所提供的联机帮助文档了解其文件命名规范。 习题1.2 修改程序使其返回-1。返回值-1通常作为程序运行失败的指示器。然而,系统 不同,如何(甚至是否)报告main函数运行失败也不同。重新编译并再次运行 程序,看看你的系统如何处理main函数的运行失败指示器。 【解答】 笔者所使用的 Windows操作系统并不报告main函数的运行失败,因此,程序返 回-1或返回0在运行效果上没有什么区别。但是,如果在D0S命令提示符方式 下运行程序,然后再键入echo‰RR0 RLEVEL%命令,则系统会显示返回值-1 习题1.3 编一个程序,在标准输出上打印“He1lo, World”。 【解答】 tincludesiostream int maino std: cout <<"Hello, World"< std:: endl return o 习题1.4 我们的程序利用内置的加法操作符“+”来产生两个数的和。编写程序,使用乘 法操作符“*”产生两个数的积。 【解答】 #include iostream> (版)习题解答 int main std:: cout <<Enter two numbers: < std:: endl int vl. y2. std: cin >>v1>>v2: std: cout < The product of << v1 <<and<< v2 K v1*v2<< std: endl: return 0 习题1.5 我们的程序使用了一条较长的输出语句。重写程序,使用单独的语句打印每一 个操作数 【解答】 #include iostream> int main std: cout "Enter two numbers: std: endl int v1. v2: std::cin>〉v1>>v2 std:: cout <The sum of std: cout v1 std:: cout < and std: cout < v2: std: cout is (版)习题解答 std:: cout < v1 +v2 std: cout < std:: endl return o 习题1.6 解释下面的程序段: std: cout The sum of << v1 and << v2 <"is"<<v1+v2 < std:: endl 这段代码合法吗?如果合法,为什么?如果不合法,又为什么? 【解答】 这段代码不合法。 注意,第1、2、4行的末尾有分号,表示这段代码包含三条语句,即第1、2行 各为一个语句,第3、4行构成一个语句。“”为二元操作符,在第2、3两 条语句中,第一个“<<”缺少左操作数,因此不合法。 在第2、3行的开头加上“std::cout”,即可更正 习题1.7 编译有不正确嵌套注释的程序。 【解答】 由注释对嵌套导致的编译器错误信息通常令人迷惑。例如,在笔者所用的编译 器中编译1.3节中给出的带有不正确嵌套注释的程序: include <iostream> 水 k comment pairs / ** cannot nest (版)习题解答 * cannot nest"is considered source code k as is the rest of the program int maino return 0: 编译器会给出如下错误信息 error C2143: syntax error missing: before error C2501:include: missing storage-class or type specifiers warning C4138:*/ found outside of comment (9615) error C2143: syntax error missing before , (第8行) error C2447:': missing function header (old-style formal list?)(A 8行) 习题1.8 指出下列输出语句哪些(如果有)是合法的。 std:: cout <<"/ std:: cout <<* std::cout<</*"*/"米/ 预测结果,然后编译包含上述三条语句的程序,检查你的答案。纠正所遇到的 错误。 【解答】 第一条和第二条语句合法。 (版)习题解答 第三条语句中<操作符之后至第二个双引号之前的部分被注释掉了,导致<操 作符的右操作数不是一个完整的字符串,所以不合法。在分号之前加上一个双 引号即可更正。 习题1.9 下列循环做什么?sum的最终值是多少? int sum =0: for(inti=-100;i<=100;++i) sum +=1 【解答】 该循环求-100100之间所有整数的和(包括-100和100)。 sum的最终值是0 习题1.10 用for循环编程,求从50~100的所有自然数的和。然后用whi1e循环重写该程 序 【解答】 用for循环编写的程序如下 include <iostream> int main int sum=0: for(inti=50;i<=100;++i) sum t= 1 std:: cout << "Sum of 50 to 100 inclusive is SUm std: endl return 0: (版)习题解答 用whi1e循环编写的程序如下: # include< iostream〉 int maino int sum =0. int i=50 while(i<= 100)( sum t= 1 std:: cout Sum of 50 to 100 inclusive is K sum < std: end1 return o 习题1.11 用 while循环编程,输出100递减的自然数。然后用for循环重写该程序。 【解答】 用 while循环编写的程序如下 # include< iostream〉 int maino int 1 =10: while (i >=0)i std::cout<<i<<” (版)习题解答 return 0 用for循环编写的程序如下: #include < iostream> int main for (int i =10: i >=0: --i std:: cout <s i <s return 0 习题1.12 对比前面两个习题中所写的循环。两种形式各有何优缺点? 【解答】 在for循环中,循环控制变量的初始化和修改都放在语句头部分,形式较简洁, 且特别适用于循环次数已知的情况。在 while循环中,循环控制变量的初始化 般放在 while语句之前,循环控制变量的修改一般放在循环体中,形式上不 如for语句简洁,但它比较适用于循环次数不易预知的情况(用某一条件控制 循环)。两种形式各有优点,但它们在功能上是等价的,可以相互转换。 习题1.13 编译器不同,理解其诊断内容的难易程度也不同。编写一些程序,包含本小节 “再谈编译”部分讨论的那些常见错误。研究编译器产生的信息,这样你在编 译更复杂的程序遇到这些信息时不会陌生。 【解答】 (版)习题解答 对于程序中出现的错误,编译器通常会给出简略的提示信息,包括错误出现的 文件及代码行、错误代码、错误性质的描述。如果要获得关于该错误的详细信 息,一般可以根据编译器给出的错误代码在其联机帮助文档中查找。 习题1.14 如果输入值相等,本节展示的程序将产生什么问题? 【解答】 sum的值即为输入值。因为输入的v1和v2值相等(假设为x),所以1ower和 upper相等,均为x。for循环中的循环变量va1初始化为 lower,从而val<= upper 为真,循环体执行一次,sum的值为va1(即输入值x);然后val加1,val的 值就大于 upper,循环执行结束。 习题1.15 用两个相等的值作为输入编译并运行本节中的程序。将实际输出与你在习题 1.1中所做的预测相比较,解释实际结果和你预计的结果间的不相符之处。 【解答】 运行1.4.3节中给出的程序,输入两个相等的值(例如3,3),则程序输出为 Sum of 3 to 3 inclusive is 3 与习题1.14中给出的预测一致。 习题1.16 编写程序,输出用户输入的两个数中的较大者。 【解答】 #include iostream> int maino std: cout < enter two numbers: < std: endl int vl, v2. std:cin>v1>>v2;//读入数据

...展开详情
试读 106P c++primer  答案
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
上传资源赚积分or赚钱
    最新推荐
    c++primer 答案 40积分/C币 立即下载
    1/106
    c++primer  答案第1页
    c++primer  答案第2页
    c++primer  答案第3页
    c++primer  答案第4页
    c++primer  答案第5页
    c++primer  答案第6页
    c++primer  答案第7页
    c++primer  答案第8页
    c++primer  答案第9页
    c++primer  答案第10页
    c++primer  答案第11页
    c++primer  答案第12页
    c++primer  答案第13页
    c++primer  答案第14页
    c++primer  答案第15页
    c++primer  答案第16页
    c++primer  答案第17页
    c++primer  答案第18页
    c++primer  答案第19页
    c++primer  答案第20页

    试读结束, 可继续阅读

    40积分/C币 立即下载 >