2-1
修改Hello.cpp,使它能打印你的名字和年龄(或者你的鞋码、爱犬的年龄等,只要你喜欢)。编译并运行修改后的程序。
#include <iostream>
using namespace std;
int main() {
cout << "我的名字叫夏商周,年龄不到"
<< 100 << "岁啊!" << endl;
}
输出:
我的名字叫夏商周,年龄不到100岁啊!
2-2
以Stream2.cpp、Numconv.cpp为例,编一个程序,让它根据输入的半径值求出圆面积,并打印。可以用运算符" * "求半径的平方。注意,不要用八进制或十六进制格式打印(它们只适用于整数类型)。
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int radius;
cout << "请输入半径:";
cin >> radius;
cout << "圆的面积为:"
<< M_PI * radius * radius << endl;
}
输出:
请输入半径:5
圆的面积为:78.5398
2-3
编一个程序用来打开文件并统计文件中以空格隔开的单词数目。
#include <string>
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int main() {
ifstream in("Fillvector.cpp");
string word;
int count = 0;
while(in >> word)
count++;
cout << "单词数量为:" << count << endl;
}
输出:
单词数量为:34
2-4
编一个程序统计文件中特定单词的出现次数(要求使用string类的运算符"=="来查找单词)。
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
ifstream in("Hello.cpp");
string word;
cout << "请输出要统计的单词:";
cin >> word;
int count = 0;
string curWord;
while (in >> curWord) {
if (curWord == word) count++;
}
cout << word << "出现的次数为:" << count << endl;
}
输出:
请输出要统计的单词:#include
#include出现的次数为:3
2-5
修改Fillvector.cpp使它能从后向前打印各行。
#include <string>
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int main() {
vector<string> v;
ifstream in("Fillvector.cpp");
string line;
while(getline(in, line))
v.push_back(line);
for(int i = v.size() - 1; i >= 0; i--)
cout << i << ": " << v[i] << endl;
}
输出:
15: }
14: cout << i << ": " << v[i] << endl;
13: for(int i = v.size() - 1; i >= 0; i--)
12: // 从后向前输出各行
11: v.push_back(line);
10: while(getline(in, line))
9: string line;
8: ifstream in("Fillvector.cpp");
7: vector<string> v;
6: int main() {
5:
4: using namespace std;
3: #include <vector>
2: #include <fstream>
1: #include <iostream>
0: #include <string>
2-6
修改Fillvector.cpp使它能把vector中的所有元素连接成单独的一个字符串,并打印,但不要加上行号。
#include <string>
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int main() {
vector<string> v;
ifstream in("Fillvector.cpp");
string line;
while(getline(in, line))
v.push_back(line);
string word;
for(int i = 0; i < v.size(); i++)
word += v[i];
cout << word << endl;
}
输出:
#include <string>#include <iostream>#include <fstream>#include <vector>using namespace std;int main() { vector<string> v; ifstream in("Fillvector.cpp"); string line; while(getline(in, line)) v.push_back(line); // Add the line to the end string word; for(int i = 0; i < v.size(); i++) word += v[i]; cout << word << endl;}
2-7
编一个程序,一次显示文件的一行,然后,等待用户按回车键后显示下一行。
#include <string>
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream in("Fillvector.cpp");
string line;
while(getchar() == '\n' && getline(in, line)) {
cout << line << endl;
}
}
2-8
创建一个vector<float>,并用一个for循环语句向它输入25个浮点数,显示vector的结果。
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<float> fvec;
for (int i = 0; i < 25; i++) {
fvec.push_back(i * 1.1);
}
for (int i = 0; i < fvec.size(); i++) {
cout << fvec[i] <<",";
}
cout << endl;
}
输出:
0,1.1,2.2,3.3,4.4,5.5,6.6,7.7,8.8,9.9,11,12.1,13.2,14.3,15.4,16.5,17.6,18.7,19.8,20.9,22,23.1,24.2,25.3,26.4,
2-9
创建三个vector<float>对象,与第8题一样填写前两个对象。编一个for循环,把前两个vector的每一个相应元素相加起来,结果放入第三个vector的相应元素中,显示这三个vector的结果。
#include <iostream>
#include <vector>
using namespace std;
void displayVector(vector<float> &fvec) {
for (int i = 0; i < fvec.size(); i++) {
cout << fvec[i] << " ";
}
cout << endl;
}
int main() {
vector<float> fvec1, fvec2, fvec3;
for (int i = 0; i < 25; i++) {
fvec1.push_back(i * 1.1);
fvec2.push_back(i * 1.2);
fvec3.push_back(fvec1[i] + fvec2[i]);
}
cout << "这三个vector分别为:" << endl;
displayVector(fvec1);
displayVector(fvec2);
displayVector(fvec3);
}
输出:
这三个vector分别为:
0 1.1 2.2 3.3 4.4 5.5 6.6 7.7 8.8 9.9 11 12.1 13.2 14.3 15.4 16.5 17.6 18.7 19.8 20.9 22 23.1 24.2 25.3 26.4
0 1.2 2.4 3.6 4.8 6 7.2 8.4 9.6 10.8 12 13.2 14.4 15.6 16.8 18 19.2 20.4 21.6 22.8 24 25.2 26.4 27.6 28.8
0 2.3 4.6 6.9 9.2 11.5 13.8 16.1 18.4 20.7 23 25.3 27.6 29.9 32.2 34.5 36.8 39.1 41.4 43.7 46 48.3 50.6 52.9 55.2
2-10
编一个程序,创建一个vector<float>,像前面的练习那样输入25个数。求每个数的平方,并把它们放入vector的同样位置。显示运算前后的vector。
#include <iostream>
#include <vector>
using namespace std;
void displayVector(vector<float> &fvec) {
for (int i = 0; i < fvec.size(); i++) {
cout << fvec[i] << " ";
}
cout << endl;
}
int main() {
vector<float> fvec1;
for (int i = 0; i < 25; i++) {
fvec1.push_back(i * 1.1);
}
vector<float> fvec2(fvec1.size());
for (int i = 0; i < fvec1.size(); i++) {
fvec2[i] = fvec1[i] * fvec1[i];
}
cout << "这2个vector分别为:" << endl;
displayVector(fvec1);
displayVector(fvec2);
}
输出:
这2个vector分别为:
0 1.1 2.2 3.3 4.4 5.5 6.6 7.7 8.8 9.9 11 12.1 13.2 14.3 15.4 16.5 17.6 18.7 19.8 20.9 22 23.1 24.2 25.3 26.4
0 1.21 4.84 10.89 19.36 30.25 43.56 59.29 77.44 98.01 121 146.41 174.24 204.49 237.16 272.25 309.76 349.69 392.04 436.81 484 533.61 585.64 640.09 696.96
|