面向对象程序设计C期末试卷及标准答案B样本.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 期末试卷 标准答案 样本
- 资源描述:
-
资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。 《面向对象程序设计C++》期末考试试卷( B) 班级: 姓名: 学号: 分数: 题号 一 二 三 四 总分 得分 试卷说明: 本套试题共四个大题, 全部题目都答在答题纸上, 写在其它地方均无效。 ( 答题纸在本套试卷的第8页上) 一、 单项选择题( 每小题2分, 共40分) 1、 关于C++与C语言关系的描述中, ( D ) 是错误的。 A.C语言是C++语言的一个子集 B.C语言与C++语言是兼容的 C.C++语言对C语言进行了一些改进 D.C++语言和C语言都是面向对象的 2、 已知: int m=10; 下列表示引用的方法中, ( A ) 是正确的。 A.int &x=m; B.int &y=10; C.int &z; D.float &t=&m; 3、 考虑下面的函数原型声明: void testDefaulParam(int a,int b=7,char z='*'); 下面函数调用中, 不合法的是( C ) 。 A.testDefaulParam(5); B.testDefaulParam(5,8); C.testDefaulParam(5,'#'); D.testDefaulParam(0,0,'*'); 4、 系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用, 在下列选项中, 不能作为依据的是( A ) 。 A.函数的返回值类型 B.参数的类型 C.函数名称 D.参数个数 5、 下列有关C++类的说法中, 不正确的是( D ) 。 A.类是一种用户自定义的数据类型 B.只有类中的成员函数或类的友元函数才能存取类中的私有成员 C.在类中, 如果不做特别说明, 所有成员的访问权限均为私有的 D.在类中, 如果不做特别说明, 所有成员的访问权限均为公用的 6、 已知X类, 则当程序执行到语句X array[3];时, 调用了( D ) 次构造函数。 A.0 B.1 C.2 D.3 7、 有关析构函数的说法, 不正确的是( B ) 。 A.析构函数有且仅有一个 B.析构函数和构造函数一样能够有形参 C.析构函数的功能是在系统释放对象之前作一些内存清理工作 D.析构函数无任何函数类型 8、 类定义的内容允许被其对象无限制地存取的是( C ) 。 A.private 部分 B. protected 部分 C.public 部分 D.以上都不对 9、 关于常数据成员的说法, 不正确的是( D ) 。 A.常数据成员的定义形式与一般常变量的定义形式相同, 只不过常数据成员的定义必须出现在类体中 B.常数据成员必须进行初始化, 而且不能被更新 C.常数据成员经过构造函数的成员初始化列表进行初始化 D.常数据成员能够在定义时直接初始化 10、 运用运算符delete删除一个动态对象时( C ) 。 A.系统首先为该动态对象调用构造函数, 再释放其占用的内存 B.系统首先释放该动态对象占用的内存, 再为其调用构造函数 C.系统首先为该动态对象调用析构函数, 再释放其占用的内存 D.系统首先释放动态对象占用的内存, 再为其调用析构函数 11、 能够在类外用p.a的形式访问派生类对象p的基类成员a, 其中a是( D ) 。 A.私有继承的公用成员 B.公用继承的私有成员 C.公用继承的保护成员 D.公用继承的公用成员 12、 在公用继承方式下, 有关派生类对象和基类对象的关系, 不正确的叙述是( C ) 。 A.派生类的对象能够赋给基类的对象 B.派生类的对象能够初始化基类的引用 C.派生类的对象能够直接访问基类中的成员 D.派生类的对象的地址能够赋给指向基类的指针 13、 设置虚基类的目的是( B ) 。 A.简化程序 B.消除二义性 C.提高运行效率 D.减少目标代码 14、 在C++中, 用于实现动态多态性的是( D ) 。 A.内联函数 B.重载函数 C.模板函数 D.虚函数 15、 不能说明为虚函数的是( B ) 。 A.析构函数 B.构造函数 C.类的成员函数 D.以上都不对 16、 如果一个类至少有一个纯虚函数, 那么就称该类为( A ) 。 A.抽象类 B.派生类 C.纯基类 D.以上都不对 17、 下面关于友元的描述中, 错误的是( D ) 。 A.友元函数能够访问该类的私有数据成员 B.一个类的友元类中的成员函数都是这个类的友元函数 C.友元能够提高程序的运行效率 D.类与类之间的友元关系能够继承 18、 下列运算符中, ( C ) 运算符在C++中不能被重载。 A.&& B.[] C.:: D.new 19、 模板的使用实际上是将类模板实例化成一个( C ) 。 A.函数 B.对象 C.类 D.抽象类 20、 假定MyClass为一个类, 则该类的拷贝构造函数的声明语句为( C ) 。 A.MyClass(MyClass x) B.MyClass&(MyClass x) C.MyClass(MyClass &x) D.MyClass(MyClass *x) 二、 填空题( 前16个空, 每空1分, 后2个空, 每空2分, 共20分) 1、 类和对象的关系可表述为: 类是对象的 , 而对象则是类的 。 2、 在C++中, 三种继承方式的说明符号为 、 和 , 如果不加说明, 则默认的继承方式为 。 3、 如果只想保留公共基类的一个复制, 就必须使用关键字 把这个公共基类声明为虚基类。 4、 若要把void fun()定义为类A的友元函数, 则应在类A的定义中加入语句 friend void fun(A &a) 。 5、 类的静态成员分为 静态数据成员 和 静态成员函数 。 6、 运算符重载要求保持其原来的操作数个数、 结合性 优先级_ _ 、 和语法结构。 7、 经过关键字 能够声明模板, 经过关键字 指定函数模板的类型参数, 有几个类型参数就有几个类型关键字。 8、 列出C++中两种用户自定义的数据类型: 、 。 9、 构造函数的作用是 。 10、 后置自增运算符”++”重载为类的成员函数( 设类名为A) 的形式为 。 1. 抽象 、 实例 2. public 、 private _ ___、 protected 、 private _ ___ 3. virtual ___ 4. friend void fun(A &a) _ 5. 静态数据成员 、 静态成员函数 6. 结合性 、 优先级_ ___ 7. Template 、 class(或typename) 8. 类 、 结构体 ___ 9. 在创立对象时初始化对象的数据成员 ___ 10. A operator++(int) 三、 阅读下面3个程序, 写出程序运行时输出的结果: ( 共13分) 1、 #include<iostream > using namespace std; void fun(int &a,int &b) { int p; p=a; a=b; b=p; } void exchange(int &a,int &b,int &c) { if(a<b)fun(a,b); if(a<c)fun(a,c); if(b<c)fun(b,c); } int main() { int a=12,b=89,c=56; exchange(a,b,c); cout<<"a="<<a<<",b="<<b<<",c="<<c<<endl; return 0; }1、 a=89,b=56,c=12 2、 #include <iostream> using namespace std; class Date {public: Date(int,int,int); Date(int,int); Date(int); Date(); void display(); private: int month, day, year; }; Date::Date(int m,int d,int y):month(m),day(d),year(y) { } Date::Date(int m,int d):month(m),day(d) {year= ;} Date::Date(int m):month(m){day=1; year= ; } Date::Date() {month=1; day=1; year= ; } void Date::display(){cout<<month<<"/"<<day<<"/"<<year<<endl;} int main() { Date d1(12,31, ); Date d2(12,31); Date d3(1); Date d4; d1.display(); d2.display(); d3.display(); d4.display(); return 0; } 2、 12/31/ 12/31/ 1/1/ 1/1/ 3、 #include <iostream> using namespace std; class A { public: A(){cout<<"constructing A "<<endl;} ~A(){cout<<"destructing A "<<endl;}}; class B: public A { public: B(){cout<<"constructing B "<<endl;} ~B(){cout<<"destructing B "<<endl;}}; class C : public B { public: C(){cout<<"constructing C "<<endl;} ~C(){cout<<"destructing C "<<endl;}}; int main() { C c1; return 0; }3、 constructing A constructing B constructing C destructing C destructing B destructing A 四、 编程题( 共27分) 1、 ( 10分) 已知复数类Complex的声明如下: class Complex {public: Complex(); //无参构造函数 Complex(double ); //转换构造函数 Complex(double, double);//有两个形参的构造函数 friend Complex operator+(Complex&, Complex&); //对”+”运算符进行重载 friend ostream& operator<<(ostream&, Complex&); //对”<<”运算符进行重载 friend istream& operator>>(istream&, Complex&); //对”>>”运算符进行重载 private: double real,imag; }; 要求: ( 1) 写出该类的所有构造函数的类外定义代码。 ( 2) 写出对运算符”+”、 ”<<”、 ”>>”进行重载的运算符重载函数的定义。 2、 ( 17分) 下列Shape类是一个表示形状的抽象类, area( )为求图形面积的函数, total( )则是一个通用的用以求不同形状的图形面积总和的函数。 class Shape {public: virtual double area()=0; }; double total(Shape *s[ ], int n) { double sum=0.0; for(int i=0; i<n; i++) sum+=s[i]->area( ); return sum; } 要求: ( 1) 从Shape类派生圆类(Circle)、 正方形类( Square) , 圆类新增数据成员半径( radius) , 正方形类新增数据成员边长( a) , 圆类和正方形类都有构造函数, 修改、 显示数据成员值的函数, 求面积函数。 ( 2) 写出main()函数, 计算半径为5.5的圆和边长为9.9的正方形的面积和( 必须经过调用total函数计算) 。 《面向对象程序设计C++》期末考试试卷( B) 标准答案 班级: 姓名: 学号: 分数: 题号 一 二 三 四 总分 得分 一、 单项选择题( 每小题2分, 共40分) 1-5.D A C A D 6-10.D B C D C 11-15.D C B D B 16-20.A D C C C 二、 填空题( 前16个空, 每空1分, 后2个空, 每空2分, 共20分) 1. 抽象 、 实例 2. public 、 private _ ___、 protected 、 private _ ___ 3. virtual ___ 4. friend void fun(A &a) _ 5. 静态数据成员 、 静态成员函数 6. 结合性 、 优先级_ ___ 7. Template 、 class(或typename) 8. 类 、 结构体 ___ 9. 在创立对象时初始化对象的数据成员 ___ 10. A operator++(int) ___ 三、 阅读程序( 共13分) 1、 a=89,b=56,c=12 2、 12/31/ 12/31/ 1/1/ 1/1/ 3、 constructing A constructing B constructing C destructing C destructing B destructing A 四、 编程题( 共27分) 1、 ( 10分) Complex::Complex(){real=0;imag=0;} Complex::Complex(double r){real=r;} Complex::Complex(double r,double i){real=r;imag=i;} Complex operator+(Complex &c1,Complex &c2) { Complex c; c.real=c1.real+c2.real; c.imag=c1.imag+c2.imag; return c; } ostream& operator << (ostream& output,Complex& c) { output<<"("<<c.real<<"+"<<c.imag<<"i)"<<endl; return output; } istream& operator >> (istream& input,Complex& c) { cout<<"input real and imaginary part of complex number:"; input>>c.real>>c.imag; return input; } 2、 ( 17分) class Circle:public Shape {public: Circle(double r){radius=r;} void set() { cout<<"Please input the value of the circle:"<<endl; cin>>radius; } void show() { cout<<"the radius of the circle="<<radius<<endl; } double area() {return 3.14159*radius*radius;} private: double radius; }; class Square:public Shape {public: Square(double a){this->a=a;} void set() { cout<<"Please input the value of a:"<<endl; cin>>a; } void show() { cout<<"a="<<a<<endl; } double area(){return a*a;} private: double a; }; int main() { Circle C(5.5); C.show(); Square S(9.9); S.show(); Shape *s[]={&C,&S}; cout<<"total="<<total(s,2)<<endl; return 0; }展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




面向对象程序设计C期末试卷及标准答案B样本.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/4460732.html