C++编程思想第二章练习答案

《c++编程思想第1卷》第3章练习题答案 3-1 建立一个头文件(扩展名为’.h’)。在该文件中,声明一组函数,具有可变参数,返回值包括void、char、int和float类型。建立一个包含上述头文件的.cpp文件,创建所有这些函数的定义。每个定义应该简单地输出函数名,参数列表,并返回类型以便知道它已经被调用。创建另外一个.cpp文件,它包含头文件且定义int main(),在其中调用已经定义的所有函数。编译和运行这个程序。 创建头文件3-1.h: #define FUNC(type) type type##Func() #define CALL 阅读详情

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

修改前的Hello.cpp

#include <iostream>
using namespace std;

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

输出结果为:
[root@localhost tttt]# g++ hello.cpp -o hello
[root@localhost tttt]# ./hello
Hello, World! I am 8 Today!

>

修改后的Hello.cpp如下:

#include <iostream>
using namespace std;

int main()
{
    cout<<"Hello, World! I am "<< 8 <<" Today!"<<endl;
    cout<<"My name is "<<"C++"<<" , and i am "<<21<<" years old!"<<endl;
}

输出结果如下:
[root@localhost tttt]# ./hello
Hello, World! I am 8 Today!
My name is C++ , and i am 21 years old!

>
这里写图片描述

原程序如下:

#include <iostream>
using namespace std;

int main()
{
    int r;

    cout<<"请输入半径的大小 r = ";
    cin>>r;
    double s = 3.14 *r * r;
    cout<<"圆的面积为 S = "<<s<<endl;
}

执行结果为:
[root@localhost tttt]# ./hello
请输入半径的大小 r = 4
圆的面积为 S = 50.24

这里写图片描述

原程序如下:

#include <string>
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    ifstream in("hello.cpp");
    string word;
    int n = 0;
    while(in >> word){
        cout << word << " " << endl;
        n++;
    }
    cout << "以空格隔开的单词数目是: " << n << endl;
    return 0;
}

运行结果如下:

这里写图片描述

这里写图片描述

源程序如下:

#include <string>
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    ifstream in("hello.cpp");
    string word = "<<";
    string s;
    int num = 0;

    while(in >> s){
        if(s == word){
            num++;
        }
    }
    cout << word << "出现的次数为:" << num << endl;
    return 0;
}

运行结果如下:
[root@localhost tttt]# g++ num.cpp -o num
[root@localhost tttt]# ./num
<<出现的次数为:4
[root@localhost tttt]#

这里写图片描述

源代码如下:

#include <iostream>
#include <fstream>
#include <string>
#include <vector>

using namespace std;

int main()
{
    vector<string> v;
    ifstream in("filevector.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;
    }
}

