2012年3月全国计算机二级C++上机题库

举报
资源描述
N 6Examination1全国计算机二级C+上 机(内部)专用盗用必究!第一套请使用VC6打开考生文件夹下的工程p ro jl,该工程含有一个源程序文件projl.cppo其中每个注释7/ERROR*found*之后的一行有语句存在错误。请修改这些错误,使程序的输出结果为:12 3 4 5 6 7 8 9 10/projl.cpp#includ e using namespace std;class MyClass public:MyClass(int len)array=new intlen;arraySize=len;for(int i=0;i arraySize;i+)arrayi=i+1;)MyClass()ERROR*!QPJ*d elete array;/d elete array;)void Print()constfor(int i=0;i arraySize;i+)/ERROR*found *cin arrayi 1/cout arrayi cout end l;)private:int*array;int arraySize;);int main()(ERROR*found*MyClass obj;/MyClass obj(10);obj.Print();return 0;)请使用VC 6 打开考生文件夹下的工程p r o j 2,该工程含有个源程序文件p r o j 2.c p p,其中定义了类B a g 和用于测试该类的主函数m a i n。类B a g 是一个袋子类,用来存放带有数字标号的小球(如台球中的球,在类中用一个整数值表示一个小球),其中运算符成员函数二二用来判断两个袋子对象是否相同(即小球的个数相同,每种小球数目也相同,但与它们的存储顺序无关):成员函数i n t In B a g(i n t b a ll)用来返回小球b a ll在当前袋子内出现的次数,返回0 表示该小球不存在。为类实现这两个函数,其用法可参见主函数m a i n。运算符函数o p e r a t o r =:中首先判断两个袋子内的小球个数是否相同,再 调用In B a g 函数来判断每种小球在两个袋子内是否具有相同的出现次数/proj2.cpp#includ e using namespace std;const int MAXNUM=100;class Bag private:int num;int bagMAXNUM;public:Bag(int m,int n=0);/构造函数bool operator=(Bag&b);/重载运算符二二int lnBag(int ball);/某一小球在袋子内的出现次数,返回0 表示不存在);Bag:Bag(int m,int n)(if(n MAXNUM)cerr Too many membersn;exit(-l);)for(int i=0;i n;i+)bagi=mi;num=n;bool Bag-operator=(Bag&b)/实现运算符函数=if(num!=b.num)/元素个数不同return false;for(int i=0;i num;i+)I/*found*if(ln B a g(b a g i)!=b.ln B a g(b a g i)/TO DO:加入条件,判断当前袋子中每个元素在当前袋子和袋子b 中是否出现次数不同*found*return false;/TODO:加入一条语句return true;)int Bag:lnBag(int ball)int count=0;for(int i=0;i num;i+)/*found*if(bagi=ball与当前袋子中某一元素相同*found*_count+_return count;)/TODO:加入条件,判断小球b all是否/TODO:加入一条语句int main()int d ataMAXNUM,n,i;cin n;for(i=0;i n;i+)cin d atai;Bag bl(d ata,n);cin n;for(i=0;i n;i+)cin d atai;Bag b2(d ata,n);if(bl=b2)/创建袋子对象bl创建袋子对象b2测试b l和 b2是否相同cout Bag bl is same with Bag b2n;elsecout ”Bag bl is not same with Bag b2n;return 0;)请使用VC 6 打开考生目录下的工程文件p r o j 3。此工程包含一个源程序文件p r o j 3.c p p,其中定义了用于表示二维向量的类My Ve c t o r:程序应当显示:(6,8)但程序中有缺失部分,请按下面的提示,把卜.划线标出的二一处缺失部分补充完整:(1)在*1 *f o u n d*的下方是构造函数的定义,它用参数提供的坐标对x和y 进行初始化。(2)在*2*f o u n d*的下方是减法运算符函数定义中的一条语句。两个二维向量相减生成另个二维向量:它的X坐标等于两个向量X的坐标之差,它的Y坐标等于两个向量Y坐标之差。(3)在*3*f o u n d*的下方的语句的功能是使变量v 3获得新值,它等于向量v l与向量v 2之和。/proj3.cpp#includ eusing std:ostream;using std:cout;using std:end l;class MyVectord ouble x;d ouble y;public:表示二维向量的类/X坐标值/Y坐标值MyVector(d ouble i=0.0,d ouble j=0.0);MyVector operator+(MyVector j);构造函数重载运算符+friend MyVector operator-(MyVector i,MyVector j);重载运算符friend ostream&operator(ostream&os,MyVector v);币:载运算符);*found*_ My Ve c t o r:My Ve c t o r(d ouble i,d ouble j):x(i),y(j)MyVector MyVector:operator+(MyVector j)return MyVector(x+j.x,y+j,y);)MyVector operator-(MyVector i,MyVector j)*2*found*return M y V e c t o r(i.x-j.x,i.y-j.y);)ostream&operator(ostream&os,MyVector v)os (v.x ;v.y );输出向量 v 的坐标return os;)int main()MyVector vl(2,3),v2(4,5)/v3;*found*v3=_ v l+v 2;coutv3end l;return 0;第二套请使用VC6打开考生文件夹下的工程p r o jl,该工程含有一个源程序文件projl.cpp。其中位于每个注释/7/ERROR*found*之后的一行语句存在错误。请修正这些错误,使程序的输出结果为:Constructor called of 10The value is 10Descructor called of 10/projl.cpp#includ e using namespace std;class MyClass public:MyClass(int i)(value=i;cout Constructor called of value end l;)11 ERROR*found*void Print()/void P rint()const cout The value is value end l;11 ERROR*found*void MyClass()/MyClass()cout Destructor called of value end l;private:11 ERROR*found*int value=0;/int value;;int main()(const MyClass obj(10);obj.Print();return 0;)凡用过C语言标准库函数strcpy(char*sl,char*s2)的程序员都知道使用该函数时有一个安全隐患,即当指针si所指向的空间不能容纳字符串s2的内容时,将发生内存错误。类String的Strcpy成员函数能进行简单的动态内存管理,其内存管理策略为:(1)若巴有空间能容纳下新字符串,则直接进行字符串拷贝;(2)若已有空间不够时,它将重新申请块内存空间(能容纳下新字符串),并将新字符串内容拷贝到新申请的空间中,释放原字符空间。请使用VC6打开考生文件夹下的工程p ro j2,该工程含有一个源程序文件Proj2.cpp0其中定义了类 String和用于测试该类的主函数m ain,并且成员函数Strcpy的部分实现代码已在该文件中给出,请在标有注释”*found*行的下行添加适当的代码,将这个函数补充完整,以实现其功能。/proj2.cppinclud e using namespace std;class String private:int size;/缓冲区大小char*buf;/缓冲区public:String(int bufsize);void Strcpy(char*s);/将字符串 s 复制到 buf 中void Print()const;String()if(buf!=NULL)d elete buf;);String:String(int bufsize)size=bufsize;buf=new charsize;*buf=O;void String:Strcpy(char*s)(char*p,*q;int len=strlen(s);if(len+1 size)size=len+1;p=q=new charsize;*found*wh i l e(*(q+)=*(s+);/TODO:添加代码将字符串s 拷贝到字符指针q 中d elete buf;buf=p;)else(*foundfor(p=buf;buf中*p=*s,;p+,s+);/TODO:添加代码将字符串S 拷贝到)void String:Print()constcout size t buf end l;)int main()char s100;String str(32);cin.getline(s,99);str.Strcpy(s);str.Print();return 0;)请使用V C 6打开考生目录下的工程文件p r o j 3 0此工程包含一个源程序文件p r o j 3.c p p,其中定义了用于表示平面坐标系中的点的类m yP o i n l和表示三角形的类M yT r i a n gl e;程序运行后应当显示:6.8 2 8 4 32但程序中的缺失部分,请按下面的提示,把下划线标出的三处缺失部分补充完整:(1)在*1*f o u n d*的卜方是构造函数的定义,它参数提供的三个顶点对p o i n t l p o i n t 2和p o i n t 3进行初始化。(2)在*2*f o u n d*的下方是成员函数p er i m et er的定义,该函数返回三角形的周长。(3)在*3*f o u n d*的卜方是成员函数a r ea的定义中的一条语句。函数a r ea返回三角形的面积。方法是:若a、b、c为三角形的三个边长,并 令s=(a+b+c)/2,则三角形的面积A为A=sq r t (s*(s-a)*(s-b)*(sc)(其中 sq r t 表示开二次方)/proj3.cpp#includ e#includ eusing namespace std;class MyPoint 表示平面坐标系中的点的类d ouble x;d ouble y;public:My
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关资源
正为您匹配相似的精品文档
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新


电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号