版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C++面向对象程序设计模拟试题三一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中,只有一个是符合题目规定的,请将其代码填写在题后的括号内。错选、多选或未选均无分。1.下面有关重载函数的描述中,对的的是()。A)重载函数必须具有不同的返回值类型 B)重载函数形参个数必须不同C)重载函数必须具有不同的形参表 D)重载函数名可以不同2.假定MyCIass为一个类,那么下列的函数说明中,()为该类的析构函数。A)void~MyClass(); B)~MyClass(intn); C)MyClass(); D)~MyClass();3.()是以一种完全通用的方法来设计函数或类而不必预先说明将被使用的每个对象的类型。A)模板 B)类 C)对象 D)函数4.下面关于静态成员函数的途术中错语的是()。A.静态成员函数可以有返回值 B.this指针可以指向静态成员函数C.静态成员函数可以具有指针参数 D.静态成员函数可有具有返回值类型5.定义类模板时要使用关键字()。A.private B.public C.delete D.template6.下列是重载乘法运算符的函数原型声明,其中错误的是()。A)MyClassoperator*(double,double); B)MyClassoperator*(double,MyClass);C)MyClassoperator*(MyClass,double); D)MyClassoperator*(MyClass,MyClass);7.以下()成员函数表达纯虚函数。A)virtualintfun(int) B)voidfun(int)=0 C)virtualvoidfun()=0 D)virtualvoidfun(int){}8.关于纯虚函数,下列表述中对的的是()。A)纯虚函数的声明总是以"=0"结束 B)具有纯虚函数的类可以定义对象C)具有纯虚函数的类是抽象类 D)上面都是错误的9.()解决二义性问题。A.只能使用作用域分辨操作符 B.只能使用虚基类C.使用作用域分辨操作符或虚基类 D.上面都不能10.实现编译时的多态性要使用()。A)重载函数 B)析构函数 C)构造函数 D)虚函数二、填空题(本大题共5小题,每小题2分,共10分)不写解答过程,将对的的答案写在每小题的空格内。错填或不填均无分。1.定义一个函数名为fun,返回值为int,没有参数的纯虚函数的声明是()。2.定义静态成员函数应使用关键字()。3.在C++中,假如类的名称是CTest,则此类的构造函数名称为()。4.在类的对象被创建时,()函数会被自动调用。5.类中数据成员和成员函数的默认访问级别为()。三、完毕程序填题(本大题共3个小题,每小题3分,共9分)下面程序都留有空白,请将程序补充完整,1.请完毕下面的程序#include<iostream> //预解决命令usingnamespacestd; //使用标准命名空间std//测试静态成员类classTest{private: [1]intcount; //对象数public: Test(){count++;} //构造函数,实现对对象进行计数 staticvoidShow(){cout<<"共有"<<count<<"个对象!"<<endl;} //显示对象数};intTest::count=0; //初始化静态数据成员赋初值intmain(void) //主函数main(void){ Testobj1,obj2,obj3; //定义对象 Test::Show(); //显示对象数 return0; //返回值0,返回操作系统}2.请完毕下面的程序#include<iostream> //预解决命令usingnamespacestd; //使用标准命名空间std//整数类classInteger{private: inta; //数据成员public: Integer(intx=0){a=x;} //构造函数 operatorint(){returna;} //类型转换函数 Integeroperator+(constInteger&i)const //重载加法运算符+ { return[2]; //返回和 }};intmain(void) //主函数main(void){ Integera(2),b(3),c; //定义整数对象 c=a+b; //求和 cout<<c<<endl; //显示和 return0; //返回值0,返回操作系统}3.请完毕下面的程序#include<iostream> //预解决命令usingnamespacestd; //使用标准命名空间stdtemplate<classElemType>classA{private: ElemTypea; //数据成员public: A(ElemTypex):a(x){} //构造函数 voidShow()const {cout<<a<<endl;} //显示a之值};intmain(void) //主函数main(void){ A<[3]>obj("Hello,world!"); //定义对象 obj.Show(); //显示相关信息 return0; //返回值0,返回操作系统}四、程序分析题(本大题共4小题,每小题5分,共20分)给出下面各程序的输出结果。1.阅读下面程序,写出输出结果。#include<iostream> //预解决命令usingnamespacestd; //使用标准命名空间stdclassPoint{private: intx; //x坐标 inty; //y坐标public: Point(inta=0,intb=0):x(a),y(b){} intGetX()const{returnx;} intGetY()const{returny;} voidSetX(inta){x=a;} voidSetY(intb){y=b;}};intmain(void){ Pointobj1; constPointobj2(9,98); cout<<obj1.GetX()<<endl; obj1.SetX(5); cout<<obj1.GetX()<<endl; obj1.SetY(18); cout<<obj1.GetY()<<endl; cout<<obj2.GetX()<<endl; cout<<obj2.GetY()<<endl; return0; //返回值0,返回操作系统}上面程序的输出结果为:1.参考答案:05189982.阅读下面程序,写出输出结果。#include<iostream> //预解决命令usingnamespacestd; //使用标准命名空间stdclassArray{private: int*elem; //数组元素存储空间 intsize; //数组元素个数public: Array(inta[],intsz):elem(a),size(sz){} //构造函数 intGetSize(){returnsize;} int&operator[](intpos){returnelem[pos-1];} //重载下标运算符[]};intmain(void) { inta[]={1,2,3,4,5}; Arrayobj(a,5); obj[1]=8; for(inti=1;i<=obj.GetSize();i++) //依次输出数组各元素之值 cout<<obj[i]<<""; cout<<endl; return0; //返回值0,返回操作系统}上面程序的输出结果为:3.阅读下面程序,写出输出结果。#include<iostream> //预解决命令usingnamespacestd; //使用标准命名空间stdclassA{public: A(){cout<<"构造A"<<endl;} //构造函数 ~A(){cout<<"析构A"<<endl;} //析构函数};classB:publicA{public: B(){cout<<"构造B"<<endl;} //构造函数 ~B(){cout<<"析构B"<<endl;} //析构函数};intmain(void) { Bobj; A*p=newA; return0; //返回值0,返回操作系统}上面程序的输出结果为:4.阅读下面程序,写出输出结果。#include<iostream> //预解决命令usingnamespacestd; //使用标准命名空间stdtemplate<classElemType>ElemTypef(ElemTypex) { returnx*(ElemType)5.1;}template<classElemType>voidf(ElemTypex,ElemTypey){ x=x*1.1; y=y*1.1; cout<<x<<endl; cout<<y<<endl;}intmain(void) { cout<<f(3.0)<<endl; f(1,2); f(1.0,2.0); system("PAUSE"); //调用库函数system(),输出系统提醒信息 return0; //返回值0,返回操作系统}上面程序的输出结果为:五、程序改错题(本大题共3小题,每小题5分,共15分)指出下面程序中的错误,说明错误因素,并加以改正。1.下面程序中类的定义中有一处错误,请指出犯错的行,说明错误因素,并加以改正。#include<iostream> //1usingnamespacestd; //2 //3classA //4{ //5public: //6 A(intx=0,inty=0):a=x,b=y{} //7 voidShow() //8 { //9 cout<<a<<""<<b<<endl; //10 } //11 //12private: //13 inta,b; //14}; //15 //16intmain(void) //17{ //18 Aobj(18); //19 obj.Show(); //20 //21 return0; //22} //232.下面程序中类的定义中有一处错误,请指出犯错的行,说明错误因素,并加以改正。#include<iostream> //预解决命令 //1usingnamespacestd; //使用标准命名空间std //2 //3template<classElemType> //4ElemTypeMax(ElemTypea,ElemTypeb) //5{ //6 return(a>b)?a:b; //5} //6 //7intmain(void) //8{ //9 cout<<Max(16.8,518)<<endl; //10 //11 return0; //返回值0,返回操作系统 //12} //133.下面程序中类的定义中有一处错误,请指出犯错的行,说明错误因素,并加以改正。#include<iostream> //1usingnamespacestd; //2 //3classInteger //4{ //5public: //6 Integer(inta=0):i(a){} //7 //8 intoperatorint() //9 { //10 returni; //11 } //12 //13private: //14 inti; //15}; //16 //17intmain(void) //18{ //19 Integerobj(168); //20 cout<<obj<<endl; //21 //22 return0; //23} //24六、编程题(本大题26分)编写程序,定义抽象基类Shape(形状),由它派生出2个派生类:Circle(圆形)和Rectangle(矩形),用函数Show()分别显示各种图形的相关信息,最后还要显示所有图形的总面积。
C++面向对象程序设计模拟试题三参考答安全一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中,只有一个是符合题目规定的,请将其代码填写在题后的括号内。错选、多选或未选均无分。1.C 2.D 3.A 4.B 5.D6.A 7.C 8.C 9.C 10.A二、填空题(本大题共5小题,每小题2分,共10分)不写解答过程,将对的的答案写在每小题的空格内。错填或不填均无分。1.参考答案:intfun()=0;2.参考答案:static3.参考答案:CTest4.参考答案:构造函数5.参考答案:private或私有三、完毕程序填题(本大题共3个小题,每小题3分,共9分)下面程序都留有空白,请将程序补充完整,1.参考答案:[1]static2.参考答案:[2]a+i.a或this->a+i.a3.参考答案:[3]char*四、程序分析题(本大题共4小题,每小题5分,共20分)给出下面各程序的输出结果。1.参考答案:05189982.参考答案:823453.参考答案:构造A构造B构造A析构B析构A4.参考答案:15.3121.12.2五、程序改错题(本大题共3小题,每小题5分,共15分)指出下面程序中的错误,说明错误因素,并加以改正。1.参考答案:第7行“a=x,b=y”有错,初始列表的格式错,应改为“a(x),b(y)”。2.参考答案:第10行有错,模板函数无隐式转换功能,函数调用Max(16.8,518)无法拟定参数类型,可第11行的“Max(16.8,518)”改为“Max(16.8,518.0)”。3.参考答案:第9行“intoperatorint()”有错,类型转换函数不能有返回值类型,可改为“operatorint()”。六、编程题(本大题26分)参考程序:#include<iostream> //预解决命令usingnamespacestd; //使用标准命名空间stdconstdoublePI=3.1415926; //定义常量PIclassShape{public: Shape(){} //构造函数 virtual~Shape(){} //析构函数 virtualShow()=0; //显示面积 staticd
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 三方房屋租赁合同范本
- 实习期劳合同法律关系
- 大学生就业合同协议书(2025年)
- 购销合同模版
- 购销合同中英文版
- 空调购销合同
- 运输公司劳务合同范本
- 软件开发合作协议合同部修订版
- 购销合同货到付款
- 企业反担保合同范本
- 雷火灸疗法专业知识讲座
- GB/T 15605-2008粉尘爆炸泄压指南
- 中考语文文学文本类阅读复习专题课件:表现手法分析之衬托、对比与抑扬
- 铁路工程-轨道工程施工工艺及方案
- 福建省福州市各县区乡镇行政村村庄村名明细及行政区划代码
- 《高中语文文言断句》一等奖优秀课件
- 上海市中小学生学籍信息管理系统
- (完整版)自动感应门施工方案
- 8站小车呼叫的plc控制
- _ 基本粒子与宏观物体内在联系
- 象棋比赛积分编排表
评论
0/150
提交评论