欢迎来到天天文库
浏览记录
ID:22757439
大小:70.01 KB
页数:9页
时间:2018-10-31
《c++语言程序设计期末考试试题附答案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、C++语言程序设计期末考试试题及答案一、填空1.在类中必须声明成员函数的原型,成员函数的实现部分可以写在类外。2.如果需要在被调函数运行期间,改变主调函数中实参变量的值,则函数的形参应该是引用类型或指针类型。3.抽象类只能作为基类使用,而不能声明它的对象。4.进行函数重载时,被重载的同名函数如果都没有用const修饰,则它们的形参个数或类型必须不同。5.通过一个常对象只能调用它的常成员函数,不能调用其他成员函数。6.函数的递归调用是指函数直接或间接地调用自身。7.拷贝构造函数的形参必须是本类对象的引用。二、阅读下列程序,写出其
2、运行时的输出结果如果程序运行时会出现错误,请简要描述错误原因。1.请在以下两题中任选一题,该题得分即为本小题得分。如两题都答,则取两题得分之平均值为本小题得分。(1)程序:#include#includeclassBase{private:charmsg[30];protected:intn;public:Base(chars[],intm=0):n(m){strcpy(msg,s);}voidoutput(void){cout<3、sDerived1:publicBase{private:intn;public:Derived1(intm=1):Base("Base",m-1){n=m;}voidoutput(void){cout<4、;intmain(){BaseB("BaseClass",1);Derived2D;B.output();D.output();}运行结果:1BaseClass210Base(2)程序:#includeclassSamp{public:voidSetij(inta,intb){i=a,j=b;}~Samp(){cout<<"Destroying.."<5、wSamp[5];if(!p){cout<<"Allocationerror";return1;}for(intj=0;j<5;j++)p[j].Setij(j,j);for(intk=0;k<5;k++)cout<<"Muti["<6、ng..2Destroying..1Destroying..02.请在以下两题中任选一题,该题得分即为本小题得分。如两题都答,则取两题得分之平均值为本小题得分。(1)程序:#include#includeclassVector{public:Vector(ints=100);int&Elem(intndx);voidDisplay(void);voidSet(void);~Vector(void);protected:intsize;int*buffer;};Vector::Vect7、or(ints){buffer=newint[size=s];}int&Vector::Elem(intndx){if(ndx<08、9、ndx>=size){cout<<"errorinindex"<10、:~Vector(void){delete[]buffer;}intmain(){Vectora(10);Vectorb(a);a.Set();b.Display();}运行结果:12345678910最后出现错误信息,原因是:声明对象b是进行的是浅拷贝,b与a共用同一个bu
3、sDerived1:publicBase{private:intn;public:Derived1(intm=1):Base("Base",m-1){n=m;}voidoutput(void){cout<4、;intmain(){BaseB("BaseClass",1);Derived2D;B.output();D.output();}运行结果:1BaseClass210Base(2)程序:#includeclassSamp{public:voidSetij(inta,intb){i=a,j=b;}~Samp(){cout<<"Destroying.."<5、wSamp[5];if(!p){cout<<"Allocationerror";return1;}for(intj=0;j<5;j++)p[j].Setij(j,j);for(intk=0;k<5;k++)cout<<"Muti["<6、ng..2Destroying..1Destroying..02.请在以下两题中任选一题,该题得分即为本小题得分。如两题都答,则取两题得分之平均值为本小题得分。(1)程序:#include#includeclassVector{public:Vector(ints=100);int&Elem(intndx);voidDisplay(void);voidSet(void);~Vector(void);protected:intsize;int*buffer;};Vector::Vect7、or(ints){buffer=newint[size=s];}int&Vector::Elem(intndx){if(ndx<08、9、ndx>=size){cout<<"errorinindex"<10、:~Vector(void){delete[]buffer;}intmain(){Vectora(10);Vectorb(a);a.Set();b.Display();}运行结果:12345678910最后出现错误信息,原因是:声明对象b是进行的是浅拷贝,b与a共用同一个bu
4、;intmain(){BaseB("BaseClass",1);Derived2D;B.output();D.output();}运行结果:1BaseClass210Base(2)程序:#includeclassSamp{public:voidSetij(inta,intb){i=a,j=b;}~Samp(){cout<<"Destroying.."<5、wSamp[5];if(!p){cout<<"Allocationerror";return1;}for(intj=0;j<5;j++)p[j].Setij(j,j);for(intk=0;k<5;k++)cout<<"Muti["<6、ng..2Destroying..1Destroying..02.请在以下两题中任选一题,该题得分即为本小题得分。如两题都答,则取两题得分之平均值为本小题得分。(1)程序:#include#includeclassVector{public:Vector(ints=100);int&Elem(intndx);voidDisplay(void);voidSet(void);~Vector(void);protected:intsize;int*buffer;};Vector::Vect7、or(ints){buffer=newint[size=s];}int&Vector::Elem(intndx){if(ndx<08、9、ndx>=size){cout<<"errorinindex"<10、:~Vector(void){delete[]buffer;}intmain(){Vectora(10);Vectorb(a);a.Set();b.Display();}运行结果:12345678910最后出现错误信息,原因是:声明对象b是进行的是浅拷贝,b与a共用同一个bu
5、wSamp[5];if(!p){cout<<"Allocationerror";return1;}for(intj=0;j<5;j++)p[j].Setij(j,j);for(intk=0;k<5;k++)cout<<"Muti["<6、ng..2Destroying..1Destroying..02.请在以下两题中任选一题,该题得分即为本小题得分。如两题都答,则取两题得分之平均值为本小题得分。(1)程序:#include#includeclassVector{public:Vector(ints=100);int&Elem(intndx);voidDisplay(void);voidSet(void);~Vector(void);protected:intsize;int*buffer;};Vector::Vect7、or(ints){buffer=newint[size=s];}int&Vector::Elem(intndx){if(ndx<08、9、ndx>=size){cout<<"errorinindex"<10、:~Vector(void){delete[]buffer;}intmain(){Vectora(10);Vectorb(a);a.Set();b.Display();}运行结果:12345678910最后出现错误信息,原因是:声明对象b是进行的是浅拷贝,b与a共用同一个bu
6、ng..2Destroying..1Destroying..02.请在以下两题中任选一题,该题得分即为本小题得分。如两题都答,则取两题得分之平均值为本小题得分。(1)程序:#include#includeclassVector{public:Vector(ints=100);int&Elem(intndx);voidDisplay(void);voidSet(void);~Vector(void);protected:intsize;int*buffer;};Vector::Vect
7、or(ints){buffer=newint[size=s];}int&Vector::Elem(intndx){if(ndx<0
8、
9、ndx>=size){cout<<"errorinindex"<10、:~Vector(void){delete[]buffer;}intmain(){Vectora(10);Vectorb(a);a.Set();b.Display();}运行结果:12345678910最后出现错误信息,原因是:声明对象b是进行的是浅拷贝,b与a共用同一个bu
10、:~Vector(void){delete[]buffer;}intmain(){Vectora(10);Vectorb(a);a.Set();b.Display();}运行结果:12345678910最后出现错误信息,原因是:声明对象b是进行的是浅拷贝,b与a共用同一个bu
此文档下载收益归作者所有