电大面向对象程序设计期末复习题.docx

上传人:b****5 文档编号:6218497 上传时间:2023-01-04 格式:DOCX 页数:20 大小:29.66KB
下载 相关 举报
电大面向对象程序设计期末复习题.docx_第1页
第1页 / 共20页
电大面向对象程序设计期末复习题.docx_第2页
第2页 / 共20页
电大面向对象程序设计期末复习题.docx_第3页
第3页 / 共20页
电大面向对象程序设计期末复习题.docx_第4页
第4页 / 共20页
电大面向对象程序设计期末复习题.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

电大面向对象程序设计期末复习题.docx

《电大面向对象程序设计期末复习题.docx》由会员分享,可在线阅读,更多相关《电大面向对象程序设计期末复习题.docx(20页珍藏版)》请在冰豆网上搜索。

电大面向对象程序设计期末复习题.docx

电大面向对象程序设计期末复习题

一、单选题,在括号内填写正确的选项编号{每小题2分,共20分)

1.对象是构成现实世界的一个独立单位,它具有自己的静态特征和(

)特征。

A.颜色B.动态c.状态D重量

2.使用JDK编译Java程序时使用的命令是()。

A.javaB.javacC.appletviewerDjavadoc

3.包含主方法的类被称为主类,主方法的存储控制属性应定义为()。

A.finalB.abstractC.shortDostatic

4.在类的定义中,若需要把一个属性或方法定义为类成员,而不是实例成员,则使用的修饰符为()。

A.constB.finalC.staticDpublic

5.JaV3语言中规定的转义字符,以()字符作前缀。

A.B.IC./D.\

6.把对象的属性和服务组合成一个独立的整体,尽可能隐蔽其内部的细节,这称为对象的()。

A.封装性B.多态'性C.继承性D.开放性

7.具有()访问权限的成员能够被本类和其他任何类中的成员所访问。

A.publicB.protectdC.privateD.缺省

8.在类定义首部的语法格式中,()不能作为其中的修饰符。

A.publicB.protectdC.extendsD.abstract

9.下面的关键字()与异常处理无关。

A.throwB.throwsC.importD.finally

10.下面()既可以作为流的数据源,又可以作为流的目的地。

A.键盘B.磁盘文件c.显示器D.扫描仪

2、是非判断题,在每小题后面括号内打上对号、/表示叙述正确,打上叉号×表示叙述错误

11.Java既支持类的单继承,又支持类的多重继承。

()

12.在一个派生类中,能够定义与上层父类中的成员具有相同名称的成员。

()

13.派生类可以直接访问从父类中继承下来的所有成员。

()

14.在Java语言中,可以把实现了一个接口的类对象,赋给这个接口的引用对象。

()

15.在一个抽象类中,不允许包含任何成员变量和构造方法。

()

16.接口中的成员方法都默认具有public和abstract的修饰属性。

()

17.在Java语言中,一个类不能被定义在另一个类之中,类与类之间没有包含关系。

()

18.在Java语言中,声明包语句可以出现在一个Java程序文件的任何位置。

()

19.向量类Vector中的size()方法能够返回调用向量中当前保存的元素的个数。

()

20.FileWriter类的构造函数的参数不是一个文本文件名。

()

21.输入流类(InputStream)和输出流类(OutputStream)是用来处理字符流的抽象基类。

()

22.DatalnputStream类的文件流能够从二进制文件中读出基本类型的数据。

()

23.在图形用户界面中,原子组件是不能同用户进行交互的组件。

()

24.在Java程序中,既允许创建单个线程,也允许创建多个线程。

()

25.如果在派生类的构造方法的定义中没有明确调用父类的构造方法,则系统在执行派生类的构造方法时将隐含调用父类的元参构造方法。

()

三、填空题,在横线上填写正确的内容(每空1分,共15分}

26.Java语言中的逻辑类型的关键字为,它的两种取值分别为关键宇true和false。

27.用于修饰类的成员具有公有访问属性的关键字为

28.假定整数变量x的值为10,则执行y=2*x++赋值后,y的值为。

29.类中的方法不需要给定返回值类型。

30.当类中的成员定义采用static关键宇修饰时,则称该成员为类的(静态/实例)成员。

31.类中的成员方法也可以使用关键字进行修饰,表示该方法不能被子类所重新定义。

