IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 《c++编程思想第1卷》第1章练习题答案 -> 正文阅读

[C++知识库]《c++编程思想第1卷》第1章练习题答案

2-1

修改Hello.cpp,使它能打印你的名字和年龄(或者你的鞋码、爱犬的年龄等,只要你喜欢)。编译并运行修改后的程序。

#include <iostream> // Stream declarations
using namespace std;

int main() {
  cout << "我的名字叫夏商周,年龄不到"
       << 100 << "岁啊!" << endl;
}

输出:

我的名字叫夏商周,年龄不到100岁啊!

2-2

以Stream2.cpp、Numconv.cpp为例,编一个程序,让它根据输入的半径值求出圆面积,并打印。可以用运算符" * "求半径的平方。注意,不要用八进制或十六进制格式打印(它们只适用于整数类型)。

#include <iostream>
#include <cmath> // 包含M_PI的定义
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> // Stream declarations
#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); // Add the line to the end

  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());//创建一个和fvec1同样大小的vector
  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
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-10 10:40:43  更:2021-09-10 10:43:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 20:44:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码