类与对象的认识练习
- 格式:doc
- 大小:42.50 KB
- 文档页数:2
习题七--类和对象类和对象一、选择题1.下列有关类的说法不正确的是()。
A.对象是类的一个实例B.任何一个对象只能属于一个具体的类C.一个类只能有一个对象D.类与对象的关系和数据类型与变量的关系相似2.下列表达方式正确的是()。
A.class P{ B. class P{public: public:int x=15; int x;void show(){cout<<<="" };="">C. class P{ D. class P{int f; public:}; int a;f=25; void Seta (int x) {a=x;}}3.下列有关类的说法不正确的是()。
A.类是一种用户自定义的数据类型B.只有类中的成员函数或类的友元函数才能存取类中的私有数据C.在类中(用class定义),如果不作特别说明,所有的数据均为私有数据D.在类中(用class定义),如果不作特别说明,所有的成员函数均为公有数据4.以下有关类与结构体的叙述不正确的是( )A. 结构体中只包含数据;类中封装了数据和操作B. 结构体的成员对外界通常是开放的;类的成员可以被隐藏C. 用struct不能声明一个类型名;而class可以声明一个类名D. 结构体成员默认为public;类成员默认为private5.以下有关类和对象的叙述不正确的是( )A. 任何一个对象都归属于一个具体的类B. 类与对象的关系和数据类型与变量的关系相似C. 类的数据成员不允许是另一个类的对象D. 一个类可以被实例化成多个对象6.设有定义:class person{int num;char name[10];public:void init(int n, char *m);...};person std[30];则以下叙述不正确的是( )A. std是一个含有30个元素的对象数组B. std数组中的每一个元素都是person类的对象C. std数组中的每一个元素都有自己的私有变量num和nameD. std数组中的每一个元素都有各自的成员函数init7.设有以下类的定义:class Ex{int x;public:void setx(int t=0);};若在类外定义成员函数setx(),以下定义形式中正确的是( )A. void setx(int t) { ... }B. void Ex::setx(int t) { ... }C. Ex::void setx(int t) { ... }D. void Ex::setx(){ ... }8.对于类中定义的成员,其默认的访问权限为()。
一、选择题类和对象类的定义:1 定义类头时,不可能用到的关键字是( B )。
A) class B)private/protected/static C)extends/implementsD)public2.下列类定义中,不正确的是( C)。
A) class x { .... }B) class x extends y { .... }C) static class x implements y1,y2 { .... }D) public class x extends Applet { .... }3.下列类头定义中,错误的是(A)。
A)public x extends y {...} (少class)B) public class x extends y {...}C)class x extends y implements y1 {...}D)class x {...}创建声明对象:4.设A为已定义的类名,下列声明A类的对象a的语句中正确的是( D )。
A) float A a; B) public A a=A( );C) A a=new int( ); D) static A a=new A( );5.设A为已定义的类名,下列声明A类的对象a的语句中正确的是( A )。
A) public A a=new A( ); B) public A a=A( );C) A a=new class( ); D) a A;6.设X 、Y 均为已定义的类名,下列声明类X的对象x1的语句中正确的是( C )。
A) public X x1= new Y( ); B) X x1= X ( );C) X x1=new X( ); D) int X x1;7. 设X 、Y为已定义的类名,下列声明X类的对象x1的语句中正确的是( A )。
A) static X x1; B) public X x1=new X(int 123);C) Y x1; D) X x1= X( );8.通过类MyClass中的不含参数的构造方法,生成该类的一个对象obj,可通过以下语句实现:__MyClass obj=new MyClass();构造方法:9. 设i , j为类X中定义的int型变量名,下列X类的构造方法中不正确的是( A )。
类和对象一、选择题1、下面对方法的作用描述不正确的是:( d )A、使程序结构清晰B、功能复用C、代码简洁D、重复代码2、方法内定义的变量:( b )A 、一定在方法内所有位置可见B、可能在方法内的局部位置可见C、在方法外可以使用D、在方法外可见3、方法的形参:(a)A、可以没有B、至少有一个C、必须定义多个形参D、只能是简单变量4、方法的调用:(c)A、必须是一条完整的语句B、只能是一个表达式C、可能是语句,也可能是表达式D、必须提供实际参数5、return 语句:( d)A、不能用来返回对象B、只可以返回数值C、方法都必须含有D、一个方法中可以有多个return 语句6、void 的含义:(d)A、方法体为空B、方法体没有意义C、定义方法时必须使用D、方法没有返回值7、main()方法的返回类型是:( c )A 、boolean B、int C、void D、static8、方法重载所涉及的方法:(a)A、有相同的名字B、参数个数必须不同C、参数类型必须不同D、返回类型必须不同9、下面关于类和对象之间关系的描述,正确的是( c )A、联接关系B、包含关系C、具体与抽象的关系D、类是对象的具体化10、下面关于java中类的说法哪个是不正确的( c )A、类体中只能有变量定义和成员方法的定义,不能有其他语句。
B、构造方法是类中的特殊方法。
C、类一定要声明为public的,才可以执行。
D、一个java文件中可以有多个class定义。
11、下列哪个类声明是正确的( d)A、public void H1{…} B 、public class Move(){…}C、public class void number{}D、public class Car{…}12、下面的方法声明中,哪个是正确的(c)A、public class methodName(){}B、public void int methodName(){}C、public void methodName(){}D、public void methodName{}13、下述哪些说法是不正确的?(b )A、实例变量是类的成员变量B、实例变量是用static关键字声明的C、方法变量在方法执行时创建D、方法变量在使用之前必须初始化14、下面对构造方法的描述不正确是( b )。
、选择题1、下面对方法的作用描述不正确的是:( d d )A 、 使程序结构清晰B 、 功能复用 C 、 代码简洁 D 、 重复代码2、方法内定义的变量: ( b b ) A 、一定在方法内所有位置可见 局部位置可见 C 、 在方法外可以使用 3、方法的形参: ( a )A 、可以没有B 、至少有一个形参 D 、只能是简单变量4、方法的调用: ( c )A 、必须是一条完整的语句个表达式C 、可能是语句,也可能是表达式 实际参数5、 return 语句: ( d d )A 、不能用来返回对象C 、方法都必须含有多个 return 语句6、 void 的含义:( d d ) A 、方法体为空 C 、定义方法时必须使用7、 main ()方法的返回类型是:A 、 booleanB 、 intB 、只可以返回数值 D 、一个方法中可以有 B 、方法体没有意义 D 、方法没有返回值 c c )C 、 voidD 、 static 8、方法重载所涉及的方法: ( a )A 、有相同的名字B 、参数个数必须不同C 、参数 类型必须不同D 、返回类型必须不同9、下面关于类和对象之间关系的描述, 正确的是( c c )A 、联接关系B 、包含关系C 、具体与抽象的关系D 、类是对象的具体化10、下面关于 java 中类的说法哪个是不正确的( c )A 、 类体中只能有变量定义和成员方法的定义,不能有 其他语句。
类和对象B 、 可能在方法内的 D 、 在方法外可见C 、必须定义多个 B 、只能是一一D 、必须提供B、构造方法是类中的特殊方法。
C、类一定要声明为public的,才可以执行。
D 、一个 java 文件中可以有多个 11、下列哪个类声明是正确的 ( d)A 、public void H1{…}A 、 void X(int k ){ i=k; }B 、 X(int k ){ i=k; }C 、 X(int m, int n ){ i=m; j=n; }D 、 X( ){i=0;j=0; }19、有一个类 A ,以下为其构造方法的声明,其中正确的是 12 、下面的方法声明中,哪个是正确的( A 、 public class methodName(){}cB 、 c ) public void int methodName(){}C 、 public void methodName(){}D 、 public void methodName{} 13 、下述哪些说法是不正确的?( b )A 、 实例变量是类的成员变量B 、 实例变量是 用 static 关键字声明的C 、 方法变量在方法执行时创建D 、 方法变量在 C 、 public class void number{} D 、 public class Car{…} 使用之前必须初始化 14 、下面对构造方法的描述不正确是 A 、 系统提供默认的构造方法 数,所以也可以有返回值 ( b b ) 。
类和对象一、选择题1、下面对方法的作用描述不正确的是:( d )A、使程序结构清晰B、功能复用C、代码简洁D、重复代码2、方法内定义的变量:( b )A 、一定在方法内所有位置可见B、可能在方法内的局部位置可见C、在方法外可以使用D、在方法外可见3、方法的形参:(a)A、可以没有B、至少有一个C、必须定义多个形参D、只能是简单变量4、方法的调用:(c)A、必须是一条完整的语句B、只能是一个表达式C、可能是语句,也可能是表达式D、必须提供实际参数5、return 语句:( d)A、不能用来返回对象B、只可以返回数值C、方法都必须含有D、一个方法中可以有多个return 语句6、void 的含义:(d)A、方法体为空B、方法体没有意义C、定义方法时必须使用D、方法没有返回值7、main()方法的返回类型是:( c )A 、boolean B、int C、void D、static8、方法重载所涉及的方法:( a )A、有相同的名字B、参数个数必须不同C、参数类型必须不同D、返回类型必须不同9、下面关于类和对象之间关系的描述,正确的是( c )A、联接关系B、包含关系C、具体与抽象的关系D、类是对象的具体化10、下面关于java中类的说法哪个是不正确的( c )A、类体中只能有变量定义和成员方法的定义,不能有其他语句。
B、构造方法是类中的特殊方法。
C、类一定要声明为public的,才可以执行。
D、一个java文件中可以有多个class定义。
11、下列哪个类声明是正确的( d)A、public void H1{…} B 、public class Move(){…}C、public class void number{}D、public class Car{…}12、下面的方法声明中,哪个是正确的(c)A、public class methodName(){}B、public void int methodName(){}C、public void methodName(){}D、public void methodName{}13、下述哪些说法是不正确的?( b )A、实例变量是类的成员变量B、实例变量是用static关键字声明的C、方法变量在方法执行时创建D、方法变量在使用之前必须初始化14、下面对构造方法的描述不正确是( b)。
类和对象习题一、选择题1、在类中说明的成员可以使用关键字的是()A. publicB. externC. cpuD. register2、下列不能作为类的成员的是()A. 自身类对象的指针B. 自身类对象C. 自身类对象的引用D. 另一个类的对象3、关于对象概念的描述中,说法错误的是()A. 对象就是C语言中的结构变量B. 对象代表着正在创建的系统中的一个实体C. 对象是类的一个变量D. 对象之间的信息传递是通过消息进行的4、下列不是描述类的成员函数的是()A. 构造函数B. 析构函数C. 友元函数D. 拷贝构造函数5、下面有关类说法不正确的是()A. 一个类可以有多个构造函数B. 一个类只有一个析构函数C. 析构函数需要指定参数D. 在一个类中可以说明具有类类型的数据成员6、在面向对象的程序设计中,首先在问题域中识别出若干个()A. 函数B. 类C. 文件D. 过程7、已知f1和f2是同一类的两个成员函数,但f1不能直接调用f2,这说明()A. f1和f2都是静态函数B. f1不是静态函数,f2是静态函数C. f1是静态函数,f2不是静态函数D. f1和f2都不是静态函数8、类的析构函数是对一个对象进行以下哪种操作时自动调用的是()A. 建立B. 撤销C. 赋值D. 引用9、在C++语言中,数据封装要解决的问题是()A. 数据的规范化B. 便于数据转换C. 避免数据丢失D. 防止不同模块之间数据的非法访问10、下面对静态数据成员的描述中,正确的是()A. 静态数据成员可以在类体内进行初始化B. 静态数据成员可以直接用类名或者对象名来调用C. 静态数据成员不能用private控制符修饰D. 静态数据成员不可以被类的对象调用二、填空题1、函数在对象被创建是自动执行,对象消失时自动执行的成员函数是。
2、在C++语言中,访问一个对象的成员所用的成员运算符是___。
3、定义___函数时,应在参数个数或参数类型上有所不同。
第7章类与对象1、什么叫面向对象的程序设计语言?什么叫类?什么叫对象?什么叫消息?答:在程序设计语言中,面向对象是指采用抽象、封装、继承、多态等程序设计的方法。
因此,具有抽象、封装、继承、多态等特性的编程语言称为面向对象的程序设计语言。
类实际上是一种抽象的数据类型,它将完成某特定功能所用到的数据和对数据的操作(即函数)封装在一起。
对象是指具有某些属性和功能的单个个体。
消息是对象之间相互请求或相互协作的途径,是要求某个对象执行其中某个功能操作的规格说明。
2、结构化程序设计方法存在什么问题?答:结构化程序设计方法主要存在以下问题:1)软件重用性差:重用性是指同一软件不经修改或稍加修改就可多次重复使用的性质。
软件重用性是软件工程追求的目标之一。
2)软件可维护性差:软件工程强调软件的可维护性,强调文档资料的重要性,规定最终的软件产品应该由完整、一致的配置成分组成。
在软件开发过程中,始终强调软件的可读性、可修改性和可测试性是软件的重要的质量指标。
实践证明,用传统方法开发出来的软件,维护时其费用和成本仍然很高,其原因是可修改性差,维护困难,导致可维护性差。
3)开发出的软件不能满足用户需要:用传统的结构化方法开发大型软件系统涉及各种不同领域的知识,在开发需求模糊或需求动态变化的系统时,所开发出的软件系统往往不能真正满足用户的需要。
3、什么叫抽象?什么叫分类?答:从许多事物中舍弃个别的、非本质的特征,抽取共同的、本质性的特征,就叫作抽象。
抽象是形成概念的必须手段。
分类就是把具有相同属性和服务的对象划分为一类,用类作为这些对象的抽象描述。
4、请简述结构体、联合体和类三种类类型的异同点。
答:三种类类型的异同点见下列表格:struct结构体类型和class类类型都可以封装数据和操作,具有派生性、隐藏性和多态性。
而联合体不具有派生性,但具有隐藏性和多态性。
5、什么叫根类?答:根类是没有从其它类派生而创建的类类型。
实际上,根据class类类型定义的一般形式,[:<基类型列表>]是一个可缺省的项;如缺省将定义一个根类。
类和对象练习题类和对象一.单项选择题1.在声明类时,关键字private、public和protected出现______。
A).至少一次B).至多一次C).public至少一次D).任意次数2.面向对象程序设计将数据和封装在一起,作为一个相互依存,不可分割的整体来处理。
A) 对数据的操作 B) 信息 C) 数组 D)数据抽象3.下列说法中错误的是_____。
A).构造函数没有类型B).创建对象时构造函数自动被调用C).在一个类中,只能定义一个构造函数D).构造函数的函数名与类同名4..以下叙述中不正确的是____。
A).类中的数据成员可以是私有或公有的,而类中的成员函数必须是公有的B).拷贝构造函数的作用是使用一个已经存在的对象去初始化一个新的同类的对象C).类中的构造函数可以重载,而析构函数不能重载D).构造函数和析构函数都应是类的公有成员函数5.下列______不是类的成员函数。
A).构造函数B).析构函数C).友元函数D).拷贝构造函数6.通常拷贝初始化构造函数的参数是__ ___。
A)某个对象名 B)某个对象的成员名C)某个对象的引用名 D)某个对象的指针名7.类Mclass的拷贝初始化构造函数是_______。
A)Mclass( )B)Mclass(Mclass)C)Mclass(Mclass *)D) Mclass(Mclass&)8.下列对析构函数的描述中,正确的是___。
A)一个类中只能定义一个析构函数B)析构函数名与类名不同;C)析构函数的定义只能在类体内D)析构函数可以有一个或多个参数9.以下对析构函数描述正确的是______。
A).析构函数返回类型应是void B).函数体内不能有循环语句C)无形参,也不能重载D).函数体内必须有delete语句10.关于成员函数,以下叙述中不正确的是_______。
A).成员函数一定是内联函数B).成员函数可以重载C).成员函数的参数可以设置默认值D).成员函数可以是另一个类的友元函数11.在面向对象的程序设计中,作用域符(::)的功能是_____。