面向对象程序设计试题A卷_第1页
面向对象程序设计试题A卷_第2页
面向对象程序设计试题A卷_第3页
面向对象程序设计试题A卷_第4页
面向对象程序设计试题A卷_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程面向对象程序设计考试形式(闭卷,考试)判断题(正确的叙述打“/”,错误的叙述打“X”,每题1分共10分)在C++中,所有运算符均可重载。(X)面向对象程序设计的三大特征是:封装、继承和多态。(V)函数原型:f(int*&p);中的形参p是对指针变量的引用。(V)一个类的常数据成员对该类的所有对象来说,其值都是相同的。(X)类的友元函数、构造函数和析构函数均属于类的成员函数。(X)类的静态成员函数只能直接引用该类中说明的静态成员。(V)子类的对象可以赋值给基类对象,通过这个基类对象可访问到子类新增加的成员。(X)C++类族中,构造函数和析构函数不能被派生类继承。(V)在一个类族中,构造函数不能定义为虚函数,但析构函数可以定义为虚函数。(V)若类A是类B的友元,类B是类C的友元,则类A是类C的友元。(X)填空题(每格1分共14分)C++中的数据类型bool型的值域是:{false,true}。在已经定义了整型指针变量ip后,为了动态得到一个存储20个int型数的存储空间并由ip所指向,应使用语句:ip=newint[20];释放这些存储空间应使用语句:delete[]ip;。假定classA为一个类,则执行“classAa1[15],a2[25];”语句时,系统自动调用该类的构造函数的总次数为:40。在C++中不使用宏替换去定义符号常量Pai的值为3.14159可使用语句:constfloatPai=3.14159;已知fun()的函数原型为:intfun(float);现要定义一个指向该函数的指针变量pf,贝°pf的定义语句为:int(*pf)(float)=&fun;设函数max是由函数模板实现的,并且max(3.5,5,8)和max(10,14.3,5)都是正确的函数调用,则该函数模板具有—个类型参数。在一个链表中,最后一个节点的指针域的值通常是:0(或NULL)。对于long类型的数据256873存储为文本文件占用£个字节。含有纯电数的类叫抽象类。它的一个重要特点是不能实例化,它的主要

作用是作为一个类族的接口。一个类的常成员函数,通常作为常对象的对外接口。C++的I/O系统通过鱼的机制实现文件和控制台的输入输出操作。在OOP中多态是指同样的消息被不同对象接收时可产生不同的行为三单项选择题(把答案填在下表内,否则不得分。每题2分共20分)题号12345678910答案ADCABBDCAB在C++中不能实现对属性与操作封装的是:(A)A)枚举B)类C)结构体D)共用体在下面的字符数组定义中,哪一个有语法错误?(D)A) chara[10]="abcdefg”;B)chara[]="x+y=55.”C)chara[15]; D)chara[20]=’A’;在C++中,下列关键词中不是运算符的是:(C)D)deleteA)sizeofB)newC)volatileD)delete关于构造函数的说法,正确的是(A)A)它在对象被创建时由系统自动调用 B)可返回值C) 其名可由用户命名,可与类名无关D) 没有定义构造函数时,系统将不会作任何处理。对于"int(*pa)[5];”的描述中,(B)是正确的。A) pa是一个指向某数组中第5个元素的指针,该元素是int型变量B) pa是一个指向数组的指针,所指向的数组包含5个int型元素C) pa[5]表示数组的第5个元素的值,是int型的值D) pa是一个具有5个元素的指针数组,每个元素是一个int型指针有如下类声明:则A类的成员x的访问属性是:(B)classA{intx;};A)公有数据成员 B)私有数据成员C)保护数据成员D)不能确定不属于多态技术的是:classA{intx;};A)公有数据成员 B)私有数据成员C)保护数据成员D)不能确定不属于多态技术的是:(D)A)模板技术B)重载技术C)虚函数技术D)内联函数技术在类的外部,通过该类对象,可以被访问的成员有:(C)A)所有类成员C)public的类成员B)private的类成员D)public或protected的类成员9.已知:display()函数是一个类的常成员函数,它无返回值并无参,下列表示中,能正确表示其函数原型的是(A)A)voiddisplay()const;C)voidconstdisplay();B)D)constvoiddisplay();voiddisplay(const);10.下面描述中,表达错误的是(B)公有继承时基类中的public成员在派生类中仍是public的公有继承时基类中的private成员在派生类中仍是private的公有继承时基类中的protected成员在派生类中仍是protected的私有继承时基类中的public成员在派生类中是private的四.写出程序的运行结果(每题5分共20分,不是全对时,可按正确数的占比酌情给分)注意:必须严格按程序中输出语句设置的输出格式写出运行结果。1.#include<iostream>usingnamespacestd;intg=100;voidf(intg,intx){staticinty=150;::g+=10;y+=10;cout<<"g="<<g<<",x="<<x<<",y="<<y<<",::g="<<::g<<endl;}voidmain(){inta=200;cout<<"First:";f(g,a);a+=20;g+=20;cout<<"Second:";f(g,a);}运行结果:First:g=100,x=200,y=160,::g=110Second:g=130,x=220,y=170,::g=1402.#include<iostream>usingnamespacestd;voidswap(int&a,int&b,int*c,int*d,inte,intf){inttmp;tmp=a;a=b;b=tmp;tmp=e;e=f;f=tmp;tmp=*c;*c=*d;*d=tmp;cout<<"a,b,c,d,e,f="<<a<<","<<b<<","<<*c<<","<<*d<<","<<e<<","<<f<<endl;}voidmain(){inti=10,j=20,k=30,m=40,n=50,p=60;swap(i,j,&k,&m,n,p);cout<<"i,j,k,m,n,p="<<i<<","<<j<<","<<k<<","<<m<<","<<n<<","<<p<<endl;}运行结果:a,b,c,d,e,f=20,10,40,30,60,50i,j,k,m,n,p=20,10,40,30,50,603.#include<iostream>usingnamespacestd;classCB(public:inta;CB(intx){a=x;}voidshowa(){cout<<"ClassCB--a="<<a<<endl;}};classCD:publicCB{public:inta;CD(intx,inty):CB(x){a=y;}voidshowa(){cout<<"ClassCD--a="<<a<<endl;}voidprint2a(){cout<<"a="<<a<<endl;cout<<"CB::a="<<CB::a<<endl;}};voidmain(){CBCBobj(100);CBobj.showa();CDCDobj(300,600);CDobj.showa();CDobj.CB::showa();CDobj.print2a();}运行结果:ClassCB--a=100ClassCD--a=600ClassCB--a=300a=600CB::a=3004.#include<iostream>#include<math.h>usingnamespacestd;classPoint{public:Point(floatxx=0,floatyy=0){X=xx;Y=yy;}voidprint(){cout<<”(”<<X<<”,”<<Y<<”)”;}friendfloatfDist(Point&a,Point&b);Pointoperator+(Point&p)(Pointtemp;temp.X=(X+p.X)/2;temp.Y=(Y+p.Y)/2;returntemp;}private:floatX,Y;};floatfDist(Point&p1,Point&p2)(doublex=double(p1.X-p2.X);doubley=double(p1.Y-p2.Y);returnfloat(sqrt(x*x+y*y));}classCircle:publicPoint(public:Circle(floatx=0,floaty=0,floatr=0):Point(x,y)(R=r;}floatarea()(return3.14*R*R;}voidprint()(cout<<"[";Point::print();coutvv”,"vvRvv"]"vvendl;}private:floatR;};voidmain()(Pointp1(1,1),p2(4,5),midp;coutvv"Thedistanceis:"vvfDist(p1,p2)vvendl;midp=p1+p2;midp.print();coutvvendl;Circlemyc(2,3,10);myc.print();coutvv"Area="vvmyc.area()vvendl;}运行结果:Thedistanceis:5(2.5,3)[(2,3),10]Area=314

