类和对象习题

合集下载

类和对象习题

类和对象习题

(一)选择题1.设A为已定义的类名,下列声明A类的对象a的语句中正确的是( A )(A)public A a=new A( ); (B)public Aa=A( );(C)A a=new class( ); (D)a A;2.设X 、Y 均为已定义的类名,下列声明类X的对象x1的语句中正确的是( C )(A)public X x1= new Y( ); (B)X x1= X ( );(C)X x1=new X( ); (D)int X x1;3.下列方法定义中,正确的是( D )A) int x( int a,b ) { return (a-b); }B) double x( int a,int b) { int w; w=a-b; }C) double x( a,b ) { return b; }D) int x( int a,int b) { return a-b; }4.下列方法定义中,正确的是( D )A) void x( int a,int b ); { return (a-b); }B) x( int a,int b) { return a-b; }C) double x { return b; }D) int x( int a,int b) { return a+b; }5.下列方法定义中,不正确的是( D )A) float x( int a,int b ) { return (a-b); }B) int x( int a,int b) { return a-b; }C) int x( int a,int b ) { return a*b; }D) int x(int a,int b) { return 1.2*(a+b); }6.下列方法定义中,正确的是( A )A) int x( ){ char ch='a'; return (int)ch; }B) void x( ){ ...return true; }C) int x( ){ ...return true; }D) int x( int a, INT b){ return a+b; }7.下列方法定义中,方法头不正确的是( D )A)public int x( ){ ... }B)public static int x( double y ){ ... }C)void x( double d ) { ... }D)public static x( double a ){ ... }//少数据类型8.定义类头时,不可能用到的关键字是( B )A) class B)private C)extends D)public9.设A为已定义的类名,下列声明A类的对象a的语句中正确的是( A )A) A a=new A( ); B) public A a=A( );C) A a=new class( ); D) a A;10.设X 、Y 均为已定义的类名,下列声明类X的对象x1的语句中正确的是( C )A) X x1= new Y( ); B) X x1= X ( );C) X x1=new X( ); D) int X x1;11.设X 、Y为已定义的类名,下列声明X类的对象x1的语句中正确的是( A )A) static X x1; B) public X x1=new X(int 123); //不带数据类型C) Y x1; D) X x1= X( );12.设i , j为类X中定义的int型变量名,下列X类的构造方法中不正确的是( A )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; }13.有一个类A,以下为其构造方法的声明,其中正确的是( A )A)public A(int x){...} ‘B)static A(int x){...}C)public a(int x){...}D)void A(int x){...}14.有一个类A,以下为其构造方法的声明,其中正确的是( B )A)void A(int x){...} B)A(int x){...}C)a(int x){...} D)void a(int x){...}15.设i、j、k为类X中定义的int型变量名,下列类X的构造方法中不正确的是()A) X( int m){ ... } B) void X( int m){ ... }C) X( int m, int n){ ... } D) X( int h,int m,int n){ ... }16.设i , j为类X中定义的double型变量名,下列X类的构造方法中不正确的是( A )A) double X(double k ){ i=k; return i; }C) X( ){i=6;j=8; }B) X(double m, double n ){ i=m; j=n; }D) X(double k ){ i=k; }17.设A为已定义的类名,下列创建A类的对象a的语句中正确的是( D )A)float A a; B public A a=A( );A a=new int( ); D A a=new A( );18.有一个类A,以下为其构造方法的声明,其中正确的是:( A )A)public A(int x){...}B)static A(int x){...}C)public a(int x){...}D)void A(int x){...}(二)简答题1.构造方法和一般的方法有何区别?作用不同,修饰符不同,返回值不同,命名不同2.面向对象的软件开发方法用什么把数据和基于数据的操作封装在一起?类3.在一个类定义中,用什么描述对象的状态? 用什么描述对象的行为?属性。

《类与对象》课后习题(含答案)

《类与对象》课后习题(含答案)

