编程语言
首页 > 编程语言> > c++primer(练习1.14、1.16、2.17、2.38、3.2、3.3、3.5)

c++primer(练习1.14、1.16、2.17、2.38、3.2、3.3、3.5)

作者:互联网

练习1.14

对比for循环和while循环,两种形式的有缺点各是什么?

练习1.16

编写程序,从cin读取一组数,输出其和

#include <iostream>
using namespace std;
int main() {
    int a=0,b=0;
    cout << "输入5个整数:"<< endl;
    for (int i = 0; i < 5; ++i) {
        cin >> a;
        b+=a;
    }
    cout <<"这5个整数的和为:" << b << endl;

    return 0;
}

Result

练习2.17

执行下面的代码段将输出什么结果?

#include <iostream>
using namespace std;
int main() {
    int i, &ri = i;
    i = 5; ri = 10;
    cout << i <<" "<< ri <<endl;
    return 0;
}

Result

练习2.38

说明由decltype指定类型和由auto指定类型有何区别?

1.请举出一个例子,decltype指定的类型与auto指定的类型一样;

int i = 0, &r = i;
auto a = i;           //i为0,由此auto变为int
decltype (i) b = i;   //i为int类型,由此decltype(i)成为int

2.再举一个例子,decltype指定的类型与auto指定的类型不一样

int i = 0, &r = i;
auto c = r;         //r是i的引用(别名),i值为0,故r=0,所以auto变为int
decltype(r) d = i;  //r的类型是引用类型,故decltype(r)变为int&(引用类型)

练习3.2

编写一段程序从标准输入中一次读入一整行,然后修改该程序使其一次读入一个词

#include <iostream>
using namespace std;
int main() {
    string word;
    while (getline(cin,word))
        cout << word << endl;
    return 0;
}

Result

修改上述程序使其一次读入一个词

#include <iostream>
using namespace std;
int main() {
    string word;
    while (cin >> word)
        cout << word << endl;
    return 0;
}

Result

练习3.3

说明string类的输入运算符(>>)和getline函数分别是如何处理空白字符串的

练习3.4

编写一段程序读入两个字符串,比较其是否相等并输出结果。如果不相等,输出较大的那个字符串。

#include <iostream>
using namespace std;
int main() {
    string s1,s2;
    cin >> s1 >> s2;
    if (s1==s2)
        cout << "s1与s2相等"<<endl;
    else if (s1>s2)
      cout << s1;
    else
      cout << s2;
    return 0;
}

Result


改写上述程序,比较输入的两个字符串是否等长,如果不等长,输出长度较大的那个字符串。

#include <iostream>
using namespace std;
int main() {
    string s1,s2;
    cin >> s1 >> s2;
    if (s1.size()==s2.size())
        cout << "s1与s2等长"<<endl;
    else if (s1.size()>s2.size())
      cout << s1;
    else
      cout << s2;
    return 0;
}

Result

练习3.5

编写一段程序从标准输入中读入多个字符串并将它们连接在一起,输出连接成的大字符串

#include <iostream>
using namespace std;
int main() {
    string s1,s2,s3;
    cin >> s1 >> s2 >> s3;
    string s4=s1+s2+s3;
    cout << s4 << endl;
    return 0;
}

Result

修改上述程序,用空格把输入的多个字符串分隔开来

#include <iostream>
using namespace std;
int main() {
    string s1,s2,s3,s4;
    cin >> s1 >> s2 >> s3 >> s4;
    string s5 = s1+" "+s2+" "+s3+" "+s4;
    cout << s5 << endl;
    return 0;
}

Result

标签:1.16,1.14,string,int,s2,s1,2.38,auto,cout
来源: https://blog.csdn.net/weixin_48524215/article/details/110388996