C++Primer第五版——习题答案详解

Posted mered1th

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++Primer第五版——习题答案详解相关的知识,希望对你有一定的参考价值。

开始刷《C++Primer》这本书,会在博客上更新课后习题。

水平有限,如有有误之处,希望大家不吝指教!

不断学习中,欢迎交流!


第一二章课后题

练习1.3

#include<iostream>
int main(){
    std::cout<<"Hello world"<<std::endl;
    return 0;
}

练习1.4

#include<iostream>
int main(){
    std::cout << "Input two numbers: " << std::endl;
    int a, b;
    std::cin >> a >> b;
    std::cout << a <<" * "<< b << " = " << a * b << std::endl;
}

练习1.5

#include<iostream>
int main(){
    std::cout << "Input two numbers: " << std::endl;
    int a, b;
    std::cin >> a >> b;
    std::cout << a;
    std::cout<<" * ";
    std::cout<< b ;
    std::cout<< " = " ;
    std::cout<< a * b ;
    std::cout<< std::endl;
}

练习1.6
不合法,第一行有分号表示语句结束,改为如下:

#include<iostream>
int main(){
    std::cout << "Input two numbers: " << std::endl;
    int a, b;
    std::cin >> a >> b;
    std::cout << "The sum of "<< a << " and " << b<< " is " << a + b <<std::endl; 
    return 0;
}

练习1.7

#include<iostream>
int main(){
    /*
    /* */注释不能嵌套!  
    */
    return 0;
}

练习1.8
第三行错误,因前双引号被注释掉了,后双引号不匹配。

#include<iostream>
int main(){
    std::cout << "/*"<<std::endl;
    std::cout << "*/"<<std::endl;
    //std::cout << /* "*/" */<<std::endl;
    std::cout << /* "*/" /* "/*" */<<std::endl;
    return 0;
}

练习1.9

 #include<iostream>
int main(){
    int sum = 0, val = 50;
    while (val <= 100){
        sum += val;
        ++val;
    }
    std::cout << sum << std::endl;
    return 0;
}

练习1.10

#include<iostream>
int main(){
    int sum = 0, val = 10;
    while (val >= 0){
        sum += val;
        --val;
    }
    std::cout << sum << std::endl;
    return 0;
}

练习1.11

#include<iostream>
int main(){
    int a, b;
    std::cin >> a >> b;
    while (a <= b){
        std::cout << a << " ";
        ++a;
    }
    return 0;
}

练习1.12
程序的功能是求[-100,100]范围内的整数的和,sum的终值为0

练习1.14
已知循环次数的时候用for简便,未知时用while简便。

练习1.16

#include<iostream>
int main(){
    int a, sum = 0;
    while(std::cin >> a){
        sum += a;
    }
    std::cout << sum;
    return 0;
}

练习1.19

#include<iostream>
int main(){
    int a, b;
    std::cin >> a >> b;
    if( a > b ){
        int temp = a;
        a = b;
        b = temp;
    }
    while (a <= b){
        std::cout << a << " ";
        ++a;
    }
    return 0;
}

练习1.20

#include <iostream>
#include "Sales_item.h"
int main(){
    Sales_item book;
    while(std::cin >> book){
        std::cout << "Record: " << book <<std::endl;
    }
    return 0;
}

练习1.21

#include <iostream>
#include "Sales_item.h"
int main(){
    Sales_item book1, book2;
    std::cin >> book1 >> book2;
    std::cout << book1 + book2 <<std::endl;
    return 0;
}

练习2.8

#include<iostream>
int main(){
    cout<<"2M"<<'
';
    cout<<'2'<<'	'<<'M'<<'
';
}

练习2.9
a.需要在cin前定义变量名
b.3.14强制转换为Int有精度损失
c.wage未定义
d.同b

练习2.15
a.定义合法但有精度损失
b.引用类型的初始值必须是一个对象
c.正确
d.同b

练习2.17
10 10

练习2.27
a.不合法,引用r的赋值对象必须是一个对象
b.合法,将p2设置为一个常量指针,初始化为i2对象的地址
c.合法,将i设为常量-1,r设置为常量的引用
d.合法,将p3设为指向常量的常量指针,初始化为i2的地址
e.合法,将p1设为指向常量的指针,初始化为i2的地址
f.不合法,常量指针必须初始化
g.合法

练习2.28
a.不合法,常量指针必须初始化
b.不合法,同a
c.不合法,常量ic未初始化
d.不合法,同a
e.合法。

以上是关于C++Primer第五版——习题答案详解的主要内容,如果未能解决你的问题,请参考以下文章

C++Primer第五版——习题答案详解

C++Primer第五版——习题答案+详解(完整版)

C++PRIMER第五版练习题答案第一章

《C++Primer习题集(第5版)》,对使用C Primer(第五版)学习C 程序设计语言的读者来说是一本非常理想的参考书。

C++ Primer 第五版 部分课后题答案

C++ Primer(第五版) 整理和总结