【习题 2.11】
编写程序,要求用户输入两个数——底数( base)和指数( exponent),输出底数的指数次方的结果。

#include <iostream>
#include <math.h>
#include <string>
using namespace std;
int main( )
{int base, exp;long result=1;cout<<"请输入底数和指数:"<<endl;cin>>base>>exp;if(exp<0) {cout<<"指数不能为负数!"<<endl;return -1;}for(int i=1; i <= exp; i++)result *= base;cout<<base<<"的"<<exp<<"次方为"<<result<<endl;system("PAUSE");return 0;
}

【习题 3.7】
编一个程序读入两个 string 对象,测试它们是否相等。若不相等,则指出两个中哪个较大。接着,改写程序测试它们的长度是否相等,若不相等,则指出两个中哪个较长。

#include <iostream>
#include <string>
using namespace std;
int main( )
{string str1, str2;cin>>str1>>str2;if(str1 == str2)cout<<"str1与str2相等"<<endl;elsecout<<"str1与str2不相等"<<endl;system("PAUSE");return 0;
}

【习题 3.8】

编一个程序,从标准输入读取多个 string 对象,把它们连接起来存放到一个更大的 string 对象中。并输出连接后的 string 对象。接着,改写程序,将连接后相邻 string 对象以空格隔开。

#include <iostream>
#include <string>
using namespace std;
int main( )
{string str, ss;cout<<"请输入字符串:\n";while(cin>>str)ss = ss + str;cout<<"连接后的字符串为:"<<ss<<endl;system("PAUSE");return 0;
}

改写后的程序:

#include <iostream>
#include <string>
using namespace std;
int main( )
{string str, ss;cout<<"请输入字符串:\n";while(cin>>str)ss= ss + ' ' + str;cout<<"连接后的字符串为:"<<ss<<endl;system("PAUSE");return 0;
}

【习题 3.10】

编一个程序,从 string 对象中去掉标点符号。要求输入到程序的字符串必须含 有标点符号,输出结果则是去掉标点符号后的 string 对象。

#include <iostream>
#include <string>
#include <cctype>
using namespace std;
int main( )
{string str, ss;cout<<"请输入字符串:\n";getline(cin, str);for(string::size_type i=0; i!=str.size(); ++i) {if(!ispunct(str[i]))ss+=str[i];}cout<<"连接后的字符串为:"<<ss<<endl;system("PAUSE");return 0;
}

【习题 3.13】

读一组整数到 vector 对象,计算并输出每对相邻元素的和。如果读入元素个数为奇数,则提示用户最后一个元素没有求和,并输出其值。

#include <iostream>
#include <string>
#include <vector>
using namespace std;int main( )
{vector<int> vec;int n;while(cin>>n)vec.push_back(n);if(!vec.size()) {cout<<"没有数字!"<<endl;return -1;}for(vector<int>::size_type i=0; i<vec.size()-1; i+=2) {cout<<vec[i]+vec[i+1]<<"\t";if((i+1)%6==0) cout<<endl;}if(vec.size()%2!=0)cout<<endl<<"最后一个数是:"<<vec[vec.size()-1]<<endl;system("PAUSE");return 0;
}

【习题 3.14】
读入一段文本到 vector 对象,每个单词存储为 vector 中的一个元素。把 vector 对象中每个单词转化为大写字母。输出 vector 对象中转化后的元素, 每八个单词为一行输出。

#include <iostream>
#include <cctype>
#include <string>
#include <vector>
using namespace std;
void replace(string &s)  //将字符串中的所有的小写字符全部转化为大写
{for(int i=0; i<s.length(); ++i) {if(islower(s[i]))s[i]=toupper(s[i]);}
}
int main( )
{int n;string str;vector<string> vec;n=1;cout<<"请输入一段文本:\n";while(cin>>str)vec.push_back(str);for(vector<string>::iterator i=vec.begin(); i!=vec.end(); ++i) {replace(*i);cout<<(*i);if(n%8==0)cout<<endl;elsecout<<" ";n++;}system("PAUSE");return 0;
}

【习题 3.18】

编写程序来创建有 10 个元素的 vector 对象。用迭代器把每个元素值改为当前 值的 2 倍,输出 vector 的所有元素。

#include <iostream>
#include <vector>
using namespace std;
int main( )
{vector<int> vec(10,2);for(vector<int>::iterator it=vec.begin(); it!=vec.end(); it++) {*it=(*it)*2;cout<<(*it)<<" ";}cout<<endl;system("PAUSE");return 0;
}