五.程序设计(共36分)1.使用穷举法编程序解决搬砖问题。有36块砖,由成年男、女和小孩共30人来搬,男子每人搬4块,女子每人搬3块,两个小孩抬一块,要求一次全搬完,求需要男、女、小孩的全部可能人数。(8分)#include<iostream>usingnamespacestd;voidmain()(intmen,women,child;for(men=0;men<=9;men++)(1分)(1分)for(women=0;women<=12;women++)for(child=0;child<=36;child+=2)(1分)(1分)#include<iostream>usingnamespacestd;voidmain()(intmen,women,child;for(men=0;men<=9;men++)(1分)(1分)for(women=0;women<=12;women++)for(child=0;child<=36;child+=2)(1分)(1分)(1分)if(men*4+women*3+child/2==36&&men+women+child==30)cout<<"men:"<<men<<"women:"<<women<<"child:"<<child<<endl;(3分)2.编写程序实现在屏幕上显示一个文本文件的内容;要求被显示内容的文件名与路径由命令行参数来提供(即main函数需带参数),即在命令行下能够执行如下格式的命令:命令名文本文件名;当命令行格式错误时,能输出提示信息。(12分)#include<iostream>#include<fstream>#include<process.h>usingnamespacestd;voidmain(intargc,char*argv[])((2分)(1分)if(argc!=2)(cout<<"命令行书写格式错误"<<endl;exit(1);ifstreamfin(argv[1],ios::binary);charch;fin.get(ch);while(!fin.eof())((3分)(1分)cout<<ch;fin.get(ch);(4分)fin.close();(1分)3.设计一个栈类(stack),其特点为:只有一个对数据进行存入和取出的端口;数据后进者先出,即最后被存入的数据将首先被取出。要求:该栈能处理一定个数的float型数据,具有构造函数、判断空栈和满栈函数、压栈、弹栈等基本的成员函数;并重载输出运算符“<<”实现栈内数据全部弹出并显示在屏幕上;用户操作非法时,有相应提示信息;无需书写main#include<iostream>usingnamespacestd;constintmaxsize=6; (1分)classstack(private:floatdata[maxsize];inttop; (2分)public:stack(void);boolempty(void);boolfull(void);voidpush(floata);floatpop(vo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论