32.在方法调用的参数传递中,若为(按值/引用)传递,方法体中对形参内容的修改不影响实参的值。

33.定义一个终结类时需要在类首部的关键字class前使用修饰符。

34.假定一个字符串对象x的值为"abc",则x.concat("def勺的值为。

35.假定要访问→维数组X中的第k个元素,则对应的元素(下标变量)表示为。

36.基本数据类型boolean对应的包装类为。

37.在Java语言中,程序运行时发生的运行错误又分为致命性的严重错误和非致命性的-般错误两种,异常属于错误。

38.Java语言中的System.out表示标准(输入/输出)流。

39.对于原子组件,根据功能的不同,可以被分为类。

40.每个线程具有四种基本状态:

就绪状态、、死亡状态和阻塞状态。

四、写出下列每个程序编译和运行后的输出结果

41.publicclassXXK{

publicstaticvoidmain(String[]args){

intx,y=O;

for(x=l;x

ifCx%2==0)y+=x祷x;

System.out.println("y="+y);

42.publicclassXXK2{

privatefinalinta;

publicXXK2(inta){this.a=a;)

publicintf1(intx){

if(x%2==1)returna+x;

elsereturna-x;

publicstaticvoidmain(String[]args){

XXK2x=newXXK2(3);

inty=x.f1(l();

System.out.println("y="+y);

43.classRectangle{

privateinta,b;

publicRectangleCintaa,intbb){a=aa;b=bb;}

publicintareaO{returna势b;

}

publicintgirthO{return2券(a十b)

;}

publicclassXXK3extendsRectangle{

private

Intc;

publicXXK3(intaa,intbb,intcc){super(aa,bb);c=cc;}

publicintvolumeO{returnareaO赞c;}

public

intarrisLengthO{return2替girthO+4祷c;}

publicstaticvoidmain(Stri吨口args)

{

XXK3

x=newXXK3(l,3,5);

intyl=

x.volumeO;

inty2=

x.arrisLength();

System.

Olit.println(y1+","+y2);

44.publicclassXXK4{

publicstaticvoidmain(String[]args){

int口[丁a={凹,

5,剖,{3,6,9},

{4,5,6}};

int8=0;

{orCinti=O;i

{or(intj=O;j

自+

=a[i][jJ;

System.out.printirk"5="十s)

45.

classABC{

inta,b;

publicABCCinta,intb){this.a=的this.

b=b;}

publicintcompareToCABCx){returna祷b-x.

a祷x.

b;}

publicclassXXK5{

publicstaticvoidmainCString[Jargs){

int[J[Jd={{3,肘,饨,6},{5,6},{2,9},饵,

7}

};

ABC口arznew

ABC[5j;

inti,k=O;

for(i=O;i

ar[iJ=newABCCd[iJ[OJ,d[

i丁[

lJ

;

forCi=l;i

if(ar[i].compareToCar[k].O)k=i;

System.out.printlnC"k="+k);

一、单选题,在括号内填写正确的选项编号

1.B2.B3.D4.C5.D6.A7.A8.B9.C10.B

二、是非判断题,在每小题后面括号内打上对号J表示叙述正确,打上叉号×表示叙述错误

11.X(错)12..J(对)13.X(错)14..J(对)15.X(错)16..J(对)17.X(错)18.X(错)19..J(对)20.X(错)21.X(错)22..J(对)

23.X(错)24.、J(对)25..J(对)

三、填空题,在横线上填写正确的内容

26.boolean27.public28.2029.构造30.静态31.final32.按值33.final34."abcdef"35.x[k一lJ36.Boolean

37.一般38.输出39.340.运行状态

四、写出下列每个程序编译和运行后的输出结果

41.y=12042.y=一743.15,3644.s=4845.k=2

一、单项选题

1.设x和y均为bool量,则x&&y为真的条件是()。

A.它们均为真B.其中一个为真C.它们均为假D.其中一个为假

2.在下面循环语句中循环体执行的次数为()。

inti=0,s=0;

while(s<20){i++;s+=i;}

A.4B.5C.6D.7

3.假定p是具有int**类型的指针变量,则给p赋值的正确语句为()。

A.p=newint;B.p=newint*;C.p=newint**;D.p=newint[10];

4.以下关于函数模板叙述正确的是()。

A.函数模板也是一个具体类型的函数

B.函数模板的类型参数与函数的参数是同一个概念

C.通过使用不同的类型参数,函数模板可以生成不同类型的函数

D.用函数模板定义的函数没有类型

5.在多文件结构的程序中,通常把类的声明单独存放于()中。

A.主文件B.实现文件C.库文件D.头文件

6.假定有定义“intb[10];int*pb;”,则不正确的赋值语句为()。

A.pb=b;B.pb=&b[0];C.pb=newint;D.pb=b[5];

7.假定一个类的构造函数为“A(intaa=1,intbb=0){a=aa;b=bb;}”,则执行“Ax(0);”语句后,x.a和x.b的值分别为()。

A.0和0B.0和1C.1和0D.1和1

8.假定AA为一个类,a为该类私有的数据成员,GetValue()为该类公有函数成员,它返回a的值,x为该类的一个对象,则访问x对象中数据成员a的格式为()。

A.x.aB.x.a()C.x->GetValue()D.x.GetValue()

9.C++的继承性允许派生类继承基类的()。

A.部分特性,并允许增加新的特性或重定义基类的特性

B.部分特性,但不允许增加新的特性或重定义基类的特性

C.所有特性,并允许增加新的特性或重定义基类的特性

D.所有特性,但不允许增加新的特性或重定义基类的特性

10.假定AB为一个类,则执行“ABx;”语句时将自动调用该类的()。

A.带参构造函数B.无参构造函数C.拷贝构造函数D.赋值重载函数

11.定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为()。

A.int*p=newint[30];B.int*p=newint(30);C.int*p=new[30];D.*p=newint[30];

12.假定有“structBOOK{chartitle[40];floatprice;};BOOK*book=newBOOK;”,则正确的语句为()。

A.strcpy(book->title,”WangTao”);B.strcpy(book.title,”WangTao”);

C.strcpy(*book.title,”WangTao”);D.strcpy((*book)->title,”WangTao”);

13.假定有定义“intb[10];int*pb;”,则不正确的赋值语句为()。

A.pb=b;B.pb=&b[0];C.pb=newint;D.pb=b[5];

14.假定指针变量p定义为“int*p=newint(100);”,要释放p所指向的动态内存,应使用语句()。

A.deletep;B.delete*p;C.delete&p;D.delete[]p;

15.软件产品在需求发生变化、运行环境发生变化或发现软件产品本身的错误或不足时进行相应的软件更新的难易程度叫做软件的()。

A.可维护性B.可复用性C.兼容性D.正确性

16.若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字()放在函数原型或函数头的前面。

A.inB.inlineC.inLineD.InLiner

17.在关键字public后面定义的成员为类的()成员。

A.私有B.公用C.保护D.任何

18.假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为()。

A.x.aB.x.a()C.x->aD.x->a()

19.假定AA为一个类,inta()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为()。

A.intAA:

:

a()B.intAA:

a()C.AA:

:

a()D.AA:

:

inta()

20.在多文件结构的程序中,通常把类的定义单独存放于()中。

A.主文件B.实现文件C.库文件D.头文件

二、填空题

1.假定x=5,y=6,则执行表达式y+=x--计算后,x和y的值分别为__________和__________。

2.执行char*p=newchar(’a’)操作后,p所指向的数据对象的值为________。

3.变量v定义为“doublev=23.4;”,要使指针pv指向v,则定义pv的语句为______________。

4.若在类的定义体中只给出了一个成员函数的原型,则在类外给出完整定义时,其函数名前必须加上________和两个冒号分隔符。

5.假定用户只为类AB定义了一个构造函数"AB(intaa,intbb=0){a=aa;b=bb;}",则定义该类的对象时,其实参表中至少带有_________个实参。

6.假定用户没有给一个名为AB的类定义析构函数,则系统为其定义的析构函数为__________。

7.一个二维字符数组a[10][20]能够存储________个字符串,每个字符串的长度至多为________。

8.重载一个函数的条件是:

该函数必须在参数的个数或参数对应的__________上与其它同名函数不相同。

9.一个指针类型的对象占用内存的________个字节的存储空间。

10.假定一个数据对象为int*类型,则指向该对象的指针类型为_______。

11.假定p所指对象的值为25,p+1所指对象的值为42,则*++p的值为________。

12.假定p所指对象的值为25,p+1所指对象的值为42,则执行*(p++)或*p++运算后,p所指对象的值为________。

13.一个数组的数组名实际上是指向该数组________元素的指针,并且在任何时候都不允许________它。

14.重载一个函数的条件是:

该函数必须在参数的________或参数对应的__________上与其它同名函数不相同。

15.指针变量pv和pc定义为“void*pv=”Hello,word!

”;char*pc;”,要将pv值赋给pc,则正确的赋值语句是pc=___________pv。

16.若p指向x,则________与x的表示是等价的。

17.假定p为指向二维数组intd[4][6]的指针,则p的类型为________。

18.若y是x的引用,则对y的操作就是对_______的操作。

19.执行char*p=newchar(’a’)操作后,p所指向的数据对象的值为________。

20.执行________操作将释放由p所指向的动态分配的数据空间。

 

三、程序填充题,根据题意在横线上填写合适的内容。

2、已知一维数组类ARRAY的定义如下,ARRAY与普通一维数组区别是:

其重载的运算符[]要对下标是否越界进行检查。

classARRAY{

int*v;//指向存放数组数据的空间

ints;//数组大小

public:

ARRAY(inta[],intn);

~ARRAY(){delete[]v;}

intsize(){returns;}

int&operator[](intn);

};

___

(1)___operator[](intn)//[]的运算符成员函数定义

{

if(n<0||___

(2)___){cerr<<"下标越界!

";exit

(1);}

return___(3)___;

}

(1)

(2)(3)

3.类A的定义

classA{

char*a;

public:

A(){a=NULL;}

A(char*aa){

a=___

(1)____char[strlen(aa)+1];

strcpy(a,aa);

}

___

(2)______//定义析构函数,删除a所指向的动态存储空间

};

(1)

(2)

4.已知一个类的定义如下:

#include

classAA{

inta[10];

intn;

public:

voidSetA(intaa[],intnn);//用数组aa初始化数据成员a,

//用nn初始化数据成员n

intMaxA();//从数组a中前n个元素中查找最大值

voidSortA();//采用选择排序的方法对数组a中前n个元素

//进行从小到大排序

voidInsertA();//采用插入排序的方法对数组a中前n个元素进行从小到大排序

voidPrintA();//依次输出数组a中的前n个元素

};

该类中MaxA()函数的实现如下,请在标号位置补充适当的内容。

int____

(1)_____

{

intx=a[0];

for(inti=1;i

if(a[i]>x)___

(2)___;

___(3)___;

}

(1)

(2)(3)

四、理解问答题,写出程序运行结果或程序(或函数)所能实现的功能。

1.#include

voidmain()

{

inti,s=0;

for(i=2;i<=30;i+=2)s+=i*i;

cout<<"s="<

}

函数功能:

2.#include

doublef1(intn){

doublesign=1,s=1;

for(inti=2;i<=n;i++){

s+=sign/(i*i);

sign*=-1;

}

returns;

}

voidmain()

{

inta;

cin>>a;

cout<

}

函数功能:

3.#include

classA{

inta,b;

public:

A(){a=b=0;}

A(intaa,intbb){a=aa;b=bb;}

intSum(){returna+b;}

int*Mult(){

int*p=newint(a*b);

returnp;

}

};

voidmain(){

Ax(4,5),*p;

p=newA(2,3);

cout<

cout<Sum()<<’’<<*(p->Mult())<

}

运行结果:

4.#include

voidmain(){

inta[10]={76,83,54,62,40,75,90,92,77,84};

intb[4]={60,70,90,101};

intc[4]={0};

for(inti=0;i<10;i++){

intj=0;

while(a[i]>=b[j])j++;

c[j]++;

}

for(i=0;i<4;i++)cout<

cout<

}

运行结果:

五、编程题

根据下面类中拷贝构造函数的原型写出它的类外定义。

classArray{

int*a;//指向动态分配的整型数组空间

intn;//记录数组长度

public:

Array(intaa[],intnn);//构造函数,利用aa数组长度nn初始化n,//利用aa数组初始化a所指向的数组空间

Array(Array&aa);//拷贝构造函数

};

参考答案

一、单选题

1.A2.C3.B4.C5.D6.D7.A8.D9.C10.B11.A12.A13.D14.A15.B16.B17.B18.B19.A20.D

二、填空题

1.4112.‘a’3.double*pv=&v;4.类名5.16.~AB(){}7.101

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1