随笔分类 -  C++程序答案

c++头文件
摘要:#include //STL 通用算法#include //STL 位集容器#include #include #include #include #include //复数类#include #include #include #include #include //STL 双端队列容器#include //异常处理类#include #include //STL 定义运算函数(代替运算符)#include #include //STL 线性列表容器#include //STL 映射容器#include #include //基本输入/输出支持#include //输入/输出系统使用的前置声 阅读全文
posted @ 2011-02-26 15:53 飘浮的旋律 阅读(138) 评论(0) 推荐(0)
容器和迭代器
摘要:容器的出现是为创建和管理大量,数目未知的对象。这点区别于数组,数组是为了创建和管理大量,已知数目的数据。所以容器使用起来可以更加灵活。之所以有这样的好处,是因为容器的实现,用了链表等更灵活的存储结构。而在面向对象的语言里面,它们都是以类的形式出现的。也就是说,你创建了一个容器类的对象,那就可以使用这个容器类内部所带有的方法来操纵数据。每一个容器类都实现了迭代器的接口,因为他们有取其中数据的这样的需求。所以迭代器是一种解决通用问题的一种方式,所以可以把迭代器归结为是一种设计模式。参考阅读:http://www.cnblogs.com/weichsel/archive/2010/09/14/182 阅读全文
posted @ 2011-02-23 16:06 飘浮的旋律 阅读(282) 评论(0) 推荐(0)
习题4.14
摘要://编写代码修改指针的值,再重写代码修改指针指向的对象的值。#include using namespace std;int main(){ int i=10; int j=12; int *p=&i; //修改指针的值 cout<<"未修改前指针p的值:"<<*p<<"未修改指针p前p所指对象的值:"<<i<<endl; p=&j; cout<<"修改后指针p的值:"<<*p<<"修改指针p后指针p所指对象的值:"<<i<<endl; //修改指针指向的对象的值 /*cou 阅读全文
posted @ 2011-02-21 14:19 飘浮的旋律 阅读(130) 评论(0) 推荐(0)
习题4.9
摘要://编写程序定义一个有10个int型元素的数组,并以其在数组中的位置作为各元素的初值。#include using namespace std;int main(){ const size_t s=10;//定义数组长度; int a[s];//定义整型数组a; for (size_t i=0;i!=s;i++)//给数组a赋值; a[i]=i+1; for (int j=0;j!=i;j++)//输出数组a的各个元素值; cout<< "数组a有"<<i<<"个元素,其中第"<<j+1<<"个元素值为:"<<a[j] 阅读全文
posted @ 2011-02-21 14:19 飘浮的旋律 阅读(92) 评论(0) 推荐(0)
习题4.18
摘要:#include using namespace std;int main(){ const size_t s=5;//定义数组长度; int ai[]={0,2,4,6,8};//初始数组; cout<<"原始数组:"<<endl; for(int *pb=ai,*pe=pb+s;pb!=pe;pb++)//输出检验原始数组; cout<<*pb<<"\t"; for(int *pb=ai,*pe=pb+s;pb!=pe;pb++)//将数组原始值改为0; *pb=0; cout<<endl; cout<<"把元素设 阅读全文
posted @ 2011-02-21 14:19 飘浮的旋律 阅读(96) 评论(0) 推荐(0)
4.8编写一小段程序实现两vector是否相等的比较
摘要:#include #include using namespace std;int main(){ //定义迭代器; vector v1; vector v2; vector::size_type s=10; int j; int i=0; //向迭代器V1写入数据; cout>j; v1.push_back(j); } //向迭代器v2写入数据; cout>j; v2.push_back(j); } //比较迭代器v1与v2是否相等; for(vector::iterator it1=v1.begin(),it2=v2.begin();it1!=v1.end(),it2!=v 阅读全文
posted @ 2011-02-21 14:18 飘浮的旋律 阅读(260) 评论(0) 推荐(0)
习题4.7利用vector实现数据复制
摘要:#include #include using namespace std;int main(){ int i; vector v; vector v1; cout>i) v.push_back(i); for (vector::size_type ix=0;ix!=v.size();ix++) v1.push_back(v[ix]);//实现复制; for(int j=0;j!=v1.size();j++)//检验复制是否成功; { cout<<v1[j]<<"\t"; if((j+1)%5==0) cout<<endl; } return 阅读全文
posted @ 2011-02-21 14:17 飘浮的旋律 阅读(183) 评论(0) 推荐(0)
习题4.7
摘要:#include using namespace std;int main(){ int a1[]={2,4,6,8,10,12,14,16,18,20,22,24,26}; const size_t s=13; int a2[s]; /*for (size_t k=0;k!=s ;k++ ) { cout<<a2[k]<<"\t"; if ((k+1)%5==0) cout<<endl; }*///考查数组a2的初始情况; for (size_t i=0;i!=s;i++) a2[i]=a1[i];//实现复制; for (int j=0;j!=s;j 阅读全文
posted @ 2011-02-21 14:17 飘浮的旋律 阅读(117) 评论(0) 推荐(0)
C++Primer中文版(第4版)第五章习题答案
摘要:习题5.1在下列表达式中,加入适当的圆括号以标明其计算顺序。编译该表达式并输出其值,从而检查你的回答是否正确。12 / 3 * 4 + 5 * 15 + 24 % 4 / 2【解答】加入如下所示的圆括号以标明该表达式的计算顺序: (((12 / 3) * 4) + (5 * 15)) + ((24 % 4) / 2)习题5.2计算下列表达式的值,并指出哪些结果值依赖于机器?-30 * 3 + 21 / 5-30 + 3 * 21 / 530 / 3 * 21 % 5-30 / 3 * 21 % 4【解答】各表达式的值分别为-86、-18、0、-2。其中,最后一个表达式的结果值依赖于机器,因为该 阅读全文
posted @ 2011-02-21 14:15 飘浮的旋律 阅读(700) 评论(0) 推荐(0)
C++Primer中文版(第4版)第四章习题答案
摘要:习题4.1假设get_size是一个没有参数并返回int值的函数,下列哪些定义是非法的?为什么?unsigned buf_size = 1024(a) int ia[buf_size];(b) int ia[get_size()];(c) int ia[4*7-14];(d) char st[11] = "fundamental" ;【解答】(a)非法,buf_size是一个变量,不能用于定义数组的维数(维长度)。(b)非法,get_size()是函数调用,不是常量表达式,不能用于定义数组的维数(维长度)。(d)非法,存放字符串"fundamental"的数组必须有12个元素,st只有11个元 阅读全文
posted @ 2011-02-21 14:14 飘浮的旋律 阅读(908) 评论(0) 推荐(1)
C++Primer中文版(第4版)第三章习题答案
摘要:习题3.1用适当的using声明,而不用std::前缀,访问标准库中的名字,重新编写2.3节的程序,计算一给定数的给定次幂的结果。【解答】#include using std::cin;using std::cout;int main(){ // 局部对象 int base, exponent; long result=1; // 读入底数和指数 cout > base >> exponent; if (exponent 0) { // 计算底数的指数次方 for (int cnt = 1; cnt #include using namespace std;int main 阅读全文
posted @ 2011-02-21 14:13 飘浮的旋律 阅读(612) 评论(0) 推荐(0)
C++Primer中文版(第4版)第一章习题答案
摘要:习题1.1查看所用的编译器文档,了解它所用的文件命名规范。编译并运行本节的main程序。【解答】一般而言,C++编译器要求待编译的程序保存在文件中。C++程序中一般涉及两类文件:头文件和源文件。大多数系统中,文件的名字由文件名和文件后缀(又称扩展名)组成。文件后缀通常表明文件的类型,如头文件的后缀可以是.h或.hpp等;源文件的后缀可以是.cc或.cpp等,具体的后缀与使用的编译器有关。通常可以通过编译器所提供的联机帮助文档了解其文件命名规范。习题1.2修改程序使其返回-1。返回值-1通常作为程序运行失败的指示器。然而,系统不同,如何(甚至是否)报告main函数运行失败也不同。重新编译并再次运 阅读全文
posted @ 2011-02-21 14:12 飘浮的旋律 阅读(718) 评论(0) 推荐(0)
C++Primer中文版(第4版)第二章习题答案
摘要:习题2.1int、long和short类型之间有什么差别?【解答】它们的最小存储空间不同,分别为16位、32位和16位。一般而言,short类型为半个机器字(word)长,int类型为一个机器字长,而long类型为一个或两个机器字长(在32位机器中,int类型和long类型的字长通常是相同的)。因此,它们的表示范围不同。习题2.2unsigned和signed类型有什么差别?【解答】前者为无符号类型,只能表示大于或等于0的数。后者为带符号类型,可以表示正数、负数和0。习题2.3如果在某机器上short类型占16位,那么可以赋给short类型的最大数是什么?unsigned short类型的最大 阅读全文
posted @ 2011-02-21 14:12 飘浮的旋律 阅读(611) 评论(0) 推荐(0)