您好,欢迎访问三七文档
当前位置:首页 > 高等教育 > 习题/试题 > 2013面向对象程序设计期末考试试卷A
温馨提示:端正考风、严肃考纪、诚信参加考试凡是代考、使用通讯设备作弊、二次作弊,一经发现开除学籍。专用考试纸请勿浪费卷第1页共6页专业班级学号姓名东华理工大学2013—2014学年第一学期考试试卷(A)面向对象程序设计课程闭/开卷课程类别:考试/考查题号一二三四五六七八九总分分数评卷人一、程序填空题(20分,每空2分)1、以下程序主要实现了动态申请存储空间,使用完成后能够释放申请的空间。根据注释信息,请在________上填入正确内容。#includeiostreamusingnamespacestd;intmain(){int*s;s=newint(60)__;//为s动态申请一个int类型的空间并存入数值60if(s==NULL)exit(0);cout*sendl;deletes__;//释放s所指向的空间。return0;}2、以下程序主要实现了Point类的定义,完成拷贝函数的填写。根据注释信息,请在________上填入正确内容。classPoint{public:Point(intxx=0,intyy=0){x=xx;y=yy;}//构造函数Point(Point&p);//拷贝构造函数intGetX(){returnx;}intGetY(){returny_;}//返回y坐标private:intx,y;};Point::Point(Point&p){x=p.x__;y=p.y;}3、以下程序主要利用类的友元函数实现了运算符的重载,根据注释信息,请在________上填入正确内容。#includeiostreamusingnamespacestd;classComplex{//复数类定义public://外部接口Complex(doubler=0.0,doublei=0.0):real(r),imag(i){}//构造函数friendComplexoperator+(constComplex&c1,constComplex&c2);//运算符+重载private://私有数据成员doublereal;//复数实部doubleimag;//复数虚部};Complexoperator+(constComplex&c1,constComplex&c2){complextemp___;//定义临时变量temp.real=c1.real+c2.real;temp.imag=c1.imag+c2.imag__;returntemp;}4、以下程序主要实现类的继承,根据注释信息,请在________上填入正确内容。#includeiostreamusingnamespacestd;classPoint{//基类Point点类的定义public:Point(floatx1,floaty1)温馨提示:端正考风、严肃考纪、诚信参加考试凡是代考、使用通讯设备作弊、二次作弊,一经发现开除学籍。专用考试纸请勿浪费卷第2页共6页专业班级学号姓名{x=x1;y=y1;}private:floatx,y;//定义坐标点};classRectangle:publicPoint__{//派生类Rectangle为矩形类,公有继承Point类public:Rectangle(floatc,floatd,floatw,floath):Point(c,d)_//形参c,d用于初始化基类的数据成员x,y{width=w;heigh=h;}private:floatwidth,heigh;//定义矩形的高、宽};5、在下面程序的横线处填上适当的语句,使该程序执行结果为10#includeclassMyClass{public:MyClass(inta){x=a;}intGETNUM()______//定义函数{returnx__;//取x值}private:intx;};intmain(){MyClassmy(10);coutmy.GETNUM()ENDL;return0;}二、程序改错题(20分,每题5分)以下每个程序各有两个错误,请改正,使其能按照要求得到正确的运行结果,可以直接在错误的语句边修改。1、定义类Point,并在main函数中定义Point对象并显示其位置。#includeiostreamusingnamespacestd;classPoint{private:intx,y=20;//此行有错intx,y;public:init(inta,intb)//构造函数,此行有错Point(inta,intb);{x=a;y=b;}voidshow(){coutx=xy=y;}};voidmain(){Pointpt(24,50);pt.show();}2、函数swapint用于实现两个整数交换,输出结果是。#includeiostreamusingnamespacestd;voidswapint(inta,intb);voidmain(){inta1=1,b1=2;couta1=a1,b1=b1endl;callswapint(a1,b1);//此行有错swapint(a1,b1);couta1=a1,b1=b1endl;}voidswapint(inta,intb)//引用形参,此行有错voidswapint(int&a,int&b){intt;温馨提示:端正考风、严肃考纪、诚信参加考试凡是代考、使用通讯设备作弊、二次作弊,一经发现开除学籍。专用考试纸请勿浪费卷第3页共6页专业班级学号姓名t=a;a=b;b=t;}3、生成具有10个元素的动态数组,并对其进行输出。#includeiostreamusingnamespacestd;voidmain(){inta[10];//动态数组定义,此行有错int*a=newint[10];for(inti=0;i10;i++){a[i]=i;couta[i]endl;}deletea;//此行有错delete[]a;}4、定义类A,max函数是A的友元函数,通过max实现两个A类对象的较大值。#includeiostreamusingnamespacestd;classA{private:intx;public:A(inti){x=i;}A(){x=0;}intmax(Aa,Ab);//此行有错freindintmax(Aa,Ab);};intmax(Aa,Ab){return(a.xb.x)?a.x:b.x;}voidmain(){Aa(3),b(5);couta.max(a,b)endl;//此行有错coutmax(a,b)endl;}三、读程题,写出程序的运行结果。(每小题6分,共30分)1、#includeiostream.hvoidswap(intx,int&y,int*z);voidmain(){inta,b(10),c;a=b/3;c=a/2;couta=a,b=b”c=”cendl;swap(a,b,&c);couta=a,b=b”c=”cendl;}voidswap(intx,int&y,int*z){intt;t=x;x=y;y=t;*z=t;}a=3,b=10,c=1a=3,b=3,c=3Pressanykeytocontinue_2、#includeiostreamusingnamespacestd;voidfun(inta,intb=2,intc=3){couta‘’b‘’cendl;}voidmain(){温馨提示:端正考风、严肃考纪、诚信参加考试凡是代考、使用通讯设备作弊、二次作弊,一经发现开除学籍。专用考试纸请勿浪费卷第4页共6页专业班级学号姓名fun(10);fun(10,20);fun(10,20,30);}102310203102030Pressanykeytocontinue_3、voidmain(){inta[]={5,6,3,7,4,8,9,2};int*p=a;intmin,max;min=max=0;for(inti=1;i8;i++){if(p[min]p[i])min=i;if(p[max]p[i])max=i;}coutmax”“p[max]”“min”“p[min]endl;}9627Pressanykeytocontinue_4、#includeiostream.h#includestring.hclassperson{intage;charname[10];public:person(inti=0,char*str=xxx){age=i;strcpy(name,str);}voiddisplay(){coutnameisageyearsold.\n;}};voidmain(){persond1(20);d1.display();persond2(50,li-gang);d2.display();}xxxis20yearsold.li-gangis50yearsold.Pressanykeytocontinue_5、#includeiostreamusingnamespacestd;classA{public:A(){}virtualvoidfunc(){coutDestructorAendl;}~A(){func();}};classB:publicA{public:B(){}voidfunc(){coutDestructorBendl;}~B(){func();}};voidmain(){Ba;A*p;p=&a;p-func();温馨提示:端正考风、严肃考纪、诚信参加考试凡是代考、使用通讯设备作弊、二次作弊,一经发现开除学籍。专用考试纸请勿浪费卷第5页共6页专业班级学号姓名a.func();}5.DestructorBDestructorBDestructorAPressanykeytocontinue_温馨提示:端正考风、严肃考纪、诚信参加考试凡是代考、使用通讯设备作弊、二次作弊,一经发现开除学籍。专用考试纸请勿浪费卷第6页共6页专业班级学号姓名四、编程题。(每题10分,共30分)1.编写从键盘输入一行字符,统计出这行字符的字母个数、数字个数和其他符号的个数(提示读一行字符用cin.getline(s,80),s为数组名)。#includeiostream#includestringusingnamespacestd;voidmain(){chars[80];inta=0,b=0,c=0;cin.getline(s,80);for(inti=0;i80;i++){if(s[i]'a'&&s[i]'z'||s[i]'A'&&s[i]'Z')a=a+1;elseif(s[i]'0'&&s[i]'9')b=b+1;elsec=c+1;}cout字母个数:aendl数字个数:bendl其他字符个数:cendl;}2.有一圆环,其中小圆半径为3.5,大圆半径为8。编程定义一个circle类,含有私有变量半径r,构造函数能够初始化r、成员函数Area能计算圆面积。主函数中通过定义2个对象(大圆和小圆)来计算出圆环的面积。#includeiostreamusingnamespacestd;classcircle{private:doubler;public:circle(doublerr){r=rr;}doublearea(){return3.14*r*r;}};voidmain(){circlec1(3.5);circlec2(8);cout圆环的面积为:c2.area()-c1.area()endl;}3.设计类Car,私有数据成员有名字name、车龄age,
本文标题:2013面向对象程序设计期末考试试卷A
链接地址:https://www.777doc.com/doc-2955408 .html