问题一:程序执行结果是
问题二:本程序中,y、z 是 class Test{ public: static int Data; }; int Test::Data=100; //A void main(void) { Test t1,t2; t1.Data=200; t2.Data=300; //B //C
2、写出程序的输出结果。 #include <iostream> #include <cstring> using namespace std; class SomeClass { int One , Two; public: SomeClass(int a = 1, int b = 1) { One = a; Two = b; cout << "Structor" << endl; } SomeClass(SomeClass &obj) { { cout<<NumA<<'\t'<<"is Destructor."<<endl; } }; int main() { MyTestClass Myclass1(5), Myclass2.Print(); return 0; } 程序的运行结果为: Myclass2(Myclass1);
,第二行是
A.show( ); } 15 10 三、程序填空题
B.show( );
1、完成如下的类,在横线中填写合适的内容。 #include <iostream> #include <cstring> using namespace std; enum Esex{mid , man , woman};//枚举请自学 2.7 class Person { int Num; //编号 char Name[12]; //姓名 Esex Sex; //性别 float Weight; //体重 public: Person(int , char * , Esex , float); Person(); ~Person() {} void PrintInfo(); int Workdays(); }; Person::Person( { Num = id; int id ,char *name , Esex s , float w)

类与对象习题

类与对象习题

类与对象习题类与对象选择题5.若有以下说明,在类外使⽤对象objX成员的正确语句是( c )。

class X{ int a;void fun1();public:void fun2();};X objX ;(a) objX.a=0; (b) objX.fun1(); (c) objX.fun2(); (d) X::fun1();6.若有以下说明,对n的正确访问语句是( b )。

class Y{ //…… ;public:static int n;};int Y::n;Y objY;(a) n=1; (b) Y::n=1; (c) objY::n=1; (d) Y->n9.若有以下类T说明,函数fFriend的错误定义是( c )。

class T{ int i;friend void fFriend(T&,int) ;};(a) void fFriend(T &objT,int k) { objT.i = k; }(b) void fFriend(T &objT,int k) { k = objT.i; }(c) void T::fFriend(T &objT,int k) { k += objT.i; }(d) void fFriend(T &objT,int k) { objT.i += k; }10.在类定义的外部,可以被访问的成员有( c )。

(a) 所有类成员(b) private或protected的类成员(c) public的类成员(d) public或private的类成员12.说明⼀个类的对象时,系统⾃动调⽤( b );撤消对象时,系统⾃动调⽤( c )。

1(a) 成员函数(b) 构造函数(c) 析构函数(d) 友员函数13.下⾯对构造函数的不正确描述是( b )。

(a) 系统提供默认的构造函数(b) 构造函数可以有参数,所以也可以有返回值(c) 构造函数可以重载(d) 构造函数可以设置默认参数14.下⾯对析构函数的正确描述是( c )。

类和对象练习题

类和对象练习题

类和对象一、选择题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)。

【习题】类与对象(2)

【习题】类与对象(2)

类和对象(2)【实验目的】:1. 掌握类的构造函数和析构函数的使用方法。

2. 掌握类的拷贝构造函数的使用方法。

【实验内容】:1.读以下程序,为下列程序添加注释,并给出程序运行结果。

并解释为什么得到这样的结果。

上机验证你的结果是否正确。

2. 完成下列要求。

1) 读以下程序,为下列程序添加注释,并给出程序运行结果。

并解释为什么得到这样的结果。

上机验证你的结果是否正确。

2) 将Coordinate 类中带有两个参数的构造函数进行修改,在函数体内添加下述语句:cout << “Constructor is called.\n “; 写出程序的运行结果,并解释输出的结果。

3) 按下列要求进行调试:在主函数体内,添加下述语句:Coordinate p4;Coordinate p5(2); 调试程序时会出现什么错误?为什么?如何对已有的构造函数进行适当的修改?4) 经过以上2)和3)步的修改后,结合运行结果分析:创建不同的对象时会调用不同的构造函数。

□Bine 1 udr< i n>・ t 「•豪 nAUflnf Z ・M!|J*(^ 3.(4; Ma 名% DiDniiriitft^tr<public:CDftrdinatfflnlr wl.iftt ・1)>7尸诵魯;詐杠话巧筑X-K.1 ir/; mot << "C-anWriiirtBr i<; callf i d An*1; 、Coord indtc (O OHHTI I imitvCi p) M"托口 构這函魏^Cwr Ji Mt« <) {eflirt <C C r struct or is c »llea\n ,,s}//折玛=比 int Get X( ){r&itur«i u; } lnt GrlYOi 『@f ii y ;y privet*:int » P V P :>sCeinriiinLdi-r;: Coo r flin^i t p( £n<i r rf i n-a t F fi p)*K S P-M ;FP-JI*£0Lkit<C"C*py -irdtiall 足Nt:左MI 3r )Et 『■亡>t<j 『 Is called^n^stfet FldtAf) {CQOTdlMtf p 12沁屛"谓用 穽蚩些1电世文PV21& coardln^if ”"":"弔1裤11|用想1构令1音餐P#聊刊 EDWdinatv ■$-從討忌二疣轴角將良呜造盛竅 Cuurdlndlt! >;Covrdin.ilr 闷7*的;M 丘ff if ■—介/■■-歆卜咗1洁> 牌 cout^C k |ii-(*<<p3 .G ^IX()«*• ,*«JK 3-fi&tV<<«) Vn B,; 亍ct.ru3. 假使在程序中已经声明了类point ,并建立了其对象 pl 和p4。

