2023年C++面向对象程序设计-期末考试试题.doc
《2023年C++面向对象程序设计-期末考试试题.doc》由会员分享,可在线阅读,更多相关《2023年C++面向对象程序设计-期末考试试题.doc(8页珍藏版)》请在咨信网上搜索。
杭州电子科技大学学生考试卷(A)卷 考试课程 面向对象程序设计 考试日期 20236月 日 成绩 课 程 号 B1002100 教 师 号 任课教师姓名 楼永坚 考生姓名 学号(8位) 年级 05 专业 050511/2/3 座位号 一、 判断题(15分)(对的打√,错的打╳) 1. 友元函数用于允许一个函数访问不相关类的私有部分。 2. 构造函数可以被继承。 3. 动态绑定的多态性是通过虚函数实现的。 4. 在c++中,传引用调用等同于传地址调用。 5. 重载函数必须有不同的参数列表。 6. 可以用delete释放不是用new运算符分派的内存。 7. 类成员的默认访问模式是private。 8. 在类Time中的析构函数可以声明为:void ~Time(int); 9. const对象必须初始化。 10. 在c++中,只能重载已有的运算符。 1)√ 2)╳ 3)√ 4)╳ 5)√ 6)╳ 7)√ 8)╳ 9)√ 10)√ 二、选择题(20分) 1) c 2)b 3) c 4)b 5)c 6) a 7)c 8)a 9)c 10)b 11. 二 、选择题(20分) 1. 关键字 ____________ 说明对象或变量初始化后不会被修改。 a. static b. public c. const d. inline 2. 假如调用带有默认参数的函数时缺少一个参数,则______________参数就作为这一参数。 a. 第一个 b. 最后一个 c. 中间一个 d. 以上都不是 3. 成员函数可声明为静态的,条件是它不访问 __________类成员。 a. 静态 b. 常数 c. 非静态 d. 公共 4. 内联函数执行起来比标准函数_______________。 a. 更慢 b. 更快 c. 次数更多 d. 以上都不是 5. 默认参数的值由___________________提供。 a. 该函数 b. 调用程序 c. 上述两者 d. 以上都不是 6. 在 C++ 中,混合类型表达式_____________。 a. 允许存在 b. 为一错误 c. 从 int 到 float d. 从 float 到 int 7. 表达式 long(intVar) 也可表达为 _______________。 a. intvar = long; b. intVar(long) c. (long)intVar d. 以上都不是 8. 静态数据成员的生存期_________________。 a. 与整个程序相同 b. 不长于类的生存期 c. 取决于创建的对象数 d. 以上都不是 9. 要让一个类中的所有对象具有共同的数据,请使用__________________。 a. 常数成员变量 b. 私有数据成员 c. 静态数据成员 d. 以上都是 10. 设立虚基类的目的是: a.简化程序 b.消除二义性 c.提高运营效率 d.减少目的代码 三 、指出下列程序片段中的错误标号,写出对的语句或解释错在何处。(20分) ①int index=675; 1)④*ptr=555; ptr是指向整数常量的指针 ⑧ntptr=&another; ntptr是常量指针,不能指向别的的变量 2)①int arrp; 应改为:int *arrp; ③delete arrp; 应改为:delete [ ]arrp; 3)return basedata;// 在border_and_menu中引用basedata时产生二义性,应使用虚基类 应改为: class border:virtual public window { }; class menu: virtual public window { }; 1) ②const int *ptr=&index; ③int *const ntptr=&index; ④*ptr=555; ⑤*ntptr=666; ⑥int another=8; ⑦ptr=&another; ⑧ntptr=&another; 2) ①int arrp; ②arrp=new int[15]; ③delete arrp; 3)下面程序为什么会编译错误,并改正错误(提出解决办法)。 class window { protected: int basedata; }; class border: public window { }; class menu: public window { }; class border_and_menu: public border, public menu { public: int show() { return basedata; } 4)改正下面程序段中的错误,写出整个对的的程序段 template<T> void print(T *a) { cout<<a<<’\n’;} void main( ) { const int x=0; cout<<y<<’\n’; int y; x=5; int* p p=&y; print(p); return 0; } 四 、写出下面程序的执行结果:(15分) 1)#include <iostream> using namespace std; class A {friend double count(A&); public: A(double t, double r):total(t),rate(r){} private: double total; double rate; }; double count(A& a) { a.total+=a.rate*a.total; return a.total; } int main(void) { A x(80,0.5),y(100,0.2); cout<<count(x)<<','<<count(y)<<'\n'; cout<<count(x)<<'\n'; return 0; } 执行结果: 2) #include<iostream> using namespace std; class Count{ private: static int counter; int obj_id; public: Count(); //constructor static void display_total(); //static function void display(); ~Count(); //destructor }; int Count::counter; //definition of static data member Count::Count() //constructor { counter++; obj_id = counter; } Count::~Count() //destructor { counter--; cout<<"Object number "<<obj_id<<" being destroyed\n"; } void Count::display_total() //static function { cout <<"Number of objects created is = "<<counter<<endl; } void Count::display() { cout << "Object ID is "<<obj_id<<endl; } int main(void) { Count a1; Count::display_total(); Count a2, a3,a4; Count::display_total(); a2.display(); a4.display(); return 0; } 3)#include <iostream > using namespace std; class BASE { char c; public: BASE(char n):c(n){} virtual ~BASE(){cout<<c;} }; class DERIVED:public BASE{ char c; public: DERIVED(char n):BASE(n+1),c(n){} ~DERIVED(){cout<<c;} }; int main(void) { DERIVED('X'); return 0; } 五、 程序填空:(10分) #include <iostream> using namespace std; class A { ______(1)______ char name[80]; public: A( ____(2)______ ) {____(3)______ } }; class B_____(4)_______ { public: B(const char*n)_____(5)_______{} void PrintName( ) {cout<<”name:”<<name<<endl;}; }; void main( ) { B b1(“Ling Li”); b1.PrintName( ) ; } // 执行结果: name: Ling Li 六、编程题(20分) 1.编写程序:定义抽象基类Shape,由它派生出五个派生类:Circle(圆形)、Square(正方形)、 Rectangle( 长方形)、Trapezoid (梯形)和Triangle (三角形),用虚函数分别计算各种图形的面积,并求出它们的和。规定用基类指针数组。使它的每一个元素指向一个派生类的对象。 注:主函数中定义如下对象 Circle circle(12.6); Square square(3.5); Rectangle rectangle(4.5,8.4); Trapezoid trapezoid(2.0,4.5,3.2); Triangle triangle(4.5,8.4); 杭州电子科技大学学生考试卷(A)答案 考试课程 面向对象程序设计 考试日期 20236月 日 成绩 课 程 号 B1002100 教 师 号 任课教师姓名 楼永坚 考生姓名 学号(8位) 年级 05 专业 050511/2/3 座位号 一、判断题(15分) 1)√ 2)╳ 3)√ 4)╳ 5)√ 6)╳ 7)√ 8)╳ 9)√ 10)√ 二、选择题(20分) 1) c 2)b 3) c 4)b 5)c 6) a 7)c 8)a 9)c 10)b 三 、指出下列程序片段中的错误,并解释错在何处。(20分) 1)④*ptr=555; ptr是指向整数常量的指针 ⑧ntptr=&another; ntptr是常量指针,不能指向别的的变量 2)①int arrp; 应改为:int *arrp; ③delete arrp; 应改为:delete [ ]arrp; 3)return basedata;// 在border_and_menu中引用basedata时产生二义性,应使用虚基类 应改为: class border:virtual public window { }; class menu: virtual public window { }; 4)整个对的的程序段(参考): #include <iostream.h> //加本句 template<typename T> //加typename void print(T *a) { cout<<a<<'\n';} void main( ) { int y=10; //y应先声明后使用,并给初值 const int x=0; cout<<y<<'\n'; //x=5; x为const,去掉该句 int* p; p=&y; print(p); // return 0; main返回为void ,去掉该句 } 四 、写出下面程序的执行结果:(15分) 1) 2) 3)XY 五、程序填空:(10分) (1)protected:或public (2)const char *n (3)strcpy(name,n); (4):public A或:protected A (5):A(n) 六、编程题(20分) 1. #include <iostream> using namespace std; class Shape {public: virtual double area() const =0; }; class Circle:public Shape {public: Circle(double r):radius(r){} virtual double area() const {return 3.14159*radius*radius;}; protected: double radius; }; class Square:public Shape {public: Square(double s):side(s){} virtual double area() const {return side*side;} protected: double side; }; class Rectangle:public Shape {public: Rectangle(double w,double h):width(w),height(h){} virtual double area() const {return width*height;} protected: double width,height; }; class Trapezoid:public Shape {public: Trapezoid(double t,double b,double h):top(t),bottom(t),height(h){} virtual double area() const {return 0.5*(top+bottom)*height;} protected: double top,bottom,height; }; class Triangle:public Shape {public: Triangle(double w,double h):width(w),height(h){} virtual double area() const {return 0.5*width*height;} protected: double width,height; }; int main() { Circle circle(12.6); Square square(3.5); Rectangle rectangle(4.5,8.4); Trapezoid trapezoid(2.0,4.5,3.2); Triangle triangle(4.5,8.4); Shape *pt[5]={&circle,&square,&rectangle,&trapezoid,&triangle}; double areas=0.0; for(int i=0;i<5;i++) {areas=areas+pt[i]->area();} cout<<"totol of all areas="<<areas<<endl; return 0; }- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 C+ 面向 对象 程序设计 期末考试 试题
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文