《C++编程思想》(第二版)第2章 对象的创建和使用(习题及答案)

与习题相关的代码

Hello.cpp

<span style="font-size:18px;">#include <iostream>
using namespace std;

int main()
{
	 cout << "Hello, World! I am "
    << 8 << " Today!" << endl;
}</span>

Stream2.cpp

<span style="font-size:18px;">#include <iostream>
using namespace std;

int main()
{
	cout<<"a number in decimal:"
		<<dec<<15<<endl;
	cout<<"in octal:"<<oct<<15<<endl;
	cout<<"in hex:"<<hex<<15<<endl;
	cout<<"a floatint-point number:"
		<<3.14159<<endl;
	cout<<"non-printing char (escape):"
		<<char(27)<<endl;
	return 0;
}</span>
Nomconv.cpp
<span style="font-size:18px;">#include <iostream>
using namespace std;

int main()
{
	int number;
	cout<<"Enter a decimal number:";
	cin>>number;
	cout<<"value in octal = 0"
		<<oct<<number<<endl;
	cout<<"value in hex = 0x"
		<<hex<<number<<endl;
	return 0;
}</span>
Fillvector.cpp
<span style="font-size:18px;">#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 = 0;i < v.size();++i)
	{
		cout<<i<<":"<<v[i]<<endl;
	}
	return 0;
}</span>

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

<span style="font-size:18px;">#include <iostream>
using namespace std;

int main()
{
  cout << "Hello, World! I am ZY." << endl;
  cout << "I am 19 years:" << endl;
  return 0;
}</span>

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

#include <iostream>
using namespace std;

int main()
{
  const float pi = 3.141592654;
  cout << "Enter the radius: ";

  float radius;
  cin >> radius;
  cout << "The area is " << pi * radius * radius << endl;

  return 0;
}
2-3编一个程序用来打开文件并统计文件中以空格隔开的单词数目。
#include <string>
#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main()
{
  ifstream f("test.cpp");
  int nwords = 0;
  string word;

  while (f >> word)
  {
    ++nwords;
  }

  cout << "Number of words = " << nwords << endl;

  return 0;
}
2-4编一个程序统计文件中特定单词出现的次数(要求使用string类的运算符“==”来查找单词)。
#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main(int argc, char* argv[])
{
  // Process command-line arguments:
  if (argc < 3)
  {
    cerr << "usage: WordCount word file\n";
    return -1;
  }
  string word(argv[1]);
  ifstream file(argv[2]);

  // Count occurrences:
  long wcount = 0;
  string token;
  while (file >> token)
    if (word == token)
      ++wcount;

  // Print result:
  cout << '"' << word << "\" appeared "
       << wcount << " times\n";
} 
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);
  }

  // Print backwards:
  for(int i = v.size()-1; i > 0; --i)
  {
    cout << v.size()-1 << ": " << v[i] << endl;
  }
  return 0;
} 

方法二:

#include <string>
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

int main()
{
  vector<string> v;
  ifstream in("Fillvector.cpp"<span style="font-family: Arial, Helvetica, sans-serif;">);</span>
  string line;
  while(getline(in, line))
    v.push_back(line);

  // Print backwards:
  int nlines = v.size();
  for(int i = 0; i < nlines; i++)
  {
    int lineno = nlines-i-1;
    cout << lineno << ": " << v[lineno] << endl;
  }
  return 0;
} 
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);
  }
  // Put lines into a single string:
  string lines;
  for(int i = 0; i < v.size(); i++)
  {
    lines += v[i] + "\n";
  }
  cout << lines;
  return 0;
} 
2-7编一个程序,一次显示文件的一行,然后,等待用户按回车键后显示下一行。
#include <string>
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
  ifstream in("test.cpp");
  string line;
  while(getline(in, line))
  {
    cout << line;  // No endl!
    cin.get();
  }

  return 0;
}

2-8创建一个vector<float>,并用一个for循环语句向它输入25个浮点数,显示vector的结果。
#include <iostream>
#include <vector>
using namespace std;

