四川大学C++面向对象程序设计模拟试题7
《四川大学C++面向对象程序设计模拟试题7》由会员分享,可在线阅读,更多相关《四川大学C++面向对象程序设计模拟试题7(8页珍藏版)》请在装配图网上搜索。
1、C+面向对象程序设计模拟试题七一、单项选择题本大题共10小题,每题2分,共20分在每题列出的四个备选项中,只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多项选择或未选均无分。1.以下语句中,错误的选项是()。Aconstintbuffer=168;Bconstintnum;Cconstdouble*p;Ddouble*constp=newdouble;2.C+中的模板包括()。A对象模板和函数模板B对象模板和类模板C函数模板和类模板D变量模板和对象模板3.对于常对象,C+遵循()。A丨通过常对象可以调用常成员函数B通过常对象可以所有成员函数C常对象的成员都是常成员D通过常对象可
2、以调用任何不改变对象值的成员函数4以下关键字不能用来声明类的访问权限的是()。ApublicBstaticCprotectedDprivate5以下关于this指针的表达中,正确的选项是()。A与类相关的所有函数都含有this指针B所有类的成员函数都有this指针C所有函数都有this指针D只有类的非静态成员函数才有this指针6派生类的成员函数不能直接访问基类的()。A丨保护成员B公有成员C私有成员D前面各选项都正确7在以下函数原型中,可以作为类Test构造函数的是()。AvoidTest(int);BintTest();CTest(int);DTest(int);&在下面4个关键字中,用于
3、说明虚基类的是()。AvirtualBpublicCprotectedDprivate9.在C+中,用于实现编译时多态性的是()。A丨友元函数B重载函数C静态成员函数D虚函数10以下关于C+函数的说明中,正确的选项是()。A丨内置函数就是定义在另一个函数体内部的函数B函数体的最后一条语句必须是return语句CC+标准要求在调用一个函数之前,如果没定义函数,则必须先声明其原型D编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式、填空题本大题共5小题,每题2分,共10分不写解答过程,将正确的答案写在每题的空格内。错填或不填均无分。1一个函数名为Show,返回值类型为void,没有参数的
4、纯虚常成员函数可以声明为丨。2假设将一个二元运算符重载为类的友员函数,其形参个数应该是丨个。3采用struct定义的类中数据成员和成员函数的默认访问权限是。4. 在面向对象方法中,丨描述的是具有相同属性与操作的一组对象。5. 模板类型形参表使用的关键字为()。三、程序分析题本大题共6小题,每题5分,共30分给出下面各程序的输出结果。1. 阅读下面程序,写出输出结果。#ineludeusingnamespacestd;classTestprivate:intn;public:Test(inti=16)n=i;intGet()returnn;intGet()constreturnn-2;intma
5、in()Testa;constTestb(18);couta.Get(),b.Get()endl;return0;上面程序的输出结果为:2. 阅读下面程序,写出输出结果。#includeusingnamespacestd;classApublic:A()coutAendl;A()coutAendl;classB:Apublic:B()coutBendl;B()coutBendl;intmain()Bobj;return0;上面程序的输出结果为:3阅读下面程序,写出输出结果。#includeusingnamespacestd;intf(inta)returna*a+8;templateTf(co
6、nstT&a)returna*a;intmain()coutf(1),f(1.0)endl;return0;上面程序的输出结果为:4阅读下面程序,写出输出结果。#includeusingnamespacestd;namespacensintx=18;intx=5;intmain()intx=10;coutx:xns:xendl;return0;上面程序的输出结果为:5阅读下面程序,写出输出结果。#includeusingnamespacestd;classApublic:virtualvoidShow()constcoutA:Show()endl;classB:publicApublic:vo
7、idShow()constcoutB:Show()endl;voidRefers(constA&obj)obj.Show();intmain()Aobj1;Bobj2;Refers(obj1);Refers(obj2);return0;上面程序的输出结果为:6阅读下面程序,写出输出结果。#includeusingnamespacestd;classAprotected:inta;public:A(intx):a(x)voidShow()constcoutaendl;classB:publicAprotected:intb;public:B(intx,inty):A(x),b(y)voidSho
8、w()constcoutbendl;intmain()Bobj(18,5);obj.Show();obj.A:Show();return0;上面程序的输出结果为:四、完成程序填题本大题共4个小题,每题3分,共12分下面程序都留有空白,请将程序补充完整。1将如下程序补充完整。#includeusingnamespacestd;classIntegerprivate:intn;public:Integer(intn):n(n)Integer&1-n;return*this;/重载前缀-运算符voidShow()constcoutnendl;intmain()Integeri(168);-i;i.S
9、how();return0;2. 将如下程序补充完整。#includeusingnamespacestd;classAprivate:inta;public:int型量A(intm=0):a(m)2_II类型转换函数,A类对象转转成returna;intmain()Aa=8.14;coutaendl;return0;3. 将如下程序补充完整。#ineludeusingnamespacestd;classAprivate:intm;public:A(inta):m(a)virtualvoidShow()constcoutmendl;classB:publicAprivate:intn;publi
10、c:B(inta,intb):A(a)n=b;voidShow()constcoutnendl;intmain()Bobj(158,98);2Show();/调用基类的Show()return0;4. 将如下程序补充完整。#includeusingnamespacestd;classComplexprivate:doublerealPart;doubleimagePart;public:Complex(doublereal=0,doubleimage=0):realPart(real),imagePart(image)Complex3(constComplex&a)const/重载减法运算符+
11、returnComplex(realPart-a.realPart,imagePart-a.imagePart);voidShow()constcoutrealPart+imagePartiendl;intmain()Complexa(2,9),b(1,1),c;c=a-b;couta=;a.Show();coutb=;b.Show();coutc=;c.Show();return0;五、编程题本大题共2小题,第1小题12分,第2小题16分,共28分1试使用函数模板实现求一个数组各元素的积,要求编写测试程序。函数模板声明如下:templateTypeMul(Typea,intn);/求数组a各
12、元素的积2设计一个日期类Date,,要求:1包含年(year)、月(month)和日(day)私有数据成员。2包含构造函数,重载输出运算符“”。要求编写测试程序。C+面向对象程序设计模拟试题七参考答案一、单项选择题本大题共10小题,每题2分,共20分在每题列出的四个备选项中,只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多项选择或未选均无分。1B2C3A4B5D6C7D8A9B10C二、填空题本大题共5小题,每题2分,共10分不写解答过程,将正确的答案写在每题的空格内。错填或不填均无分。1参考答案:virtualvoidShow()const2参考答案:23参考答案:publi
13、c或公有4参考答案:类5参考答案:class三、程序分析题本大题共6小题,每题5分,共30分给出下面各程序的输出结果。1参考答案:16,162参考答案:ABBA3参考答案:9,14参考答案:105185参考答案:A:Show()B:Show()6参考答案:518四、完成程序填题本大题共4个小题,每题3分,共12分下面程序都留有空白,请将程序补充完整。1参考答案:1operator-()2参考答案:2operatorint()const或operatorint()3参考答案:3obj.A:4参考答案:4operator-五、编程题本大题共2小题,第1小题12分,第2小题16分,共28分1参考程序
14、:#includeusingnamespacestd;templateTypeMul(Typea,intn)/求数组a各元素的积Typet=1;for(inti=0;in;i+)t*=ai;returnt;intmain()inta=1,2,3,4,5,6,7,8,9;coutMul(a,9)endl;return0;2参考程序:#includeusingnamespacestd;classDateprivate:intyear;intmonth;intday;public:Date(inty=2010,intm=1,intd=1):year(y),month(m),day(d)voidSet
15、Year(inty)year=y;voidSetMonth(intm)month=m;voidSetDay(intd)day=d;intGetYear()constreturnyear;intGetMonth()constreturnmonth;intGetDay()constreturnday;istream&operator(istream&in,Date&dt)inty,m,d;couty;coutm;coutd;dt.SetYear(y);dt.SetMonth(m);dt.SetDay(d);returnin;ostream&operator(ostream&out,constDate&dt)日;日;coutdt.GetYear()年dt.GetMonth()月d;coutdendl;return0;
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。