12-4类与对象练习题面向对象

上传人:平*** 文档编号:17399887 上传时间:2017-11-11 格式:DOC 页数:17 大小:111.37KB
返回 下载 相关 举报
12-4类与对象练习题面向对象_第1页
第1页 / 共17页
12-4类与对象练习题面向对象_第2页
第2页 / 共17页
12-4类与对象练习题面向对象_第3页
第3页 / 共17页
12-4类与对象练习题面向对象_第4页
第4页 / 共17页
12-4类与对象练习题面向对象_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《12-4类与对象练习题面向对象》由会员分享,可在线阅读,更多相关《12-4类与对象练习题面向对象(17页珍藏版)》请在金锄头文库上搜索。

1、1类和对象一、选择题题 1 下列关于成员访问权限的描述中,不正确的是_。A)公有数据成员和公有函数成员都可以被类对象直接处理B)类的私有数据成员只能被同类的公有成员函数以及该类的友元类或友元函数访问C)只有类或派生类的成员函数和友元类或友元函数可以访问保护成员D)保护成员在派生类中可以被派生类的函数成员访问,而私有成员不可以题 2 下列关于构造函数的描述中,错误的是_。A)构造函数可以设置默认参数B)构造函数在定义类变量时被自动执行C)构造函数可以对静态数据成员进行初始化D)构造函数可以重载题 3 一个类的友元函数或友元类能够访问该类的_。 (已出在第五章 PPT)A)私有成员 B)保护成员C

2、)公有成员 D)公有成员、保护成员和私有成员题 4 下面对于静态成员的描述中,正确的是_。A)静态数据成员是类的所有对象共享的数据B)类的每个对象都有自己的静态数据成员C)类的不同对象有不同的静态数据成员值D)静态数据成员不能通过类的对象调用题 5 对于下面的类 Samp,在函数 fun( )中将 p 所指向的对象的成员 m 的值改为 70 的语句应该是_。class Samppublic:Samp (int x)n=x;void SetNum(int n1)n=nl;private:int n;int f( )Samp *ptr=new Samp (45);_A)Samp (70) ; B)

3、SetNum(70);C)ptr-SetNum(70); D)ptr-n=70;2题 6 下面是类 class_for_e6 的定义,以下描述正确的是_。class Class_for_e6public:void Class_for_e6(int a)X=a; /1int f(int a,int b) /2X=a;Y=b;int f(int a,int b,int c=0) /3X=a;Y=b;Z=c;static void g()X=10; /4private:int X,Y,Z;A)语句 1 是类 Class_for_e6 的构造函数的正确定义B)语句 2 和语句 3 能实现类成员函数的重

4、载C)语句 4 实现对类成员变量 X 的更新操作合法D)以上说法都不正确题 7 _不是构造函数的特征A)构造函数的函数名与类名相同B)构造函数可以重载C)构造函数可以设置默认参数D)构造函数必须指定返回类型说明题 8 有关析构函数的说法不正确的是_。A)析构函数有且只有一个B)析构函数无任何返回类型C)析构函数和构造函数一样可以有形参D)析构函数的作用是在对象被删除前进行一些需要的清理工作题 9 _,是析构函数的特征。A)一个类中只能定义一个析构函数B)析构函数名与类名相同C)析构函数的定义只能在类声明体内D)析构函数可以有一个或多个参数题 10 下列的各类函数中,_不是类的成员函数。A)构造

5、函数 B)析构函数 C)友元函数 D)拷贝构造函数题 11 下列静态数据成员的特性中,_是错误的。A)说明静态数据成员时前边要加修饰符 staticB)静态数据成员要在构造函数内进行初始化3C)可以直接使用类名来访问静态数据成员,方法是在静态数据成员名前加和作用域限度符D)静态数据成员是所有对象所共用的题 13 已知 Sample 中的一个成员函数说明如下:void set(Sample &a)其中形参 Sample &a 的含义是_。A)指向类 Sample 的名为 a 的指针B)将 a 的地址赋给变量 setC)a 是类 Sample 的对象引用,用来做函数 set()的形参D)变量 Sa

6、mple 与 a 按位与的结果作为函数 set()的参数题 14 Sample 是一个类,下列定义中_是定义指向对象数组的指针 pA)Sample *p5 B)Sample (*p)5C)(Sample*) p5 D)Sample *p题 15 在下面定义中,错误的语句是_。class Samplepublic:Sample(int val); /ASample( ); /Bprivate:int a=2; /Cflaot f; /D;试卷二一选择题1、下列有关类的说法, ( )是不正确的。A、类是一种用户自定义的数据类型B、只有类中的成员函数才能存取类中的私有数据C、在类中如果不作特别声明,