JAVA类与对象及数组习题及答案

JAVA类与对象及数组习题及答案

JAVA 类和对象及数组习题一、选择题(1)下列构造方法的调用方式中,正确的是(D )——原因:在通过new实例化一个类对象时系统会自动调用该类相应的构造方法。

A.按照一般方法调用B。

由用户直接调用ﻫC.只能通过new 自动调用D。

被系统调用(2)在Java 中,能实现多重继承效果的方式是( C )——原因:一个类可以同时实现多个接口。

Java 接口反映了对象较高层次的抽象,还弥补了Java只支持单继承的不足,可用它来完成多继承的一些功能。

◻A。

内部类B.适配器 C.接口D.同步(3)int 型public 成员变量MAX_LENGTH,该值保持为常数100,则定义这个变量的语句是( D )—原因:java 中定义常量用关键字final 来定义.A.public int MAX_LENGTH=100 B。

finalintMAX_LENGTH=100 ﻫC.public const int MAX_LENGTH=100D.p ublic final int MAX_LENGTH=100(4)下列叙述中,正确的是( A)—原因:Java 严格区分大小写,所以变量number 与Number 不相同;Java 中的注释方式除了“//”行注释之外还有段注释“/*---——--*/"和文档注释/**-—---- */。

Java 源文件中的public 类只能有一个。

◻A.声明变量时必须指定一个类型ﻫ B. Java认为变量number 与Number 相同ﻫC. Java中唯一的注释方式是"//"ﻫD。

源文件中public类可以有0 或多个(5)下列叙述中,错误的是(D )—原因:子类继承父类,并且可以有自己的成员变量和成员方法。

所以可以认为子类是父类的扩展。

◻A。

父类不能替代子类B.子类能够替代父类ﻫC。

子类继承父类D.父类包含子类(6)下列代码中,将引起编译错误的行是(B)—原因:定义float 型变量并对其初始化时,其值后面要加一个f。

第八章 类和对象 复习题知识讲解

第八章  类和对象  复习题知识讲解

第八章类和对象复习题第八章类和对象复习题1.系统为每个类提供一个this指针,在类的成员函数内,通过this指针可以间接访问这个类的( )所有成员C.友元类的public成员D.所有派生类中的public成员2.如果在class类的定义中既不指定private,也不指定public,则系统就默认为( )A. privateB. publicC. protectedD. 不确定3. 对静态数据成员的描述, 正确的是( )A. 静态数据成员可以在类体内进行初始化B. 静态数据成员不可以被类的对象调用C. 静态数据成员不能受private控制符的作用D. 静态数据成员可以直接用类名调用4. 下面叙述错误的是( )A. 基类的protected成员在派生类中仍然是protected的B. 基类的protected成员在public派生类中仍然是protected的C. 基类的protected成员在private派生类中是private的D. 基类的protected成员不能被派生类的对象访问5.对于友元函数的描述,正确的是( )A. 友元函数的实现必须在类的内部定义B. 友元函数是类的成员函数C. 友元函数破坏了类的封装性和隐藏性D. 友元函数不能访问类的私有成员6.关于内联函数的描述,正确的是( )A.使用内联函数可以缩短程序代码,减少占用的内存空间B.使用内联函数可以减少函数调用时入栈和出栈的时间和空间开销,但是会使程序的代码量增加C.内联函数只能在类的内部进行声明和定义,不能作为全局函数D.内联函数可以做虚函数7. 类是对象的( )A. 具体B. 抽象C. 封装D. 多态8. struct声明类时,若不作private或public声明,系统默认为( )A. privateB. publicC. protectedD. 不能确定9.引入内联函数的主要目的是( )A.缩短程序代码,少占用内存空间B.既可以保证程序的可读性,又能提高程序的运行效率C.占用内存空间少,执行速度快D.使程序的结构比较清晰10. 类的具体表现是通过定义来操作的。

