当前位置:文档之家› 类和对象练习题

类和对象练习题

类和对象一.单项选择题1.在声明类时,关键字private、public和protected出现____B__。

A).至少一次B).至多一次C).public至少一次D).任意次数2.面向对象程序设计将数据和 A 封装在一起,作为一个相互依存,不可分割的整体来处理。

A) 对数据的操作 B) 信息 C) 数组 D)数据抽象3.下列说法中错误的是___C__。

A).构造函数没有类型B).创建对象时构造函数自动被调用C).在一个类中,只能定义一个构造函数D).构造函数的函数名与类同名4..以下叙述中不正确的是A____。

A).类中的数据成员可以是私有或公有的,而类中的成员函数必须是公有的B).拷贝构造函数的作用是使用一个已经存在的对象去初始化一个新的同类的对象C).类中的构造函数可以重载,而析构函数不能重载D).构造函数和析构函数都应是类的公有成员函数5.下列___C___不是类的成员函数。

A).构造函数B).析构函数C).友元函数D).拷贝构造函数6.通常拷贝初始化构造函数的参数是__ C ___。

A)某个对象名 B)某个对象的成员名C)某个对象的引用名 D)某个对象的指针名7.类Mclass的拷贝初始化构造函数是___D____。

A)Mclass( )B)Mclass(Mclass)C)Mclass(Mclass *)D) Mclass(Mclass&)8.下列对析构函数的描述中,正确的是 A___。

A)一个类中只能定义一个析构函数B)析构函数名与类名不同;C)析构函数的定义只能在类体内D)析构函数可以有一个或多个参数9.以下对析构函数描述正确的是___C___。

A).析构函数返回类型应是void B).函数体内不能有循环语句C)无形参,也不能重载D).函数体内必须有delete语句10.关于成员函数,以下叙述中不正确的是___A____。

A).成员函数一定是内联函数B).成员函数可以重载C).成员函数的参数可以设置默认值D).成员函数可以是另一个类的友元函数11.在面向对象的程序设计中,作用域符(::)的功能是___D__。

A).标识作用域的级别B).指出作用域的大小C) 定义作用域的大小D).标识某个成员函数是属于哪个类的12.静态成员函数没有_C_____。

A).返回类型B).返回值C).this指针D).局部变量13..关于类的静态数据成员和静态成员函数,以下不正确的叙述是A___。

A).类外可以直接引用类的静态数据成员和静态成员函数B).类的静态数据成员不能在类的构造函数中初始化C).类的其他函数可以调用类的静态成员函数D).类的静态数据成员被类的所有对象共享14.以下关于类和对象叙述正确的是C___。

A).一个类只能有一个对象B).一个对象可以属于几个不同的类C)对象是类的一个具体实例D)一个类中可以有本类的对象18.下面关于友员函数的说法中,正确的是_____B___ 。

A)友员函数是本类的一个成员函数B)友员函数可以通过对象访问本类的所有成员C)友员函数有this指针D)友员函数可以直接访问本类的所有成员20.假定AB为一个类,则执行“AB a(4),b[5],*p[2];”语句时,自动调用该类构造函数的次数为 A 。

A)6 B)7 C)9 D)11二.阅读程序1.写出以下程序运行结果。

#include <iostream.h>class cube{ public:cube(int ht=2,int wd=5,int dp=3){ height=ht; width=wd; depth=dp;cout<<″depth=″<<depth<<″construncted called″<<endl;}~cube() { cout<<″depth=″<<depth<<″Destructed called″<<endl;}int volume() {return height *width*depth;}private: int height,width,depth;};void main(){ cube cone(10,20,15), ctwo;cout<<cone.volume()<<endl;cout<<ctwo.volume()<<endl;}运行结果:depth=15 construncted called450depth=3construncted called30depth=3construncted calleddepth=15 construncted called2.写出以下程序运行结果。

#include <iostream.h>class A{ int a,b;public:A(){ }A(int i,int j):a(i),b(j){ cout<<"constructor\n"; }~A() { cout<<a<<"distructor\n"; }};void main(){ A ob2(2,5);A ob1(ob2);}运行结果:ConstructorConstructor2 distructor2 distructor3.当输入3、4和输入10、20时,写出以下程序输出结果。

#include <iostream.h>class TC{ private: double lead1, lead2,total;int p1,p2;public: TC( ){p1=15;p2=20;}TC(int x,int y){p1=x; p2=y; }void datap(){ cout<<″输入2个整数:″;cin>>lead1>>lead2;total=p1*lead1+p2*lead2;}void display() { cout<<″total=″<<total<<endl;} };void main(){ TC A,B(6,8);A.datap();A.display();}运行结果:,输入2个整数:3,4 total=125输入2个整数:10,20 total=2204.写出以下程序运行结果。

#include<iostream.h>class value{private: int a;public: value(){a=1;}value(int i){a=i;}void list(){cout<<a<<” “;}};value data1[4];value data2[4]={10,20,30};void main(){int i;for(i=0;i<4;i++) data1[i].list();cout<<endl;for(i=0;i<4;i++) data2[i].list();cout<<endl;}运行结果:1 1 1 110 20 30 15.写出以下程序运行结果。

#include <iostream.h>class A{ public: A(int i,int j) { a=i; b=j; cout<<″constructor.\n″;} ~A( ) { cout<<″Destructor″<<a<<b<<endl;} private: int a,b;};void main(){ A *pa,*pb;pa=new A(4,6);pb=new A(10,15);delete pa;delete pb;}运行结果:constructor.constructor.Destructor1015Destructor466.写出以下程序运行结果。

#include <iostream.h>class count{ public:count () { count1++;}static int data () { return count1; }~count( ){ count1--; }private: static int count1;};int count ::count1=60;void main(){ count a,b,c,d,e;cout<<count:: data()<<endl;cout<<a.data()<<endl;cout<<e.data()<<endl;}运行结果:6565657.写出以下程序运行结果。

#include <iostream.h>class myclass{ private: int x,y;static long sum;public: myclass(int a,int b) { x=a;y=b;}void getxy(){ sum*=x*y;cout<<″sum=″<<sum<<endl;}};long myclass::sum=1;void main(){ myclass ob1(1,2);ob1·getxy();myclass ob2(3,4);ob2·getxy();myclass ob3(5,6);ob3·getxy();}运行结果:sum=2sum=24sum=7208.写出以下程序运行结果。

#include <iostream.h>class sample{ int x,y;public: sample(){x=0;y=0;}sample(int i,int j){x=i;y=j;}void copy(sample &A) { x=A.x; y=A.y;}void add( ){x+=y++; y+=x++;}void display(){ cout<<″x=″<<x<<endl; cout<<″y=″<<y<<endl; } };void main(){ sample ob1,ob2(1,2);ob2.add( );ob1.copy(ob2);ob1.add( );ob1.display();}运行结果:X=11Y=179.写出以下程序运行结果。

相关主题