四川大学C++面向对象程序的设计模拟试题7_第1页
四川大学C++面向对象程序的设计模拟试题7_第2页
四川大学C++面向对象程序的设计模拟试题7_第3页
四川大学C++面向对象程序的设计模拟试题7_第4页
四川大学C++面向对象程序的设计模拟试题7_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

./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通过常对象可以调用任何不改变对象值的成员函数4.以下关键字不能用来声明类的访问权限的是<>.ApublicBstaticCprotectedDprivate5.下列关于this指针的叙述中,正确的是<>.A与类相关的所有函数都含有this指针B所有类的成员函数都有this指针C所有函数都有this指针D只有类的非静态成员函数才有this指针6.派生类的成员函数不能直接访问基类的<>.A保护成员 B公有成员C私有成员 D前面各选项都正确7.在下列函数原型中,可以作为类Test构造函数的是<>.AvoidTest<int>; BintTest<>;C~Test<int>; DTest<int>;8.在下面4个关键字中,用于说明虚基类的是<>.AvirtualBpublicCprotectedDprivate9.在C++中,用于实现编译时多态性的是<>.A友元函数 B重载函数 C静态成员函数 D虚函数10.下列关于C++函数的说明中,正确的是<>.A内置函数就是定义在另一个函数体内部的函数B函数体的最后一条语句必须是return语句CC++标准要求在调用一个函数之前,如果没定义函数,则必须先声明其原型D编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式二、填空题〔本大题共5小题,每小题2分,共10分不写解答过程,将正确的答案写在每小题的空格内.错填或不填均无分.1.一个函数名为Show,返回值类型为void,没有参数的纯虚常成员函数可以声明为〔.2.若将一个二元运算符重载为类的友员函数,其形参个数应该是〔个.3.采用struct定义的类中数据成员和成员函数的默认访问权限是〔.4.在面向对象方法中,〔描述的是具有相同属性与操作的一组对象.5.模板类型形参表使用的关键字为<>.三、程序分析题〔本大题共6小题,每小题5分,共30分给出下面各程序的输出结果.1.阅读下面程序,写出输出结果.#include<iostream>usingnamespacestd; classTest{private: intn; public: Test<inti=16>{n=i;} intGet<>{returnn;} intGet<>const{returnn-2;} };intmain<> { Testa; constTestb<18>; cout<<a.Get<><<","<<b.Get<><<endl; return0;}上面程序的输出结果为:2.阅读下面程序,写出输出结果.#include<iostream>usingnamespacestd; classA{public: A<>{cout<<"A"<<endl;} ~A<>{cout<<"~A"<<endl;} };classB:A{public: B<>{cout<<"B"<<endl;} ~B<>{cout<<"~B"<<endl;} };intmain<> { Bobj; return0;}上面程序的输出结果为:3.阅读下面程序,写出输出结果.#include<iostream>usingnamespacestd; intf<inta>{returna*a+8;}template<classT>Tf<constT&a>{returna*a;}intmain<> { cout<<f<1><<","<<f<1.0><<endl; return0;}上面程序的输出结果为:4.阅读下面程序,写出输出结果.#include<iostream> usingnamespacestd; namespacens { intx=18; }intx=5; intmain<> { intx=10; cout<<x<<""<<::x<<""<<ns::x<<endl; return0;}上面程序的输出结果为:5.阅读下面程序,写出输出结果.#include<iostream> usingnamespacestd; classA{public: virtualvoidShow<>const{cout<<"A::Show<>"<<endl;}};classB:publicA{public: voidShow<>const{cout<<"B::Show<>"<<endl;}};voidRefers<constA&obj>{ obj.Show<>; }intmain<> { Aobj1; Bobj2; Refers<obj1>; Refers<obj2>; return0;}上面程序的输出结果为:6.阅读下面程序,写出输出结果.#include<iostream> usingnamespacestd; classA{protected: inta; public: A<intx>:a<x>{} voidShow<>const{cout<<a<<endl;}};classB:publicA{protected: intb; public: B<intx,inty>:A<x>,b<y>{} voidShow<>const{cout<<b<<endl;}};intmain<> { Bobj<18,5>; obj.Show<>; obj.A::Show<>; return0;}上面程序的输出结果为:四、完成程序填题〔本大题共4个小题,每小题3分,共12分下面程序都留有空白,请将程序补充完整.1.将如下程序补充完整.#include<iostream>usingnamespacestd; classInteger{private: intn; public: Integer<intn>:n<n>{} Integer&[1]{--n;return*this;} //重载前缀--运算符 voidShow<>const{cout<<n<<endl;}};intmain<> { Integeri<168>; --i; i.Show<>;return0; }2.将如下程序补充完整.#include<iostream>usingnamespacestd; classA{private: inta; public: A<intm=0>:a<m>{} [2]//类型转换函数,A类对象转转成int型量 {returna;} };intmain<> { Aa=8.14; cout<<a<<endl; return0;}3.将如下程序补充完整.#include<iostream> usingnamespacestd; classA{private: intm; public: A<inta>:m<a>{} virtualvoidShow<>const{cout<<m<<endl;} };classB:publicA{private: intn; public: B<inta,intb>:A<a>{n=b;} voidShow<>const{cout<<n<<endl;}};intmain<> { Bobj<158,98>; [2] Show<>; //调用基类的Show<> return0;}4.将如下程序补充完整.#include<iostream> usingnamespacestd; classComplex{private: doublerealPart; doubleimagePart; public: Complex<doublereal=0,doubleimage=0>:realPart<real>,imagePart<image>{} Complex[3]<constComplex&a>const //重载减法运算符+ {returnComplex<realPart-a.realPart,imagePart-a.imagePart>;} voidShow<>const{cout<<realPart<<"+"<<imagePart<<"i"<<endl;}};intmain<> { Complexa<2,9>,b<1,1>,c; c=a-b; cout<<"a=";a.Show<>; cout<<"b=";b.Show<>; cout<<"c=";c.Show<>; return0;}五、编程题〔本大题共2小题,第1小题12分,第2小题16分,共28分1.试使用函数模板实现求一个数组各元素的积,要求编写测试程序.函数模板声明如下:template<classType>TypeMul<Typea[],intn>; //求数组a各元素的积2.设计一个日期类Date,,要求:〔1包含年<year>、月<month>和日<day>私有数据成员.〔2包含构造函数,重载输出运算符"<<"与重载输入运算符">>".要求编写测试程序.C++面向对象程序设计模拟试题七参考答案一、单项选择题〔本大题共10小题,每小题2分,共20分在每小题列出的四个备选项中,只有一个是符合题目要求的,请将其代码填写在题后的括号内.错选、多选或未选均无分.1.B 2.C 3.A 4.B 5.D6.C 7.D 8.A 9.B 10.C二、填空题〔本大题共5小题,每小题2分,共10分不写解答过程,将正确的答案写在每小题的空格内.错填或不填均无分.1.参考答案:virtualvoidShow<>const=0;2.参考答案:23.参考答案:public或公有4.参考答案:类5.参考答案:class三、程序分析题〔本大题共6小题,每小题5分,共30分给出下面各程序的输出结果.1.参考答案:16,162.参考答案:AB~B~A3.参考答案:9,14.参考答案:105185.参考答案:A::Show<>B::Show<>6.参考答案:518四、完成程序填题〔本大题共4个小题,每小题3分,共12分下面程序都留有空白,请将程序补充完整.1.参考答案:[1]operator--<>2.参考答案:[2]operatorint<>const或operatorint<>3.参考答案:[3]obj.A::4.参考答案:[4]operator-五、编程题〔本大题共2小题,第1小题12分,第2小题16分,共28分1.参考程序:#include<iostream> usingnamespacestd; template<classType>TypeMul<Typea[],intn> //求数组a各元素的积{ Typet=1; for<inti=0;i<n;i++> t*=a[i]; returnt; }intmain<> { inta[]={1,2,3,4,5,6,7,8,9}; cout<<Mul<a,9><<endl; return0; }2.参考程序:#include<iostream> usingnamespacestd; classDate{private: intyear; intmonth; intday; public: Date<inty=2010,intm=1,intd=1>:year<y>,month<m>,day<d>{} voidSetYear<inty>{year=y;}

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论