java类和对象练习题

java类和对象练习题

1.在如下所示的JAVA代码中,this关键字是指(B)。

public class Person{private String name;public void setName(String name){=name;}}(选择一项)(选择一项)A) Person类B) Person类自身对象的引用C) setName()方法的参数nameD) setName()方法2.以下对于JAVA中构造方法说法正确的是(C).(选择一项)A) 构造方法的名字可以与类名不一致B) 构造方法不能被重载C) 一个类必须包含至少一个构造方法D) 构造方法可以有返回值类型3.以下关于JAVA中的构造方法表述错误的是(B)。

(选择一项)A) 构造方法的名字和类名相同B) 构造方法不能被重载C) 构造方法的作用主要是在创建对象时执行一些初始化操作D) 构造方法没有返回值类型4.以下关于java中的方法重载说法错误的是(D)。

(选择一项)A) 重载的方法其方法名必须相同B) 重载的方法其参数个数或参数类型不同C) 构造方法可以被重载D) 成员方法不可以被重载5.在如下所示的Sample类中,共有( C)个构造方法public class Sample{private int x;private Sample(){x=1;}public void Sample(double f){this.x=(int)f;}public Sample(String s){}(选择一项)A) 4B) 3C) 2D) 16.构造方法重载的要素不包括(B)(选择一项)A) 方法名与类名相同B) 返回值类型不同C) 参数列表不同D) 在同一个类中7.给定如下JAVA代码,编译运行,结果将是(B)public class Sample{public double result(double d1,double d2){return d1<d2 ? d1 : d2;}public double result(int d1,double d2){return d1<d2 ? d1 : d2;}public double result(int d1,int d2){return d1-d2;}private int result(int i){return i;}public static void main(String [] args){Sample s=new Sample();System.out.print(s.result(2,3.0)+",");System.out.print(s.result(4.0,4.5)+",");System.out.print(s.result(10,9));}}(选择一项)A) 3.0 , 4.0, 1B) 2.0, 4.0, 1C) 3.0, 4.5, 1D) -1, 4.0, 18.给定如下Java代码,下列()方法可以加入到Sample类中,并且能够编译正确。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、选择题
1、在类中说明的成员可以使用关键字的是()
A. public
B. extern
C. cpu
D. register
2、下列不能作为类的成员的是()
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、定义___函数时,应在参数个数或参数类型上有所不同。

4、在用class定义一个类时,数据成员和成员函数的默认访问权限是___。

5、在构造函数和析构函数中调用虚函数时采用___。

6、将指向对象的引用作为函数的形参,形参是对象的引用,实参是 ___。

7、类实现了面向对象程序设计的特性。

8、对赋值运算符进行重载时,应声明为___函数。

9、如果类的所有对象共享一个成员,则称该成员为。

10、局部对象和全局对象中,在同一程序中___生存期最长。

三、程序分析题
1、#include <iostream.h>
class A
{public:
A()
{cout<<"A 构造函数\n";fun();}
virtual void fun()
{cout<<"A::fun() 函数\n";}
};
class B:public A
{public:
B()
{cout<<"B构造函数\n";fun();}
void fun() {cout<<"B::fun() calle函数\n";} };
void main()
{B d;}
2、#include <iostream.h>
class example
{int a;
public:
example(int b=5){a=b++;}
void print(){a=a+1;cout <<a<<"";}
void print()const
{cout<<a<<endl;}
};
void main()
{example x;
const example y(2);
x.print();
y.print();
}
3、#include <iostream.h>
class test
{int x;
public:
test(int i=0):x(i){}
virtual void fun1()
{cout << "test::x"<<x<<endl;}
};
class ft:public test
{int y;
public:
void fun1(){cout <<"ft::y="<<y<<endl;}
ft(int i=2):test(i),y(i){}
};
void main()
{ ft ft1(3);
void (test::*p)();
p=test::fun1;
(ft1.*p)();
}
四、简答题
析构函数被自动调用的几种情况分别是哪些?
五、编程题
定义一个Box(盒子)类,在该类定义中包括数据成员:length(长),width(宽),和height(高)。

成员函数:构造函数Box设置盒子长,宽,高三个数据;函数volume计算并输出盒子的体积。

从键盘输出长,宽,高,并求盒子的体积。

相关文档
最新文档