《C++primer》v5 第1章 开始 读书笔记 习题答案

从今天开始在博客里写C++primer的文字。主要以后面的习题作业为主,会有必要的知识点补充。

本人也是菜鸟,可能有不对之处,还望指出。

前期内容可能会比较水。

1.1略

1.2略

1.3

cin和cout分别是istream和ostream的对象。

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

1.4

#include<iostream>
using namespace std;
int main()
{
    int a,b;
    cin>>a>>b;
    cout<<a*b<<endl;
    return 0;
}

1.5

#include<iostream>
using namespace std;
int main()
{
    int a,b;
    cin>>a>>b;
    cout<<a<<endl<<b<<endl;
    return 0;
}

1.6

这段代码当然是不正确的。>>、<<本身是移位运算符,被重载以后才被cin和cout使用。“;”表示语句结束,所以下面第7和8行的代码中,<<缺少了调用了它的对象,这里的写法也不符合移位运算符的用法,所以会报错

 1 #include<iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     int v1=1,v2=2;
 6     cout<<"The sum of "<<v1;
 7         <<" and "<<v2;
 8         <<" is "<<v1+v2<<endl;
 9     return 0;
10 }

正确写法是去掉第6和7行的分号。

#include<iostream>
using namespace std;
int main()
{
    int v1=1,v2=2;
    cout<<"The sum of "<<v1
        <<" and "<<v2
        <<" is "<<v1+v2<<endl;
    return 0;
}

1.7略

1.8

/* */这样的注释不能嵌套;

//会注释掉从出现以后的一整行

如果是在双引号内,会是这两种注释功能都失效。

#include<iostream>
using namespace std;
int main()
{
    cout<<"/*"<<endl;//输出 /*
    cout<<"*/"<<endl;//输出 */
    cout<</* "*/" */<<endl;//编译错误
    cout<</* "*/"/* "/*" */<<endl;//输出 /* 同第1个
    return 0;
}

1.9

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

1.10

#include<iostream>
using namespace std;
int main()
{
    int i=10;
    while(i>=0)
    {
        cout<<i<<endl;
        --i;
    }
    return 0;
}

1.11

#include<iostream>
using namespace std;
int main()
{
    int beg,end;
    cin>>beg>>end;
    for(int i=beg;i<=end;++i)
        cout<<i<<endl;
    return 0;
}

1.12

将[-100,100]之间的数字相加,最终结果是0

1.13略

1.14

for适用于循环起点和终点比较明确的时候

while适用于终止条件比较复杂的时候

1.15略

1.16

#include<iostream>
using namespace std;
int main()
{
    int val,sum=0;
    while(cin>>val)
        sum+=val;
    cout<<sum<<endl;
    return 0;
}

1.17

如果全部都相等:number occurs n times

如果没有重复:每个数字都输出 ai occurs 1 times

1.18略

1.19

以下代码将忽略输入顺序的影响。

#include<iostream>
using namespace std;
int main()
{
    int beg,end;
    cin>>beg>>end;
    if(beg>end)
    {
        int temp=beg;
        beg=end;
        end=temp;
    }
    for(int i=beg;i<=end;++i)
        cout<<i<<endl;
    return 0;
}

 

《C++primer》v5 第1章 开始 读书笔记 习题答案,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。