C++primer习题--第3章相关推荐

  1. C++Primer 习题 第7章

    C++Primer 习题 第7章 Person.h#ifndef PERSON_H #define PERSON_H #include<iostream> #include<stri ...

  2. C++primer习题--第1章

    本文地址:http://www.cnblogs.com/archimedes/p/cpp-primer-chapter1-ans.html,转载请注明源地址. [习题 1.3] 编一个程序,在标准输出 ...

  3. 《C++ Primer》第14章 14.3节习题答案

    <C++ Primer>第14章 操作重载与类型转换 14.3节  算术和关系运算符  习题答案 练习14.13:你认为Sales_data类还应该支持哪些其他算术运算符(参见表4.1,第 ...

  4. 《C++ Primer》第9章 9.3节习题答案

    <C++ Primer>第9章 顺序容器 9.3节顺序容器操作习题答案 练习9.18:编写程序,从标准输入读取string序列,存入一个deque中.编写一个循环,用迭代器打印deque中 ...

  5. 《C++ Primer》第15章 15.4节习题答案

    <C++ Primer>第15章 面向对象程序设计 15.4节 抽象基类 习题答案 练习15.15:定义你自己的Disc_quote和Bulk_quote. [出题思路]本题练习实现不同折 ...

  6. 《C++ Primer》第15章 15.2节习题答案

    <C++ Primer>第15章 面向对象程序设计 本章介绍了面向对象程序设计的两个重要概念:继承和动态绑定,包括: □●继承.基类.派生类的基本概念. □●虚函数和虚基类. □●继承中的 ...

  7. 《C++ Primer》第13章 13.5节习题答案

    <C++ Primer>第13章 拷贝控制 13.5节 动态内存管理类 习题答案 练习13.39:编写你自己版本的StrVec,包括自己版本的reserve.capacity(参见9.4节 ...

  8. 《C++ Primer》第12章 12.3节习题答案

    <C++ Primer>第12章 动态内存 12.3节使用标准库:文本查询程序 习题答案 练习12.27:TextQuery和QueryResult类只使用了我们已经介绍过的语言和标准库特 ...

  9. 《C++ Primer》第5章 5.2节习题答案

    <C++ Primer>第5章 语句 5.2节 语句作用域 练习5.4:说明下列例子的含义,如果存在问题,试着修改它. (a)while(string::iterator iter != ...

最新文章

  1. 在线分析|在线做随机森林分析
  2. 胡阳:汗水铺就代码之路,三分天注定,七分靠打拼
  3. 前沿科技 | 中科院科学家研究揭示奥陶纪末生命大灭绝新机制
  4. python 使用raise语句主动抛出异常(Exception)、将异常抛出给上一级
  5. AHOI(十二省联考)2019 退役记
  6. Tomcat 的类加载机制
  7. 经过阿里,百度一面,二面后,我总结了150道iOS面试题
  8. How to custom RedHat DVD
  9. martin fowler_用Java和Java 8创建内部DSL,采用Martin Fowler的方法
  10. 卷积神经网络的几种典型架构
  11. 服务器webpack构建性能,webpack性能优化——构建效率(一)
  12. (原创)Lottie动画使用介绍
  13. WINDOWS渗透与提权总结(2)
  14. java 三维旋转立方体_java - 如何通过旋转来计算立方体的所有方向,而不重复方向? - SO中文参考 - www.soinside.com...
  15. IOS APP 测试方法和测试工具大揭秘
  16. Linux下升级jdk版本
  17. Python工资一般多少?
  18. BREAKING CHANGE: webpack < 5 used to include polyfills
  19. 在LINUX中怎样用FIDISK分区,fdisk分区命令详解与fdisk非交互式分区
  20. 从零开始学五线谱_初学者福利 | 学音乐,从五线谱开始

热门文章

  1. oracle asm 分布式存储,分布式数据中心数据库和存储部署解决方案
  2. js简易计算机代码if语句,简单学习下JS里的if语句的写法
  3. linux nifi指定jdk,nifi在arm架构启动不了,怎么办?
  4. python图像人类检测_OpenCV人类行为识别(3D卷积神经网络)
  5. 计算机进制简称,NO.A.0007——二进制;计算机容量单位B、KB、MB、GB和TB关系
  6. c从oracle到mysql移植_数据库从oracle移植到mysql时需要进行的修改
  7. oracle导出中文utf8乱码,ORACLE导入导出后发生中文乱码的原因及解决办法
  8. mysql2008怎么重装_SQL Server2005、2008如何彻底删除卸载并重新安装?
  9. android 界面长按,Android 主界面长按创建快捷方式
  10. java 外螺旋矩阵_螺旋矩阵的java实现