int main()
{
  // Fill vector:
  vector<float> v;
  for (int i = 0; i < 25; ++i)
  {
    v.push_back(i + 0.5);
  }

  // Display
  for (int i = 0; i < v.size(); ++i)
  {
	  cout << v[i]<<" ";
  }
  cout << endl;

  return 0;
}
2-9创建三个vector<float>对象,与第八题一样填写前两个对象。编一个for循环,把前两个vector的每一个对应的元素相加起来,结果放入第三个vector的相应元素中。显示这三个vector的结果。
方法一:
#include <iostream>
#include <vector>
using namespace std;

int main()
{
  vector<float> v1, v2;
  for (int i = 0; i < 25; ++i)
  {
    v1.push_back(i);
    v2.push_back(i + 0.2);
  }

  // Form sum:
  vector<float> v3;
  for (int i = 0; i < v1.size(); ++i)
  {
    v3.push_back(v1[i] + v2[i]);
  }

  // Display:
  for (int i = 0; i < v1.size(); ++i)
  {
    cout << v1[i] << " + " << v2[i]
         << " = " << v3[i] << endl;
  }

  return 0;
}

方法二:

#include <iostream>
#include <vector>
using namespace std;

int main()
{
  vector<float> v1, v2;
  for (int i = 0; i < 25; ++i)
  {
    v1.push_back(i);
    v2.push_back(i + 0.2);
  }

  // Form sum:
  vector<float> v3;
  v3.resize(v1.size());  // pre-allocate space
  for (int i = 0; i < v1.size(); ++i)
  {
    v3[i] = v1[i] + v2[i];
  }

  // Display:
  for (int i = 0; i < v1.size(); ++i)
  {
    cout << v1[i] << " + " << v2[i]
         << " = " << v3[i] << endl;
  }

  return 0;
}
2-10编一个程序,创建一个vector<float>,像前面的练习那样输入25个数。求每个数的平方,并把它们放入vector的同样位置。显示运算前后的vector。
#include <iostream>
#include <vector>
using namespace std;

