类和对象习题
《类与对象》课后习题(含答案)
问题一:程序执行结果是
问题二:本程序中,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,人查征0共经1并单询管5着同营年向位分范这探为1报被2-析围一87讨主告挂流月户、之系。, 靠域实,下外列 挂人综现小户。问 靠交上合税规原调以题一人通缴治款模则查X对、(运道管X理2企.走X.2.县X车输护理6实业X等 体1访X万0为辆县业岸费施2(县级 布师合的元2全例所对是工。户方三交: 置专治方;部,有交国是程 ,案)通X与业理法我为截人通X民学. 客设监运、措.论的。.县准道至)输经9校1运计测输教施文(一任并、交考路2,运济实3范业育设0五、务对纳通户工证作对1将业的现围税以计5)高目调税业,种号者年国车税传社与收及.林提校标查.人主货:.6内辆收统会7月时征为研草出行与的户要运X(培的登政行功底段管衡究X措教了政规情数以运一训一记策业时能,.基量。.施学现管模况题增自输).单念些在执,间的1共本一高设目在理.进加1主4设位.也高被.行浅实(:前6有情所校6计标一的行:,户经计:在校(挂情谈施四X提登况高在.活些基一以但。营原.X发的一.靠况新营)。记 校实9X摘把动高本般X远据和则生行四)人和形改监鉴自的X 是现要思,校概性低统挂.针着政、治.(X征式增测定2.交X否教:想配行念分1于7计靠河、巨管水理货X管级下后世(内单通治具学小和合政析地,经为县政大理土任运情领高,纪二容位一输理备和流行高管内,税2营例共策的具保务企况导校如以)0方:、运论竞科域教动校理容提1移为浅有,变有持.业4开安行何后总法X.强业学争研.年综育统的 出交主谈交6X这提化一监)展排政加,体与化纳(习力两交日…活一学弊 加前,小通两高,定测名了,各管强随布频理税二,的项通期…动到生端国强移我流运个政大的.下专扎项理交着局.次论人).帮全一重运:县、全更,外税交分域输1中治学借,题实任的通社.能0X治.助面个要输X.交两军好并知收的局综企(心敏校鉴以X8调1工务创运会X力理下武重职6(企1通项和地在名征户管合业一任锐园意-被研作的新输履2提目,装要能目三业运重公完以教管数理,治04)务性的义挂以。作,同路业飞职19高标在自指是 )现输大安成上育工,4户企理监,和陈。靠X调为严时径的速、。,.我全己标建 帮工税.行教现基学作,X业实.测内鉴旧 人研一格, 税发…我6始队的。立县录助程款业政育役学础家的(其9施目抓别的 主名按不 收展…大0终官头本在X一工措3税治等部目之乌建三中方的、管能行关7要消照断摘管X,中量坚兵脑论行、3作施收上一队标申议)一案.河实理力政键.采建防部提要理我队阅.持的,文政项实设征的系政。,斯1建般设为践、。管词取设监队高 ?国政0读讲学共提,管目践计管坚列治新着基与(设计例执外在理:数、督的自 笔高治和话习同高对理区 .情任定工形重提二规.浅法树改模高.据坚执条身随者校指学精者努党高的8概姓 况期性作式阐出)模谈为形革式校(持法令政着带的导习神强力性校基况名通调情以和。会下述学监.小民象强已行四.全干条治社教员.了,下修行础.:过研况来思下议,了校6测.节、,警经政).面部例觉会三育2公3加积学,养政之X任),想面上高要0看二。坚扎和很管河1协,和悟的、事X安工极习我,管上职6障我上是来校有,、身持实两难理年调只各,不总业现部环参者以进理,以四通的我,行三养小份严开学管;述可有项自断也将1节加胜对一的也畜来个过纯任深政要1殖流证格展一理创职持自规觉发9在本看讲的工步基就牧的方认洁职刻管素、成域号执、做好新报续身章学展发人,党观作坚本说业学面真性以领理,1个本综:法部两当路告2发业制习和生任产性念高定概行习0看学。来会的即指高X的队项今径、展务度政进…期 3品、,度理念政值锻X,习 的质创行标8,重正快;规1、知管治步…以0 加守把负想进管2的炼仍党 主总量新政之0人要规大节举1模建构识理,来2工党加责信行理号1和然的二要书路管头一自才意化教奏措8设建水和论人的粗规强的念简令.工存十、记高径理,6;任技义建育的 、全社平约,们%履放、学精,单以作…在八强系低和同全中术,设中校 。产们省会过束认的职,严习神进概及实肉困大化,列举比县队不坚、的园 业养肉主硬部真生情我缺党,一述新.践牛难、学特讲已增牛3指足持精所师 化育牛义,队贯活况吨知乏纪强团…,发,期产和全习向话经长存导。执细学生虽为之养和才,彻方述识品反化结…布我曾业问军,各精成3栏员 的法化、日然方恩殖谐能紧执式0职占、牌腐素和实尽.经情题和提位神6以开5各为管所常X向发的基社适紧行和如6全4教带倡质施职教况,公高领5X%来发位民理得,言:地会应围党观4下县期的给动廉作领尽,5过调主安自导通,区老、工推头,一县的当绕:肉以肉我;教为中《责达的我查要现身汇过在消师服作所动,为是的深前灭路 类来牛做从育长队建的到问与表役知报政支防,务获肉同我父目刻消火线 产关养人市等期支筑完了候老思现部识如队大我人三,牛比们母标内防救、一量心殖尊的场活坚部设成省和师考在队储下和队代的民严生增个上,涵工援方、的支呈敬道环动持一计了级崇, :政备大表心的三产长无了父把,作和加1持现的理节,班防上肉生高脑 从治和3队市中思实持3愧生母发更的执.强我5出各,看使一人火4牛观的海养工 党长%务委充想专.续于动给展加需勤政市3蓬位让,我项务规基、敬中殖作,%委述近的、满得题发真党的了肉清要训治教勃老我市深工实范;地价意浮环会能出的职年思市感到展学、一我牛醒,练育的师在受场刻作求》肉县值!现节议力栏领述来想人慨进。习无课们产地才事发,实益范认来真G牛“,观向出看精 肉导廉,大一 党…,生业认能B展同际无围识抓出要提,今他神 牛报5X学端、思步 纪…听命作识更坚发0势志工穷较到。栏X求高坚天们发和任产0告一正市绪提积一政市后和为到好定展1县头们作。窄加我3肉自持受熟展习期值 做思政又高4极、纪2很血调强的正立,:中人强深9牛0身人到悉方
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. 类的具体表现是通过定义来操作的。
c++第6章-类和对象1-习题
c++第6章-类和对象1
-习题课
胡凤珠
6.1 判断题 × 1.使用class定义的类,其默认的访问权限是公有的,使用struct定义 的类,其默认的访问权限是私有的。 × 2.类中的成员函数都是公有的,数据成员都是私有的。 × 3.定义在类体内的成员函数是内联函数,定义在类体外的成员函数不 能是内联函数。 √ 4.类定义后,它的成员个数及名称就不会再被改变了。 × 5.定义或说明对象时,系统会自动调用构造函数为创建的对象初始化。 如果类中没有定义任何构造函数时,就无法给定义的对象初始化。 √ 6.定义一个对象时,系统只为该对象的数据成员开辟内存空间,而成 员函数是同类对象共享的。 √ 7.对象成员的表示方法与结构变量成员的表示方法相同。 √ 8.创建对象时系统自动调用相应的构造函数为对象初始化,没有相应 的构造函数时,系统会自动生成。 √ 9.构造函数是一个其名与类名相同的特殊的成员函数。 × 10.析构函数是一个函数体为空的成员函数。
#include <iostream.h> class Rectangle { public: Rectangle(int a,int b)//2个参数的构造函数Rectangle { width=a; length=b; }//负责对对象的宽和长数据成员初始化 int Area()//求矩形的面积 { return width*length; } int Periment()//求矩形的周长 { return 2*(width+length); } void Changesize(int a,int b)//改变矩形的宽和长 { width=a; length=b; } void Print();//负责打印求的的面积和周长 private: int width,length; }; void Rectangle::Print() { cout<<"AREA="<<Area()<<endl; cout<<"PERIMENT="<<Periment()<<endl; } void main() { Rectangle r(5,8);//定义对象r 初始化 r.Print(); r.Changesize(3,9);//调用对象r的成员函数Changesize改变宽和长 r.Print(); }
类与对象练习题
C++类与对象习题一.问答题1.解释public和private的作用,公有类型成员与私有类型成员有什么区别?2.Protected 关键字有何作用?3.构造函数和析构函数有什么作用?二.选择题1.不是构造函数的特征()。
A. 构造函数的函数名与类名相同。
B. 构造函数可以重载。
C.构造函数可以设置缺省参数。
D.构造函数必须指定类型说明。
2.是析构函数的特征()。
A. 析构函数名与类名不同。
B. 析构函数的定义只能在类体内。
C.析构函数可以有一个或多个参数。
D.一个类中只能定义一个析构函数。
3.关于成员函数的特征的描述中,()是错误的。
A. 成员函数一定是内联函数。
B. 成员函数可以重载。
C.成员函数可以设置缺省参数。
D.成员函数可以是静态的。
4.由于常对象不能被更新,因此_________A.通过常对象可以调用任何不改变对象值的成员函数B.通过常对象只能调用它的常成员函数C.通过常对象只能调用静态成员函数D.常对象的成员都是常成员5 .下列对函数的缺省参数的定义和描述及对函数的调用中错误的为______.A. void show(char *text, int length=-1,int color=0);B. int getcolor(int pal);void show(char *text,int length=-1,int color=getcolor(pal));C.在设置了函数的缺省参数后,调用函数的对应实参就可以省略。
D. show(“how are you!”, ,);6.下列有关静态成员的叙述中,_______是正确的。
A、静态数据成员不是所有对象所共享的B、在类中声明静态数据成员时可以进行初始化C、静态成员函数只能访问类的静态成员D、非静态成员函数不能访问类的静态成员1.7.下面对引用的描述中是错误的。
A. 引用是某个变量或对象的别名B. 建立引用时,要对它初始化C. 对引用初始化可以使用任意类型的变量D.引用与被引用的变量是同一个地址。
第8章习题解答
第8章习题解答一. 选择题1. 关于类和对象,不正确的说法是()A. 类是一种数据类型,它封装了数据和函数B. 类是对某一类对象的抽象C. 可以基于类这种数据类型定义类的引用D. 一个类的对象只有一个【答案】D【解析】类是一种数据类型,可以基于“类”这种数据类型定义多个称为“对象”的变量。
2. 类定义的外部,可以被访问的类的成员有()A. public 的类成员B. public或private的类成员C. private或protected的类成员D. public或private 的类成员【答案】A【解析】类的成员数据或成员函数的访问属性分为三种情况:private、public和protected,即私有访问属性、公有访问属性和保护访问属性,类定义的外部只能访问公有访问属性的成员。
3 关于this 指针,说法错误的是()A. this指针必须显式说明B. 当创建一个对象后,this 指针就指向该对象C. 成员函数拥有this指针D. 静态成员函数拥有this指针【答案】D【解析】this指针是一种特殊的指针,它指向成员函数当前操作的数据所属的对象。
不同的对象调用相同的成员函数时,this指针将指向不同的对象,也就可以访问不同对象的成员数据。
而静态成员函数是一个类的所有对象共享的成员,而不仅仅是某一对象的成员。
因此,可以在没有任何对象存在的情况下,可以使用静态成员函数,而使用this指针必须有明确的对象所指。
4. 调用形式参数为普通对象的函数时,系统会自动调用相应类的()A. 名字不同于类名的一般成员函数B. 构造函数C. 析构函数D. 拷贝构造函数【答案】D【解析】若函数的形参为类的对象,调用函数时,实参赋值给形参,系统自动调用拷贝构造函数实现拷贝赋值。
5. 定义某类的对象后,再删除该对象,系统会自动调用()A. 名字不同于类名的一般成员函数B. 拷贝构造函数C. 构造函数D. 析构函数【答案】D【解析】当对象生存期结束时,需要调用析构函数,释放对象所占的内存空间。
(完整)C++面向对象程序设计习题 类与对象
类和对象(一)知识点:1.类与对象的概念,及两者的关系?2.类定义的格式,对象定义的格式,访问对象的成员的格式3.类中成员访问权限有哪几种,它们的特点?4。
如何对对象进行初始化?5。
构造函数与析构函数的特点,构造函数在哪些情况下被系统自动调用,析构函数什么情况下被调用;存在虚基类的派生类构造函数调用顺序?6.缺省构造函数的特点7。
拷贝构造函数的功能与特点8。
成员函数与内联函数的区别9.静态成员的概念与作用10.静态成员函数调用格式11.什么是友元,友元的作用12.作用域运算符的功能是什么?它的使用格式如何?13.满足成员函数重载的条件作业题一、选择填空1.在下列关键字中,用以说明类中公有成员的是( )。
A . public; B.private; C.protected; D.friend。
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.通常的拷贝初始化构造的参数是()。
A.某个对象名;B.某个对象的成员名;C.某个对象的引用名;D.某个对象的指针名。
8.关于成员函数特征的下述描述中,( )是错误的。
A.成员函数一定是内联函数;B.成员函数可以重载;C.成员函数可以设置参数的缺省值;(只能一次)D.成员函数可以是静态的。
C++习题第06章 类和对象
第06章类和对象1.填空题(1)类和对象是面向对象程序设计的两个最本概念,__表示抽象的概念,而__则是__的实例化。
(2)类的成员包括__和__两类。
(3)类的数据成员__在类的定义时进行初始化。
(能/不能)(4)类成员的访问方式包括__、__和__3种,默认的访问方式是__。
(5)类的__是为类的所有对象所共有的。
(6)类中声明友元的关键是__。
(7)在类的外部定义成员函数时应在函数的前面加上__和__。
(8)访问对象的成员有__、__和__3种格式。
(9)__函数和__函数是类的两种特殊的成员函数。
__函数负责完成对象的创建和初始化工作,__函数负责完成对象消失时的内存清理工作。
(10)类的__成员和__成员需要初始化表的方式提供初值。
(11)类的静态数据成员的初始化应该写在__区域上,而且要指明__和__。
(12)常对象只能调用类中的__函数,该函数为类的__函数。
(13)类的私有成员和保护成员只能被该类的__函数和__函数访问。
(14)C++中的类的成员指针有__指针和__指针。
(15)类的每一个成员函数都有一个隐含定义的指针,称为__指针,它的类型是成员函数所属类的类型。
(16)对象之间成员级的拷贝,称为__,可以采用默认的拷贝的构造函数。
2.选择题(1)下列关于和对象的描述上,不正确的是()。
(A)一个对象只能属于一个类。
(B)对象是类的一个实例。
(C)一个类只能有一个对象。
(D)类和对象的关系与数据类型和变量的关系类似。
(2)若有如下类声明:class A{int a;}则A类的成员a是()。
(A)公有数据成员(B)公有的成员函数(C)私有数据成员(D)私有成员函数(3)下列关于成员函数的描述中,不正确的是()。
(A)成员函数可以重载。
(B)成员函数一定是内联函数(C)成员函数可以是静态的(D)成员函数可以设置参数的默认值(4)在类外定义成员函数时,需要在函数名前加上()。
(A)对象名(B)类名(C)类名和作用域运算符(D)作用域运算符(5)下列关于this指针的描述中,正确的是()。
JAVA 练习题第5章对象和类
)。 (A)内部类不能有自己的成员方法和成员变量 (B)内部类可用private或protected修饰符修饰 (C)内部类可以作为其他类的成员,而且可访问 它所在的类的成员 (D)除static内部类外,不能在类内声明static成 员
【解析】内部类也可以有自己的成员方法和变量。
答案为 A
函数。
super
2.类与对象的关系是( )。
答案为 A
(A)类是对象的抽象 (B)对象是类的抽象 (C)对象是类的子类 (D)类是对象的具体实例
3.下面哪一个是Java中不合法的标识符( )。
(A)$persons (C)_myVar
(B)twoNum (D)*pointFra bibliotek答案为 D
答案为 D
4.区分类中重载方法的依据是( A.形参列表的类型和顺序 B.不同的形参名称 C.返回值的类型不同 D.访问权限不同
)。
【解析】形参表的类型和顺序不同时区分重载方法的
唯一标志。
答案为 A
5.子类对象能否直接向其父类赋值?父类对象能否向其子类赋值?
( ) A.能,能 B.能,不能 C.不能,能 D.不能,不能 值给子类对象。
据成员。
答案为 C
4.有一个类B,下面为其构造方法的声明,正确 【解析】构造方法没有类型,且方法名与类名相同。
的是( )。 (A)void B(int x) (B)B(int x) {} (C)b(int x) {} (D)void b(int x) {}
{}
答案为 B
答案为 B
在创建对象时必须( )
A、先声明对象,然后才能使用对象 B、先声明对象,为对象分配内存空间,然后才能 使用对象 C、先声明对象,为对象分配内存空间,对对象初 始化,然后才能使用对象 D、上述说法都对
类与对象(练习题)
专题5 类与对象的创建和使用一、选择题1.方法内定义的变量(c )。
A.一定在方法内所有位置可见B.可能在方法的局部位置可见C.在方法外可以使用D.在方法外可见2.方法的形参(a )。
A.可以没有B.至少有一个C.必须定义多个形参D.只能是简单变量3.return语句(b)。
A.不能用来返回对象B.只可以返回数值C.方法都必须含有D.一个方法中可以有多个4.main()方法的返回值类型是(c )。
A.boolean B.intC.void D.static5.编译并运行下面的程序,运行结果是()。
public class A{public static void main(String args[]){A a=new A();a.method(8);}void method(int i){System.out.println(“int: ”+i);}void method(long i){System.out.println(“long: ”+i);}A.程序可以编译运行,输出结果为:“int: 8”B.程序可以编译运行,输出结果为:“long: 8”C.程序有编译错误,因为两个method()方法必须定义为静态(static)的D.程序可以编译运行,但是没有输出6.能作为类及其成员的修饰符是(d )。
A.interface B.classC.protected D.public7.下列方法定义中,方法头不正确的是()。
A.public static x(double a){…} B.public static int x(double y){…} C.void x(double d){…} D.public int x(){…}8.构造方法合时被调用(d )。
A.类定义时B.使用对象的变量时C.调用对象方法时D.创建对象时9.下列哪个类声明是正确的(a )。
A.public abstract class Car{…} B.abstract private move(){…} C.protected private number; D.abstract final class H1{…} 10.下列不属于面向对象程序设计的基本特征的是()。
习题-类和对象
一、选择题类和对象类的定义: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 )。
C++程序设计与应用基础第二章 类和对象习题答案
C++程序设计与应用基础第二章类和对象习题答案1、请完成下列填空题1)在C语言中,编程的单位是___函数__:在C++语言中,编程的单位是____类__。
2)在下面程序的横线处填上适当的语句,使类型该程序执行结果为10。
#include <iostream.h>class MyClass{pub1ic:——MyClass(int a){x=a;}//为x置值——int GetNum(){return x;} //取x值private:int x;};void main(){Myclass my(10);Cout<<my.GetNum()<<end;}3)在类中定义和实现的函数称为__内联函数_______。
4)对类中的成员函数和属性的访问是通过___public___、___protected___和___private___这3个关键字来控制的。
5) ___new___运算符对指定类型对象动态分配内存并返回该类型的__指针___。
6)假定用户没有给一个名为MyClass的类定义构造函数,则系统对其定义的默认构造函数形式为___MyClass()_____。
2、编程题1)定义一个复数类imaginary。
用友元函数实现该类的加、减、乘和除运算。
答案:class Imaginary{public:Imaginary(float a,float b);friend Imaginary Add(Imaginary& img1,Imaginary& img2);friend Imaginary Sub(Imaginary& img1,Imaginary& img2);friend Imaginary Mul(Imaginary& img1,Imaginary& img2);friend Imaginary Div(Imaginary& img1,Imaginary& img2);private:float x,y;};Imaginary::Imaginary(float a,float b){x=a;y=b;}Imaginary Add(Imaginary& img1,Imaginary& img2) {float a,b;a=img1.x+img2.x;b=img1.y+img2.y;return Imaginary(a,b);}Imaginary Sub(Imaginary& img1,Imaginary& img2) {float a,b;a=img1.x-img2.x;b=img1.y-img2.y;return Imaginary(a,b);}Imaginary Mul(Imaginary& img1,Imaginary& img2) {float a,b;a=img1.x*img2.x-img1.y*img2.y;b=img1.x*img2.y+img1.y*img2.x;return Imaginary(a,b);}Imaginary Div(Imaginary& img1,Imaginary& img2) {float a,b;if((img2.x*img2.x+img2.y*img2.y)!=0){a=(img1.x*img2.x+img1.y*img2.y)/(img2.x*img2.x+img2.y*img2.y); b=(img1.y*img2.x-img1.x*img2.y)/(img2.x*img2.x+img2.y*img2.y); return Imaginary(a,b);}elsereturn Imaginary(0.0,0.0);}2)定义类Rational。
JAVA基础 第3章类与对象_练习题
第3章类与对象一.选择题1.下列不属于面向对象编程的特性是(D)。
A.封装性 B. 继承性 C. 多态性 D. 编译执行2.下列类的声明中不合法的是(C)。
A. class People{…}B. class 植物{…}C. Class A{…}D. public class 共有类{…3.下列方法的声明中不合法的是(C)。
A. float area(){…}B. void area(){…}C. double area(d){…}D. int area(int r){…}4. 下列构造方法(构造器)的调用中正确的是(C)。
A. 按照一般的方法调用B. 由用户直接调用C. 只能通过new自动调用D. 被系统调用5.下列程序运行的结果是(A)。
class Book{int width;int length;}public class A{static void f(Book p){p.width=20;p.length=40;}public static void main(String args[]){Book b=new Book();b.width=10;b.length=20;f(b);System.out.print(" "+b.width);System.out.print(" "+b.length);}}A. 20 40B. 10 40C. 10 20D. 以上都不对6.下列程序运行的结果是(D)。
public class A{static void f(int y){y=y+10;}public static void main(String args[]){double x=10;f(x);System.out.println(x);}}精选文库A. 10B. 20C. 10.0D. 程序编译错误7.下列程序运行的结果是(C)。
public class A{int z=20;static void f(int y){y=z;System.out.println(y);}public static void main(String args[]){f(10);}}A. 10B. 20C. 程序编译错误D. 以上都不对8. 以下代码的输出结果为(C)。
12-4类与对象练习题面向对象 (1)
A)成员函数一定是内联函数B)成员函数可以重载
C)成员函数可以设置参数的默认值D)成员函数可以是静态的
14. C++中对于结构中定义的成员,其默认的访问权限为()。
A)publicB)protectedC)privateD) static
15.为了使类中的成员不被类的对象通过成员操作符来访问,则不能把该成员的访问权限设置为()。
A、对象是类的一个实例
B、任何一个对象只能属于某个的类
C、一个类只能有一个对象
D、类与对象的关系和数据类型与变量的关系相似
3、下列关于构造函数的描述中,错误的是()。
A、构造函数可以设置默认参数
B、构造函数在定义类对象时自动执行
C、构造函数可以是内联函数
D、构造函数不可以重载
4、下列有关析构函数的说法中,()是错误的。
a.disp( );
return0;
}
该程序运行后的输出结果是()。
A)displB)disp2C)displdisp2D)程序编译时出错
24.若有以下程序:
#include<iostream.h>
classsample
{inti;
public:
voidsetvalue(intm){i=m;}
voidfun(intm){i+=m;}
staticints;
voiddis()
{
cout<<s<<endl;
}
};
intsample::s=0;
voidmain(){
samplea(2),b(5),c(a);
a.add();
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(一)选择题
1.设A为已定义的类名,下列声明A类的对象a的语句中正
确的是()
(A)public A a=new A( ); (B)public A
a=A( );
(C)A a=new class( ); (D)a A;
2.设X 、Y 均为已定义的类名,下列声明类X的对象x1
的语句中正确的是()
(A)public X x1= new Y( ); (B)X x1= X ( );
(C)X x1=new X( ); (D)int X x1;
3.下列方法定义中,正确的是
()
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.下列方法定义中,正确的是
()
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.下列方法定义中,不正确的是
()
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) int x( ){ char ch='a'; return (int)ch; }
B) void x( ){ ...return true; }
C) int x( ){ ...return true; }
D) int x( int a, b){ return a+b; }
7.下列方法定义中,方法头不正确的是
()
A)public int x( ){ ... }
B)public static int x( double y ){ ... }
C)void x( double d ) { ... }
D)public static x( double a ){ ... }
8.定义类头时,不可能用到的关键字是
()
A) class B)private C)extends D)public
9.设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的语
句中正确的是()
A) X x1= new Y( ); B) X x1= X ( );
C) X x1=new X( ); D) int X x1;
11.设X 、Y为已定义的类名,下列声明X类的对象x1的语句
中正确的是()
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) 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)public A(int x){...} ‘
B)static A(int x){...}
C)public a(int x){...}
D)void A(int x){...}
14.有一个类A,以下为其构造方法的声明,其中正确的是
()
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) 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的语句中正确
的是()
A)float A a; B public A a=A( );
A a=new int( ); D A a=new A( );
18.有一个类A,以下为其构造方法的声明,其中正确的是:
()
A)public A(int x){...}
B)static A(int x){...}
C)public a(int x){...}
D)void A(int x){...}
(二)简答题
1.构造方法和一般的方法有何区别?
2.面向对象的软件开发方法用什么把数据和基于数据的操作封装
在一起?
3.在一个类定义中,用什么描述对象的状态? 用什么描述对象的行
为?
4.什么方法是一个特殊的方法,用于对对象进行初始化?
5.一个源程序文件中,能有多于一个的public 类吗?
6.构造方法的方法名可由编程人员任意命名吗?
7.类的构造方法名必须和类名相同吗?
8.类的访问控制修饰符有哪些,访问权限各是什么?
9.类的成员的访问控制修饰符有哪些,访问权限各是什么?
10.包的作用是什么?如何声明一个包?
11.如何导入一个包?
12.定义类的访问器和设置器的形式是什么?
(三)程序阅读和程序填空
1.下面是一个类的定义,根据题目要求回答以下问题
class B
{ int x;
char y;
public B(int i,char j)
{ x=i; y=j; }
public void show()
{ S ystem.out.println("x="+x+"; y="+y); }
public void methodC(int x1)
{ x=x+x1; y++; show();
}
}
1)定义类B的一个对象b,将类中的变量x初始化为10、变量y初始化为’A’,请写出相应的语句。
2)若在1)问基础上有方法调用语句:b.show()则输出如何?
3)若在1)问基础上增加语句: b.methodC(1); 则输出为何?
2.下面是一个类的定义,请完成程序填空。
public class ____ Myclass ________
{ int x, y;
Myclass ( int i, _int j______) // 构造方法
{ x=i; y=j; }
}
3.以下方法fun的功能是求两参数之积。
int fun ( int a, int b )
{ return a*b; }
4.以下方法fun的功能是求两参数之积。
float fun ( int a, double b )
{ return (float)(a*b); }
5.以下方法fun的功能是求两参数的最大值。
int fun ( int a, int b )
{if(a>b) return a;else return b; }
6.以下方法m的功能是求两参数之积的整数部分。
int m ( float x, float y )
{ return (int)(x*y); }
7.下面方法的功能是判断一个整数是否为偶数,将程序补充完整。
public _boolean_ isEven(int a)
{ if(a%2==0)
return true_____;
else
return false; }。