7、所有数据成员均为私有类型D、在类中如果不作特别声明,所有成员函数均为私有类型2、下列关于类与对象的说法中, ( )是不正确的。A、对象是类的一个实例B、任何一个对象只能属于某个的类C、一个类只能有一个对象D、类与对象的关系和数据类型与变量的关系相似3、下列关于构造函数的描述中,错误的是( ) 。A、构造函数可以设置默认参数B、构造函数在定义类对象时自动执行C、构造函数可以是内联函数D、构造函数不可以重载44、下列有关析构函数的说法中, ( )是错误的。A、一个类中析构函数有且只有一个B、析构函数无任何返回类型C、析构函数和构造函数一样可以有形参D、析构函数的作用是在对象被删除前进行一些清理工作

8、。6、假定 MyClass 为一个类名,那么下列的函数说明中,( )为该类的析构函数的原型A、MyClass ; B、 MyClass(int n);C 、MyClass(); D、 MyClass( );7.若有一个 MyClass 类,则执行语句 MyClass a, b(2), *p;后,自动调用该类的构造函数( )次。A) 2 B) 3C) 4 D) 59.下面关于友元函数的描述中,()是正确的。A、友元函数的实现必须在类的内部定义B、友元函数是类的成员函数C、友元函数破坏了类的封装性和隐藏性D、友元函数不能访问类的私有成员10.在 C+中,数据封装要解决的问题是( )A)数据的规范化

9、 B)便于数据转换C)避免数据丢失 D)防止不同模块之间数据的非法访问11、一个类的友元函数或友元类可以访问该类的( )。A)私有成员 B)保护成员C)公有成员 D)所有成员12、在类中定义和实现的函数可以称为( )。A)静态成员函数 B)内联函数C)常成员函数 D) 虚函数13、下列关于成员函数特征的描述中,( )是错误的。A)成员函数一定是内联函数 B)成员函数可以重载C)成员函数可以设置参数的默认值 D)成员函数可以是静态的14. C+中对于结构中定义的成员,其默认的访问权限为( )。A)public B)protected C)private D) static15.为了使类中的成员不

10、被类的对象通过成员操作符来访问,则不能把该成员的访问权限设置为( )。A) public B)protected C) private D) static516.下面对静态数据成员的描述中,( )是正确的。A)静态数据成员可以在类体内进行初始化B)静态数据成员不可以被类的对象来访问C)静态数据成员不能设置为 protectedD)静态数据成员可以直接用类名来访问17.对于下面定义的类 MyClass,在函数 f()中将对象成员 n 的值修改为 50 的语句应该是( )。class MyClasspublic:Myclass(int x)n=x; )void SetValue(int n1)(n

11、=nl;)private:int n;int f( )MyClass *ptr=new MyClass(45); /对象的 n 的值为 45_;A) MyClass(50) B)SetValue(50) C) ptr-SetValue(50) D) ptr-n=5018、类 MyClass 的定义如下:class MyClass public:MyClass( )value=0;setVariable(int i) value=i;private:int value;则以下各项对如下语句序列的描述中,( )是正确的。Myclass *p,my; p=&my;A)语句 p=&my;是把对象 my

12、 赋值给指针变量 PB)语句 MyClass *p,my;会调用两次类 MyClass 的构造函数C)语句 *p.SetVariable(5); 是合法的D)语句 p-SetVariable(5)与语句 my. SetVariable(5 )等价19类 aClass 的定义如下: class aClass public:aClass() aClass(int i) value=new int(i); int *value;6;则下面的赋值语句中( )是正确的。A)aClass my; my.value=10;B)aClass my; my.*value=0;C)aClass my; *(my.

13、value)=10;D)aClass my(10);20.下面类的定义,有( )处错误class myclass int i=0;public:void MyClass( );MyClass(int Value);A) 1 B)2C) 3 D) 421.若有以下程序:#include class point int x,y;public:point(int x1,int x2=0)x=x1;y=x2;void setpoint(int x1,int y1) x=x1; y=y1; void dispoint( )coutsetpoint(5,12);p-dispoint( );程序运行后的输出

14、结果是( ) A) 12,12 B) 12,0 C) 12,5 D) 5,1222. 若有以下程序: #include class sample int n;public:sample(int i) n=i;7void add()s+=n;static int s;void dis( )coutclass sample int x, y;public:sample(int i,int j)x=i;y=j;void disp()coutclass sample int i;public:void setvalue(int m)i=m;void fun(int m)i+=m;void disp()

15、coutsetvalue(20);ps-fun(5);ps-disp();程序运行后,输出的结果是( )A) 15 B)20 C) 25 D) 3025。有以下程序:#include #include class point double x;double y;public:point(double a,double b) x=a;y=b;friend double distance(point a,point b);double distance(point a,point b)return sqrt(a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y);void main() point p1(1,2);point p2(5,2);coutclass sample int n;public:samp

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号