运行结果如下:
[root@localhost tttt]# g++ filevector.cpp -o filevector
[root@localhost tttt]# ./filevector
19: }
18: }
17: cout << i << “: ” << v[i] << endl;
16: for(int i = v.size() - 1; i >= 0; –i){
15: }
14: v.push_back(line);
13: while(getline(in, line)){
12:
11: string line;
10: ifstream in(“filevector.cpp”);
9: vector v;
8: {
7: int main()
6:
5: using namespace std;
4:
3: #include
2: #include
1: #include
0: #include
[root@localhost tttt]#

这里写图片描述

源代码如下:

#include <iostream>
#include <fstream>
#include <string>
#include <vector>

using namespace std;

int main()
{
    vector<string> v;
    ifstream in("filevector.cpp");
    string line;

    while(getline(in, line)){
        v.push_back(line);
    }
    for(int i = 0; i < v.size(); i++){
        cout << v[i];
    }
    cout << endl;
}

运行结果如下:
[root@localhost tttt]# ./filevector
》#include #include#include #include using namespace std;int main(){ vector v; ifstream in(“filevector.cpp”); string line; while(getline(in, line)){ v.push_back(line); } for(int i = 0; i < v.size(); i++){ cout << v[i]; } cout << endl;}
[root@localhost tttt]#

这里写图片描述

源代码如下:

#include <iostream>
#include <fstream>
#include <string>
#include <vector>

using namespace std;

int main()
{
    vector<string> v;
    ifstream in("filevector.cpp");
    string line;

    while(getline(in, line)){
        cout << line;
        cin.get();
    }
    return 0;
}

运行结果如下:
这里写图片描述

这里写图片描述

源代码如下:

#include <iostream>
#include <vector>

using namespace std;

int main()
{
    vector<float> v;

    for(int i = 0; i < 25; ++i){
        v.push_back(i + i * 0.23);
    }

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

运行结果如下:
[root@localhost tttt]# ./vectorfloat
0, 1.23, 2.46, 3.69, 4.92, 6.15, 7.38, 8.61, 9.84, 11.07, 12.3, 13.53, 14.76, 15.99, 17.22, 18.45, 19.68, 20.91, 22.14, 23.37, 24.6, 25.83, 27.06, 28.29, 29.52,
[root@localhost tttt]#

这里写图片描述

源代码如下:

#include <vector>

using namespace std;

int main()
{
    vector<float> v1;
    vector<float> v2;
    vector<float> v3;

    for(int i = 0; i < 25; ++i){
        v1.push_back(i + i * 0.23);
    }
    for(int i = 0; i < 25; ++i){
        v2.push_back(i + i * 0.2);
    }

    for(int i = 0; i < v1.size(); ++i){
        v3.push_back(v1[i] + v2[i]);
    }

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

运行结果如下:
[root@localhost tttt]# g++ vectorfloat.cpp -o vectorfloat
[root@localhost tttt]# ./vectorfloat
0 = 0 + 0
2.43 = 1.23 + 1.2
4.86 = 2.46 + 2.4
7.29 = 3.69 + 3.6
9.72 = 4.92 + 4.8
12.15 = 6.15 + 6
14.58 = 7.38 + 7.2
17.01 = 8.61 + 8.4
19.44 = 9.84 + 9.6
21.87 = 11.07 + 10.8
24.3 = 12.3 + 12
26.73 = 13.53 + 13.2
29.16 = 14.76 + 14.4
31.59 = 15.99 + 15.6
34.02 = 17.22 + 16.8
36.45 = 18.45 + 18
38.88 = 19.68 + 19.2
41.31 = 20.91 + 20.4
43.74 = 22.14 + 21.6
46.17 = 23.37 + 22.8
48.6 = 24.6 + 24
51.03 = 25.83 + 25.2
53.46 = 27.06 + 26.4
55.89 = 28.29 + 27.6
58.32 = 29.52 + 28.8

这里写图片描述

源代码如下:

#include <iostream>
#include <vector>

using namespace std;

int main()
{
    vector<float> v;

    for(int i = 0; i < 25; ++i){
        v.push_back(i + i * 0.2);
    }

    cout << "before change!" << endl;
    for(int i = 0; i < v.size(); ++i){
        cout << v[i] << ", ";
    }
    cout << endl;

    for(int i = 0; i < v.size(); ++i){
        v[i] *= v[i];
    }

    cout << "after change!" << endl;
    for(int i = 0; i < v.size(); ++i){
        cout << v[i] << ", ";
    }
    cout << endl;
}

运行结果如下:
[root@localhost tttt]# g++ floatvector.cpp -o floatvector
[root@localhost tttt]# ./floatvector
before change!
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,
after change!
0, 1.44, 5.76, 12.96, 23.04, 36, 51.84, 70.56, 92.16, 116.64, 144, 174.24, 207.36, 243.36, 282.24, 324, 368.64, 416.16, 466.56, 519.84, 576, 635.04, 696.96, 761.76, 829.44,
[root@localhost tttt]#

《c++编程思想第1卷》第2章练习题答案 2-1 修改Hello.cpp,使它能打印你的名字和年龄(或者你的鞋码、爱犬的年龄等,只要你喜欢)。编译并运行修改后的程序。 #include <iostream> // Stream declarations using namespace std; int main() { cout << "我的名字叫夏商周,年龄不到" << 100 << "岁啊!" << endl; } 输出: 我的名字叫夏商周,年龄不到100岁啊! 阅读详情

相关推荐

C++编程思想课后习题及实践指南

C++编程语言自从1979年由Bjarne Stroustrup在贝尔实验室创建以来,已经成为全球最受欢迎和广泛使用的编程语言之一。它以其高性能、通用性和灵活性而著称,支撑着从操作系统到游戏开发,从嵌入式系统到企业级应用的广泛领域。函数模板是泛型编程的基础,它们允许程序员定义操作各种数据类型的函数。在C++中,函数模板通过使用类型参数定义。下面是一个简单的函数模板例子:a : b;上述代码中,typename T是一个模板参数,它将在函数调用时被实际类型替换。

weixin_35238815的博客 402

第十二组题解

A #include<iostream> using namespace std; int main() { long long a,b,p,res=1; scanf("%ld%ld%ld",&a,&b,&p); while(b) { if(b&1) res=res*a%p; b>>=1;//b右移了一位后,a也需要更新 a=a*a%p; } printf

温柔风的博客 943

C++编程思想课后习题答案(两卷)

C++编程思想课后习题答案,包含卷一、卷二的

C++ 编程思想 第一卷课后练习题

2-3 编写一个程序用来打开文件并统计文件中以空格隔开的单词数目。  ifstream f2("D:\\test.txt"); if(!f2) return 1; int wordsNumber = 0 ; char c ; bool spaceRepeat = false ; while((c = f2.get()) != EOF) { cout << c ; if(c == '

愤怒的小丑 1165

《 C++编程思想》(第二版)练习题答案

《 C++编程思想》(第二版)练习题答案

C++编程思想(第2版 第2卷)

C++编程思想 第二版 第二卷 中文 本书介绍C++实用的编程技术和最佳的实践方法,深入探究了异常处理方法和异常安全设计;介绍C++的字符串、输入输出流、STL算法、容器和模板的现代用法,包括模板元编程;解释多重继承问题的难点,展示RTTI的实际使用,描述了典型的设计模式及其实现,特别介绍被认为是标准C++下一版特征之一的多线程处理编程技术,并提供了最新的研究成果。本书适合作为高等院校计算机及相关专业的本科生、研究生的教材,也可供从事软件开发的研究人员和科技工作者参考   出版者的话   专家指导委员会   译者序   前言   第一部分 建立稳定的系统   第1章 异常处理    1.1 传统的错误处理    1.2 抛出异常    1.3 捕获异常    1.3.1 try块    1.3.2 异常处理器    1.3.3 终止和恢复    1.4 异常匹配    1.4.1 捕获所有异常    1.4.2 重新抛出异常    1.4.3 不捕获异常    1.5 清理    1.5.1 资源管理    1.5.2 使所有事物都成为对象    1.5.3 auto_ptr    1.5.4 函数级的try块    1.6 标准异常    1.7 异常规格说明    1.7.1 更好的异常规格说明    1.7.2 异常规格说明和继承    1.7.3 什么时候不使用异常规格说明    1.8 异常安全    1.9 在编程中使用异常    1.9.1 什么时候避免异常    1.9.2 异常的典型应用    1.10 使用异常造成的开销    1.11 小结    1.12 练习    第2章 防御性编程    2.1 断言    2.2 一个简单的单元测试框架    2.2.1 自动测试    2.2.2 TestSuite框架    2.2.3 测试套件    2.2.4 测试框架的源代码    2.3 调试技术    2.3.1 用于代码跟踪的宏    2.3.2 跟踪文件    2.3.3 发现内存泄漏    2.4 小结    2.5 练习    第二部分 标准C++库   第3章 深入理解字符串    3.1 字符串的内部是什么    3.2 创建并初始化C++字符串    3.3 对字符串进行操作    3.3.1 追加、插入和连接字符串    3.3.2 替换字符串中的字符    3.3.3 使用非成员重载运算符连接    3.4 字符串的查找    3.4.1 反向查找    3.4.2 查找一组字符第1次或最后一次出现的位置    3.4.3 从字符串中删除字符    3.4.4 字符串的比较    3.4.5 字符串和字符的特性    3.5 字符串的应用    3.6 小结    3.7 练习    第4章 输入输出流    4.1 为什么引入输入输出流    4.2 救助输入输出流    4.2.1 插入符和提取符    4.2.2 通常用法    4.2.3 按行输入    4.3 处理流错误    4.4 文件输入输出流    4.4.1 一个文件处理的例子    4.4.2 打开模式    4.5 输入输出流缓冲    4.6 在输入输出流中定位    4.7 字符串输入输出流    4.7.1 输入字符串流    4.7.2 输出字符串流    4.8 输出流的格式化    4.8.1 格式化标志    4.8.2 格式化域    4.8.3 宽度、填充和精度设置    4.8.4 一个完整的例子    4.9 操纵算子    4.9.1 带参数的操纵算子    4.9.2 创建操纵算子    4.9.3 效用算子    4.10 输入输出流程序举例    4.10.1 维护类库的源代码    4.10.2 检测编译器错误    4.10.3 一个简单的数据记录器    4.11 国际化    4.11.1 宽字符流    4.11.2 区域性字符流    4.12 小结    4.13 练习    第5章 深入理解模板    第6章 通用算法    第7章 通用容器    第三部分 专题   第8章 运行时类型识别    第9章 多重继承    第10章 设计模式    第11章 并发    附录   附录A 推荐读物    附录B 其他    索引

java编程思想第二章答案,java编程思想 第二章笔记

java编程思想 第二章笔记1.1 用引用操作的对象java中的一切被视为对象,但是我们操纵的标识符实际上是对象的一个引用(reference)。所拥有的引用并不一定和一个对象关联起来:String s; //这里只创建了引用,没有对象String t="asdf"; //没有指向的引用是不安全的,所以创建时便进行初始化作者在开始时认为,java的引用,在语法上更接近C++的引用而不是指针,并且用...

weixin_33458169的博客 231

C++编程思想课后习题答案全

C++编程思想课后习题答案全 下载自配套网站

C++编程思想第二章课后答案

2.2 //:S02:Area.cpp #include using namespace std; int main() { const float pi=3.141592654; float radius; cout<<"Enter the radius: "; cin>>radius; cout<<"The area is "<<pi * radius * radius<<en

huahuahailang的专栏 1666

C++编程思想课后编程答案

C++编程思想是C++编程者进阶的必读书籍,其内容注重于软件设计和架构思想而非仅仅停留在编程语法方面。这个课后习题的编程答案能够对学习者有很好的辅助作用,良心推荐请放心下载。

C++编程思想第二版第二卷

C++编程思想第二版第二卷.学习C++不可多得的好书.

C++编程思想 第二章C++中的C

3.1创建函数        C和C++在声明函数时候的区别   fun();        返回值  在c中默认返回值是int 型。 3.2执行控制语句       for(initialization;conditional;step)         先初始化  ,在判断条件,符合条件执行语句,然后步长自加。       do       while(); 先执行在判断,

damon1118的专栏 1930

安装Anaconda和Labelme的教程

1 登录Anaconda官网,选择Download https://www.anaconda.com/distribution/ 2 选择你想下载的Python版本,选择你的操作系统和位数,然后点击Download按钮就开始下载了 3 开始安装 下面两个框框都勾选 点击next,等待安装成功 打开Anaconda Navigator 点击红色圈圈的按钮 在cmd中输入 (1)创建虚拟环境 conda create -n labelme python=3.6 (2)激活虚拟环境 conda activa

qq_42178122的博客 3808

《C++编程思想》第二章 数 据 抽 象(原书代码+习题+答案)

相关代码如下: 1. /*声明与定义的区别*/ #include using namespace std; extern int i;//声明 extern float f(float);//声明 float b;//定义+声明 float f(float a)//定义 { return a + 1.0; } int i;//定义 int h(int x)//定义+声明 { r

罗小黑の窝 1212

电力现货交易市场-报价方式

电是一种能源,也是一种商品,既然是商品自然可以在市场中进行自由交易。

qq_38225433的博客 5117

matlab tolx,Nelder-Mead算法matlab

Nelder-Mead算法适合变量数不是很多的方程求极值.原理:Nelder-Mead法是利用多面体来逐步逼近最佳点x*.设函数变量为n维,则在n维空间里多面体有(n+1)个顶点.设x1,x2,...,xn+1为多面体的顶点,且满足:f(x1)<=f(x2)<=...<=f(xn+1)Nelder-Mead法试着将多面体中最差的顶点xn+1(也就是函数的最大点)以新的最佳点替代,...

weixin_36485298的博客 1480

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

与习题相关的代码 Hello.cpp #include using namespace std; int main() { cout << "Hello, World! I am " << 8 << " Today!" << endl; }Stream2.cpp #include using namespace std; int main() { cout<<

罗小黑の窝 1307

用Origin快速拟合荧光寿命、PL Decay (TRPL)数据分析处理

用Origin快速拟合荧光寿命、PL Decay (TRPL)数据分析处理

A20802013的博客 2万+

C++编程思想 第二章习题2_2

C++ Code  1 2 3 4 5 6 7 8 9 10 11 12 #include #include using namespace std; const double PI = 3.1415926;  void main(void) {     int r;     std::cout"Please inpu

damon1118的专栏 915

结构光相移法-多频外差原理与实践

结构光相移法是一种常用的三维形貌测量技术,它通过对投射到目标物体上的结构光进行相位调制和解调,实现对物体表面的三维重建。其中,多频外差原理是结构光相移法的核心原理之一,通过使用不同频率的结构光来实现相位测量,并可以提高测量精度和抗干扰性能。结构光相移法的多频外差原理是一种常用的三维形貌测量技术,它通过使用多个不同频率的结构光进行相位调制和解调,实现对物体表面的三维重建。本文介绍了多频外差原理的原理和实践应用,并提供了相应的Python源代码,希望对读者理解和应用结构光相移法有所帮助。

CodeByte的博客 737

鲁棒控制理论 --- H∞ 控制(被裁篇)

鲁棒控制理论 --- H∞ 控制

记录老板的每次pua,分享领导每天的毒鸡汤... 6万+

2.类与对象-上【由浅入深-C++】

由于c++的类与对象较为繁琐复杂,本文介绍类与对象部分的相关内容。

插花弄玉的博客 1034

【Unity小游戏】整整一个周末写一款《皇室战争 玩法》 的 即时战斗类 游戏Demo。两万多字游戏制作过程+解析

Unity游戏制作,本篇文章介绍了复刻皇室战争玩法的一个自制小游戏,共有该游戏的两万字教程加制作过程,欢迎品尝! 世界上没有绝对的公平,如果我们起点就比别人第一步,那就更需要比别人努力了。

努力前行,总会成为自己心中的那道光 12万+

软考中级习题与解答——第二章_程序语言与语言处理程序(1)

为了更好地理解这个题目,我们来总结一下几种主要的编程范式。编程范式(Programming Paradigm)是看待和构建计算机程序的一种风格或方式。编程范式核心思想主要特征代表语言过程式编程 (Procedural)将程序看作是一系列要执行的计算步骤或过程。- 以过程(函数)为基本组织单位。<br>- 强调算法和指令的顺序。<br>- 数据和操作数据的函数是分离的。<br>- 大量使用可变状态(变量)。面向对象编程 (Object-Oriented)将程序看作是相互协作的“对象”的集合。封装。

tybAly的博客 908

宇树 Qmini 双足机器人完全开源:3D打印+5小时组装,新手也能玩转!

教育教学,成为学校里的竞赛竞技,实验课程,论文设计的本体;开发者可以根据开源资料轻松集齐所有零部件,结构件可全部通过3D打印完成(几乎完全不需要任何机加工零部件),搭配宇树的高可靠性电机和标准电池,客户打印完零部件后,大概仅需要3~5小时的手工组装即可得到一只可爱的Qmini小双足机器人本体。一起推动机器人的未来发展,创新没有边界,创造力是无限的,Qmini就是你的第一步,如果你也想做一个能动、能学、还能萌的小双足机器人,现在就可以动手了,全开源、真低门槛、只差你的3D打印机和一点点耐心。

雕爷学编程 1889

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

数据结构和算法liuyubobo_C++,java算法与数据结构-某课网价值166元实战教程

C++,java算法与数据结构任何时候学习算法都不晚,而且越早越好,这么多年,你听说过技术过时,什么时候听说过算法过时,不仅没有过时,因为机器学习、大数据的要求,算法变得越来越重要了20170908091104.jpg (25.15 KB, 下载次数: 33)2017-10-3 20:30 上传现在开始,补足算法知识适合具备以下技术储备要求的所有对算法感兴趣的在校学生或已工作的开发人员,如果你想在...

weixin_39872191的博客 1771

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

上一篇: 堆和栈的区别
下一篇: C++继承的相关概念
lm_123_456
博客等级 码龄11年 35粉丝 86原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值