还剩11页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
杭州电子科技大学学生考试卷卷1c2b3c4b5c6a7c8a9cA考试课程考试日期面向对象程序设计6月口成绩10b课程号BI002I00教师号任课教师姓名楼永坚
11.考生姓名学号8位座位号年级05专业050511/2/3
二、选择题20分・、判断题15分正确打,错的打X
1.关键字说明对象或变量初始化后不会被修改友元函数用于允许一个函数访问不相关类的私有部分
1.a.static b.public c.const d.inline.构造函数能够被继承22如果调用带有默认参数的函数时缺少一个参数,则动态绑定的多态性是经过虚函数实现的
3.参数就作为这一参数在中,传引用调用等同于传地址调用
4.C++a.第一个b.最后一个c.中间一个d.以上都不重载函数必须有不同的参数列表
5.是能够用释放不是用运算符分配的内存
6.delete new
3.成员函数可声明为静态的,条件是它不访问类成员类成员的默认访问模式是
7.privatea.静态b.常数c.非静态d.公共在类中的析构函数能够声明为:
8.Time voidTimeint;
4.内联函数执行起来比标准函数o对象必须初始化
9.consta.更慢b.更快c.次数更多d,以上都不是在中,只能重载己有的运算符
10.C++
5.默认参数的值由___________________提供1V2X3J4X5J6X7J8X9Ja.该函数b.调用程序c.上述二者d.以上都不是10V
6.在C++中,混合类型表示式o
二、选择题20分a.允许存在b.为一错误c.从int至float d.protected:Shapedouble top,bottom,height;*pt
[5]={circle,square,rectangle,trapezoid,triangle;};double areas=
0.0;forint i=0;i5;i++class Triangle:public Shape{areas=areas+pt[i]-area;}{public:cout/ztotol ofal1areas=zzareasendl;Triangle doublew,double h:widthw,heighth{}return0;virtual double area const{return
0.5*width*height;}\Jprotected:double width,height;;int main1Circle 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;从float到int
⑧ntptr=^another;ntptr是常量指针,不能指向别的的变量
7.表示式longintVar也可表示为2
①int arrp;应改为int*arrp;a.intvar=long;b.intVar longc.longintVar
③delete arrp;应改为delete[]arrp;d.以上都不是3return basedata;//在bordejandjnenu中引用basedata时产生
8.静态数据成员的生存期二义性,应使用虚基类a.与整个程序相同b.不长于类的生存期应改为c.取决于创立的对象数d.以上都不是class border:virtual publicwindow
9.要让一个类中的所有对象具有共同的数据,请使用;class menu:virtual publicwindowa.常数成员变量b.私有数据成员;c.静态数据成员d.以上都是
10.设置虚基类的目的是i
②const int*ptr=indcx;a.简化程序b.消除二义性c.提高运行效率d.减少目标3int*const ntptr=index;代码
④*ptr=555;
三、指出下列程序片段中的错误标号,写出正确语句或解释错在何处@*ntptr=666;20分@int another=8;
①int index=675;1@*ptr=555;ptr是指向整®ptr=another;数常量的指针@ntptr=another;{return basedata;2@int arrp;J2arrp=new int
[15];
③delete arrp;4)改正下面程序段中的错误,写出整个正确的程序段3)下面程序为什么会编译错误,并改正错误(提出解决办法)templateTclass windowvoid printT*a{couta,\nf;}protected:void mainintbasedata;i};const intx=0;class border:public windowcouty,\n;{};int y;class menu:public windowx=5;;int*pclass border and menu:public border,public menuP=y;print p;public:return0;int showA x80,
0.5,y100,
0.2;
四、写出下面程序的执行结果15分coutcount xJ,count y\n;1#include iostreamcout«count x«*\n,;using namespace std;return0;class A{friend double countA;执行结果public:A doublet,double r:total t,rate r{}2private:#includeiostreamdouble total;using namespacestd;double rate;class Count{;private:doublecountAastatic intcounter;{int objid;a.total+=a.rate*a.total;return a.total;Count;//constructorstatic void display_total;//static functionintmainvoidpublic:voiddisplay;void Count::display“Count;//destructor};coutObject IDis,,obj_idendl;int Count::counter;//definition ofstatic datamember}Count::Count//constructor intmainvoidI Icounter++;Count al;obj_id=counter;Count::display_total;}Count a2,a3,a4;Count::〜Count//destructor Count::display total;a
2.display;counter一;a
4.display;return0;cout/zObject number”〈obj_id〃being destroyed”;iJ JvoidCount::display_total//static function3#include iostreamusing namespacestd;cout〃Number ofobjects createdis=/,counter«endl;class BASE}char c;class Apublic:_______1________BASE charn:c n{}char name
[80];virtual BASEO{cout«c;}public:;A—2{3}class DERIVED:public BASE{;char c;class B4public:public:DERIVED charn:BASE n+l,c n{Bconst char*n5{}DERIVED{cout«c;}void PrintName{cout«,name:«name«endl;};;;void mainintmainvoid{DERIVED CX3;B blLing Li”;return0;bl.PrintName;
五、程序填空10分#include iostreamusing namespacestd;//执行结果name:Ling Li
六、编程题20分
1.编写程序定义抽象基类Shape,由它派生出五个派生类:Circle圆形、Square正方形、
一、判断题15分面向对象程序设计6月口成绩考试课程考试口期课程号1V2X3V4X5V6X7V8X9VB1002100教师号任课教师姓名楼永坚考生姓名学号8位座位号10V年级05专业050511/2/3
二、选择题20分Rectangle长方形、Trapezoid梯形和Triangle三角形,用虚函数1c2b3c4b5c6a7c8a9c分别计算各种图形的面积,并求出它们的和要求用基类指针数组使10b它的每一个元素指向一个派生类的对象
三、指出下列程序片段中的错误,并解释错在何处20分注主函数中定义如下对象Circle circle
12.6;1@*ptr=555;ptr是指向整数常量的指针Square square
3.5;
⑧ntptr二another;ntptr是常量指针,不能指向别的的变量Rectangle rectangle
4.5,
8.4;2
①int arrp;应改为int*arrp;Trapezoid trapezoid
2.0,
4.5,
3.2;Triangle triangle
4.5,
8.4;杭州电子科技大学学生考试卷A答案
③delete arrp;应改为delete[]arrp;//x=5;x为const,去掉该句3return basedata;//在borderandmenu中引用basedata时产生int*p;二义性,应使用虚基类P二y;应改为printp;//return0;main返回为void,去掉该句class border:virtual publicwindow;}class menu:virtual publicwindow
四、写出下面程序的执行结果15分{};4整个正确的程序段参考21^include iostream.h〃加本句120,120180templatetypename T〃力口typename lunberofobjectscreatedis-1limberofobjectscreatedis=4ibjectIDis2voidprintT*a bjectIDis4ibject number4being destroyedobjectnumber3being destroyedibject number2being destroyed{cout«a«,\n,;}ibjectnumber1being destroyed3XYvoid main{int y=10;//y应先声明后使用,并给初值
五、程序填空10分const intx=0;1protected:或public2const char*n3strcpy name,n;cout«y«,\n;4:public A或protected A5:An
六、编程题20分{public:
1.Square doubles:sides{}ttinclude iostreamvirtual doublearea const{return side*side;}usingnamespacestd;protected:class Shapedouble side;{public:;virtual doublearea const=0;class Rectangle:public Shape;public:Rectangledouble w,double h:widthw,heighth{}class Circle:public Shapevirtualdoub1earea const{return width*height;}{public:protected:Circle doubler:radiusr{}double width,height;virtual doubleareaO const{return
3.14159*radius*radius;};;protected:double radius;class Trapezoid:public Shape;public:Trapezoiddouble t,double b,doubleclass Square:public Shapeh:topt,bottomt,height h{}virtual doubleareaconst{return
0.5*top+bottomheight;}。
个人认证
优秀文档
获得点赞 0