您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 面向对象程序设计模拟卷(2013夏考)
浙江大学远程教育学院试题卷(模拟试卷)第1页共6页浙江大学继续教育学院试卷(面向对象)一、选择题1.在面向对象的程序设计中,定义类时保留字是用(B)A.typeB.classC.privateD.public2.不是面向对象系统的特性是(C)A.封装性B.继承性C.保密性D.多态性3.面向对象程序的主要结构特点之一(A)A.程序一般由类的定义和类的使用两部分组成。B。程序一般由函数定义和函数的使用两部分组成。C.程序一般由变量的定义和变量的使用两部分组成。D.程序一般由对象的定义和对象的使用两部分组成。4.类的概念是(D)A.所有对象的集合。B.同一类记录的集合。C.同一类数据的集合。D.对一组具有共同的属性特征和行为特征的对象的抽象。5.对象是现实世界中的一个实体,不是其特性的是(A)A.必须有一个关键字。B.每个对象必须有一个名字,以示区别。C.有属性。D.有操作。6.关于成员函数特征的下述描述,正确的是(C)A.成员函数一定是内置函数。B.成员函数一定要在类外定义完整。C.成员函数可以设置参数的默认值。D.成员函数一定要在类内定义完整。7.下列的各函数中,不是本类的成员函数的是(D)A.构造函数B.拷贝构造函数C.默认参数的构造函数D.友元函数8.不是构造函数的特征是(B)A.构造函数与类同名。B.构造函数必须说明返回类型。C.构造函数可以有形式参数。D.在创建对象时被执行。9.析构函数的特征是(C)A.析构函数可以有多个参数。B.析构函数只能在类体内定义。C.一个类中只能定义一个析构函数。D.一个类中能定义多个析构函数。10.类的友元可以访问该类的(B)A.只能是数据成员B.所有成员C.只能是成员函数D.只能是公有成员11.基类和派生类的相互关系正确的是(A)A.从基类到派生类称为派生。B.从基类到派生类称为继承。C.从派生类到基类称为派生。D.派生类包含了基类。12.一个基类可以派生出二个派生类,这种继承关系还是称为(C)A.多继承B.多重继承C.单继承D.双重继承13.基类成员在派生类中的访问属性描述中,错误的是(D)A.无论哪种派生,基类的公有成员允许派生类的成员函数访问。B.无论哪种派生,基类的保护成员允许派生类的成员函数访问。C.无论哪种派生,基类的私有成员不允许派生类的成员函数访问。D.无论哪种派生,基类的保护成员不允许派生类的成员函数访问。14.派生类构造函数的执行顺序正确的是(A)。浙江大学远程教育学院试题卷(模拟试卷)第2页共6页A.先执行基类的构造函数,再执行派生类的构造函数。B.先执行派生类的构造函数,再执行基类的构造函数。C.先执行派生类构造函数的函数体,再执行基类构造函数的函数体。D.以上都不是。15.不可重载的函数的是(B):A.普通的成员函数B.析构函数C.友元函数D.外部函数。16.面向对象的多态性不正确的是(A)。A.不同名字的函数定义相同功能。B.同一种运算符定义不同的操作。C.函数允许同名。D.派生类中可出现与基类同名的函数。17.可定义作运算符重载函数的是(A)A.类以外的函数B.构造函数C.析构函数D.主函数。18.对虚基类的论述,正确的是(D)A.基类中没有数据成员才考虑虚基类。B.基类中没有成员函数才考虑虚基类。C.基类没有类名才考虑虚基类。D.一个派生类有多个父类,而这多个父类又有一个共同基类,才考虑设置虚基类。19.关于抽象类的下列描述中,错误的是(A)A.如果一个类至少有一个纯虚函数,那么该类为抽象类。B.抽象类只能用作其他类的基类,不能建立抽象类对象。C.抽象类可以用来定义指针。D.抽象类可以作为函数的参数类型。20.C++用cout和cin进行输出/输入操作时需要包含文件是(B)A.fstream.hB.iostream.hC.stdio.hD.math.h二.概念填空题(每空1分,共20分)1.面向对象程序设计是不同于传统程序设计的一种新的程序设计范型。面向对象的程序设计被认为是程序设计方法学的一场实质性的革命(在导学中)。2.面向对象(O-O)程序设计是一种新的程序设计范型。这种范型的主要特征是:程序=对象+消息3.C++中类的定义内部,private:叫私有,protected:叫保护,public:叫公有。4.定义了类A,在程序中如出现:Aobj,ob[10],*p;的语句,则obj是对象、ob是对象数组、p是对象指针。5.C++中,运算符new用于动态分配内存,运算符delete用于动态释放内存。6.C++中,函数说明为voidfun(int&i)的引用叫参数引用,函数说明为void&fun(inti)的引用叫返回值引用。7.在一个类定义中,可以声明友元,友元可以是三种友元。非成员友元函数、成员友元函数、和友元类。8.类外的函数作运算符重载时,只能访问类的公有成员,而用类的友元运算符函数或成员运算符函数可以访问类的所有成员。9.C++的多态性有静态的多态性和动态多态性。10.模板是实现代码重用机制的一种工具,分为函数模板和类模板。三、阅读下列程序,写出运行结果(每题5分,共20分)1.程序#includeiostream.h【答案:】k=5k=15voidfun1(inti){i+=15;浙江大学远程教育学院试题卷(模拟试卷)第3页共6页}voidfun2(int&i){i+=10;}voidmain(){intk=5;fun1(k);coutk=k;fun2(k);coutk=kendl;}2.程序【答案:】x=5y=0dist=25x=6y=7dist=85#includeiostream.hclassPoint{public:Point(intx1=0,inty1=0){x=x1;y=y1;d=x*x+y*y;}voidprint(){coutx=xy=y”dist=”dendl;}private:intx,y,d;};voidmain(){Pointp1(5),p2(6,7),*p;p=&p1;p-print();p2.print();}3.程序#includeiostream.h【答案:】字符串:abcdABCD#includestring.hclassStr{char*p;public:Str(char*pi){p=newchar[strlen(pi)+1];strcpy(p,pi);}voidshow(){cout字符串:pendl;}voidoperator++();浙江大学远程教育学院试题卷(模拟试卷)第4页共6页};voidStr::operator++(){Strtemp(\0);temp.p=newchar[2*strlen(this-p)+1];strcpy(temp.p,this-p);strcat(temp.p,”ABCD”);this-p=newchar[2*strlen(this-p)+1];strcpy(this-p,temp.p);}voidmain(){StrT1(abcd);++T1;T1.show();}4.程序4【答案:】现在进入Base基类的构造函数现在进入Derive派生类的构造函数40现在进入Derive派生类的析构函数现在进入Base基类的析构函数#includeiostream.hclassBase{public:Base(intn){cout现在进入Base基类的构造函数\n;i=n;}~Base(){cout现在进入Base基类的析构函数\n;}voidshowi(){coutiendl;}private:inti;};classDerive:publicBase{public:Derive(intn,intm):Base(m){cout现在进入Derive派生类的构造函数\n;j=n;}~Derive(){cout现在进入Derive派生类的析构函数“endl;}voidshowj(){coutjendl;}private:intj;};浙江大学远程教育学院试题卷(模拟试卷)第5页共6页voidmain(){Deriveobj(0,40);obj.showi();}四、填上程序缺少部分,使其变成完整的C++程序(每大题10分)1.程序下面的程序定义一个类samp,有三类数据成员和一个构造函数和一个函数成员,填充程序缺少部分,使其变成完整的C++程序。#includeiostream.hclassSamp{protected:intb;.public:intc;Samp(intn,intm)//构造函数{a=n;b=m;c=a+b;}intgetab(inti)//成员函数{if(i==1)returna;elseif(i==2)returnb;elsereturn0;}private:inta;};voidmain(){Sampobj(20,30);coutobj.getab(1)endl;//输出20coutobj.getab(2)endl;//输出30coutobj.cendl;//输出50}2.程序定义一个基类长方形Base,私有段有长a和宽b,公有段有构造函数,能显示长方形面积等。定义以该长方形为底面积的派生类长方体Cuboid,有高h,有构造函数,能显示长方体体积。在主函数中定义长方体对象,其长、宽、高分别为10,20,5,显示出长方体体积和长方形底面积。#includeiostream.hclassBase{//定义长方形public:Base(floata1=0,floatb1=0){a=a1;b=b1;//公有段构造函数体}voidarea()//函数area()显示长方形面积{cout长方形面积是:a*bendl;}floatgetr(){returna*b;}private:.浙江大学远程教育学院试题卷(模拟试卷)第6页共6页floata,b;};classCuboid:publicBase{//定义以该长方形为底的派生类长方体public:Cuboid(floata1,floatb1,floath1):Base(a1,b1)//构造函数{h=h1;}voidbody()//显示长方体体积的函数{cout长方体体积是:h*getr()endl;}private:floath;};voidmain(){Cuboidob(10,20,5);//这里定义对象obOb.area;//这里输出长方形面积ob.body();//这里输出长方体体积}五、程序设计题,完成C++程序:(每题10分,共20分)1.编C++程序,从键盘输入二个任意大小的数,在屏幕上从小到大输出这二个数。【程序:】#includeiostream.hvoidmain(){inta,b,c;cina;cinb;if(ab){c=a;a=b;b=c;}couta””bendl;}2.建立类Cylinder,Cylinder的构造函数被传递了两个double值,分别表示圆柱体的半径和高。用类cylinder计算圆柱体的体积,并存储在一个double变量中。在类Cylinder中包含一个成员函数vol,用来显示每个Cylinder对象的体积。(数据:圆柱体的半径为2.2,高为8.09)【程序:】#includeiostream.hclassCylinder{//声明圆柱体public:Cylinder(doublea,doubleb){r=a;h=b;volnume=3.141592*r*r*h;}voidvol()//函数vol()显示圆柱体的体积{cout圆柱体的体积是:volnumeendl;}private:doubler,h;doublevolnume;};intmain(){Cylinderx(2.2,8.09);x.vol();return0;}
本文标题:面向对象程序设计模拟卷(2013夏考)
链接地址:https://www.777doc.com/doc-1960779 .html