int main()
{
  // Fill and print:
  vector<float> v;
  for (int i = 0; i < 25; ++i)
  {
    v.push_back(i);
  }
  for (int i = 0; i < v.size(); ++i)
  {
    cout << v[i]<<" ";
  }
  cout<<endl;
  // Square and print:
  for (int i = 0; i < v.size(); ++i)
  {
    v[i] = v[i] * v[i];
  }
  for (int i = 0; i < v.size(); ++i)
  {
    cout << v[i]<<" ";
  }
  cout<<endl;

  return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2025-01-14 20:01:02

《C++编程思想》(第二版)第2章 对象的创建和使用(习题及答案)的相关文章

《Python核心编程》第二版第五章答案

5-1.整型.讲讲Python普通整型和长整型的区别. Python的标准整形类型是最通用的数字类型.在大多数32位机器上,标准整形类型的取值范围是-2**32-2**32 - 1. Python的长整型类型能表达的数值仅仅与你的机器支持的(虚拟)内存大小有关,换句话说,Python能轻松表达很大的整数. 长整型类型是标准整形类型的超集,当程序需要使用比标准整形更大的整型时,可以使用长整型类型,在整型值后面添加L,表示这个为长整型,这两种整形类型正在逐渐统一为 一种. 5-2.操作符.(a)写一

C++学习书籍推荐《C++编程思想第二版第一卷》下载

百度云及其他网盘下载地址:点我 编辑推荐 "经典原版书库"是响应教育部提出的使用原版国外教材的号召,为国内高校的计算机教学度身订造的.<C++编程思想>(英文版第2版)是书库中的一本,在广泛地征求并听取丛书的"专家指导委员会"的意见后,我们最终选定了这30多种篇幅内容适度.讲解鞭辟入里的教材,其中的大部分已经被M.I.T..Stanford.U.C.Berkley.C.M.U.等世界名牌大学采用. 作者简介 作者:(美国)埃克尔 目录 Preface1:

C++学习书籍推荐《C++编程思想第二版第二卷》下载

百度云及其他网盘下载地址:点我 编辑推荐 "经典原版书库"是响应教育部提出的使用原版国外教材的号召,为国内高校的计算机教学度身订造的.<C++编程思想>(英文版第2版)是书库中的一本,在广泛地征求并听取丛书的"专家指导委员会"的意见后,我们最终选定了这30多种篇幅内容适度.讲解鞭辟入里的教材,其中的大部分已经被M.I.T..Stanford.U.C.Berkley.C.M.U.等世界名牌大学采用. 作者简介 作者:(美国)埃克尔 目录 Preface1:

[Java编程思想-学习笔记]第1章 对象导论

1.1  抽象过程 Java是一门面向对象的语言,它的一个优点在于只针对待解问题抽象,而不用为具体的计算机结构而烦心,这使得Java有完美的移植性,也即Java的口号"Write Once, Run Anywhere". 所谓的抽象过程,可以理解为对待解问题建模.比如待解问题是一个人,那么我们可以对人进行建模,它的类型是人,有属性姓名.性别.年龄,还有行为吃饭.走路.Java能直接完全据此建模编码,而无需考虑具体的计算机结构.所以当我们阅读Java程序时,正如书上说的"当你在

Python核心编程(第二版) 第六章习题答案

6–1.字符串.string 模块中是否有一种字符串方法或者函数可以帮我鉴定一下一个字符串是否是另一个大字符串的一部分? 答:有,string.find(str,beg,end) 6–2.字符串标识符.修改例 6-1 的 idcheck.py 脚本,使之可以检测长度为一的标识符,并且可以识别 Python 关键字,对后一个要求,你可以使用 keyword 模块(特别是 keyword.kelist)来帮你. 1 #!/usr/bin/python 2 3 import string 4 impo

Python核心编程(第二版) 第四章习题答案

4-1.Python对象.与所有Python对象有关的三个属性是什么?请简单的描述一下.答:与所有Python对象有关的三个属性是身份.类型.值.身份:每一个对象都有一个唯一的身份标识自己,任何对象的身份可以使用内建函数id()来得到.这个值可以被认为是该对象的内存地址.类型:对象的类型决定了该对象可以保存什么类型的值,可以进行什么样的操作,以及遵循什么规则.可以用内建函数type()来查看Python的类型.值:对象表示的数据项.4-2.类型.不可更改(immutable)指的是什么?Pyth

Python核心编程(第二版) 第五章习题答案

5-1.整型.讲讲Python普通整型和长整型的区别. 答:Python 的标准整数类型是最通用的数字类型.在大多数 32 位机器上,标准整数类型的取值范围是-2**31到 2**31-1,也就是-2,147,483,648 到 2,147,483,647.如果在 64 位机器上使用 64 位编译器编译 Python,那么在这个系统上的整数将是 64 位. Python 的长整数类型能表达的数值仅仅与你的机器支持的(虚拟)内存大小有关. 5-2.操作符.(a)写一个函数,计算并返回两个数的乘积.

Python核心编程(第二版) 第二章习题答案 未完待续

2-2.程序输出.阅读下面的Python脚本.#!/usr/bin/env python1 + 2 * 4(a)你认为这段脚本是用来做什么的?(b)你认为这段脚本会输出什么?(c)输入以上代码,并保存为脚本,然后运行它,它所做的与你的预期一样吗?为什么一样/不一样?(d)这段代码单独执行和在交互解释器中执行有何不同?试一下,然后写出结果.(e)如何改进这个脚本,以便它能和你想象的一样工作?答:(a)这段脚本是用来计算表达式的值(b)脚本会输出9(c)保存为脚本,运行后没有输出.和自己预期不一样.

Python核心编程(第二版)勘误

最近在网上买了本Python核心编程(第二版)中文版,刚看了几章,上机练习了几个程序,发现印刷有问题,不知道是什么原因.网上搜索了一番,发现其他网友也有发现类似问题.这里把我遇到的有问题的程序贴出来,以记录自己学习的过程. 第52页程序范例makeTextFile.py #!/usr/bin/python 'makeTextFile.py -- create text file' import os ls = os.linesep # get filename while True:     f

java编程思想第4、5章细节总结

和上次的一样,只是总结下看这本书学习到的新观点或者重点,简单并且提高效率. 第四章   控制执行流程 1.java中不允许一个数字当做布尔值来使用,而在C或者C++中可以 2.java中唯一用到逗号的地方就是for循环的控制表达式 3.for循环可以定义多个变量,但是这些变量必须要有相投的类型 4.要熟练使用for--each循环 5.break退出整个循环,continue退出当前循环 6.switch的case后面一定要跟上break'语句(有一次出bug就是因为粗心没有加上break) 第