【文档说明】国家开放大学面向对象程序设计本形考任务1-4参考答案.pdf,共(20)页,499.641 KB,由小喜鸽上传
转载请保留链接:https://www.ichengzhen.cn/view-155449.html
以下为本文档部分文字说明:
国家开放大学《面向对象程序设计(本)》形考任务1-4参考答案形考任务1一、单项选择题(每题1分,共20分)1.Java是一门()语言。a.汇编b.面向对象的高级c.面向过程的高级d.机器2.机器语言中的指令编码为()编码。a.符号b.数字c.十进制d.二进制3.更接近人类自然语言的计算机语言是()
语言。a.高级b.机器c.数字d.汇编4.对象是构成现实世界的一个独立单位,它具有自己的静态特征和()特征。a.重量b.颜色c.状态d.动态5.类是对具有共同属性和行为的对象的抽象描述,每个对象称为该类的一个()。a.成分b.元素c.产品d.实例6.Java语言的主要特点不包括()。a.可移植性
b.处理文件c.面向对象d.自动垃圾回收7.Java语言的主要特点不包括()。a.解释执行b.处理字符串c.多线程d.安全性8.具有相同属性和服务的一组对象的模板称为()。a.代码b.概念c.类d.程序9.把对象的属性和服务组合成一个独立的整体,
尽可能隐蔽其内部的细节,这称为对象的()。a.继承性b.封装性c.开放性d.多态性10.使用JDK编译Java程序时使用的命令是()。a.javadocb.javacc.appletviewerd.java11.组成Java程序的最小单位是()。a.方法b.常量c.变量d.类12.在Java
程序中包含主方法的类被称为主类,主方法名为()。a.voidb.mainc.Maind.args13.在Java程序中包含主方法的类被称为主类,主方法的访问控制修饰符为()。a.privateb.staticc.publicd.protected14.在Java程
序中包含主方法的类被称为主类,主方法的存储控制属性应定义为()。a.staticb.shortc.finald.abstract15.Java语言中的基本数据类型有9种,其中属于数值型的数据类型有()种。a.6b.8
c.5d.716.Java语言中的switch语句属于()语句。a.循环控制b.分支处理c.数据输入d.数据输出17.先执行循环体,后进行循环条件判断的语句是()。a.do…whileb.whilec.ifd.for18.当循
环执行的次数已知时,最后使用()语句。a.forb.switchc.do…whiled.while19.在类的定义中,若需要把一个标识符定义为常量,则使用的修饰符为()。a.classb.finalc.s
taticd.const20.在类的定义中,若需要把一个属性或方法定义为类成员,而不是实例成员,则使用的修饰符为()。a.staticb.constc.finald.public二、简答题,选择下列每个主函数的运行后的输出结果。(每题1分,共5分)21.publicstati
cvoidmain(String[]args){intx,y=0;for(x=1;x<5;x++)y+=x*x;System.out.println("y="+y);}a.y=30b.y=2022.publicstaticvoidmain(String[]args){in
tx=1,y=1;while(x++<5)y+=x*x;System.out.println("y="+y);}a.y=55b.y=3023.publicstaticvoidmain(String[]args){intx,y=0;for(x=1;x<10;x+
+)if(x%2==0)y+=x*x;System.out.println("y="+y);}a.y=20b.y=12024.publicstaticvoidmain(String[]args){intc0=0,c1=0,c2=0;for(intx=1;x<=20;x+
+){switch(x%3){case0:c0++;break;case1:c1++;break;case2:c2++;break;}}System.out.println("c0,c1,c2="+c0+","+c1+","+c2);}a.c0,c1,c2=
6,7,7b.c0,c1,c2=7,6,625.publicstaticvoidmain(String[]args){inti=1,s=0;while(true){if(i%2==0)s+=i;if(i++>=10)bre
ak;}System.out.println("s="+s);}a.s=120b.s=30形考任务2一、判断题(每题1分,共20分)1.一个新类可以从现有的类中派生,这个过程称为类继承。(√)2.根据已有类继承定义出的新类称为已有类的派生类(子类),已有类称为超类(父类)。(√)3.Java不
支持类的多重继承,只支持类的单继承。(√)4.如果在派生类的构造方法的定义中没有明确调用父类的构造方法,则系统在执行派生类的构造方法时会自动调用父类的缺省(默认)构造方法。(√)5.在一个派生类中,可以定义与上层父类中的成员同名的变量。(√)6.一个父类的对象可以直接赋值给下层子类
的对象。(×)7.任何一个派生类的引用变量(或对象)都可以被当成一个父类的引用变量(或对象)。(√)8.派生类可以直接访问从父类中继承下来的所有成员变量及方法。(×)9.在Java语言中,既可以根据一个类创建对象,也可以根据一个接口
创建对象。(×)10.Java中的动态多态性实现手段是覆盖基类中的同名成员函数,其调用规则是依据对象在实例化时而非定义时的类型调用对应类中的同名成员函数。(√)11.抽象类要包含一些抽象方法,这种抽象方法只有方法的声明,而没有方法的实现。(√)12.在一个抽象类中,也可以包含成
员变量和构造方法。(√)13.接口中的所有方法都是抽象的,每个方法都只有方法声明,而没有方法体。(√)14.在Java语言中,既不能利用抽象类生成对象,也不能利用接口生成对象。(√)15.接口中的所有成员方法都默认具有public和abstract修饰。(√)16.一个类
可以实现一个或多个接口,所使用的子句关键字为implements。(√)17.在Java语言中,一个类不能被定义在另一个类之中,类与类之间没有包含关系。(×)18.在Java语言中,使用包提供了包一级的封装及存取权限。(√)19.一个包不仅可以包含若干个类字节码文件,还可以包含若干个包。(√)2
0.在Java语言中,声明包语句的关键字为package,引入包语句的关键字为import。(√)二、简答题,选择下列每个主函数运行后的输出结果。(每题1分,共5分)21.publicclassXXK2{privateinta,b;publicXXK2(
intaa,intbb){a=aa;b=bb;}publicintf1(intx){if(x>10)returna+b+3*x;elsereturna*b*x;}publicstaticvoidmain(Str
ing[]args){XXK2x=newXXK2(3,4);inty=x.f1(8);System.out.println("y="+y);}}a.y=96b.y=3422.publicclassXXK4{publicstaticvoid
main(String[]args){int[]a={2,5,8,10,15,20};ints=0;for(inti=0;i<a.length;i++)s+=a[i];System.out.println("s="+s);}}a.s=43b.s=6023.publicclassXXK4{publi
cstaticvoidmain(String[]args){String[]a={"xxk","weirong","xucong","xuxiaohua","baojuan"};intm=0;for(inti=0;i<a
.length;i++){intn=a[i].length();if(n>m)m=n;}System.out.println("m="+m);}}a.m=9b.m=1024.abstractclassShape{inta,b;publicShape(
intaa,intbb){a=aa;b=bb;}abstractpublicdoublearea();}classRectangleextendsShape{publicRectangle(intaa,intbb){super(aa,b
b);}publicdoublearea(){returna*b;}}classTriangleextendsShape{publicTriangle(intaa,intbb){super(aa,bb);}publicdoublear
ea(){returna*b/2;}}publicclassXXK3{publicstaticvoidmain(String[]args){Shapex,y;x=newRectangle(10,20);y=newTriangle(10,15);System.out.pr
intln(x.area()+","+y.area());}}a.200.0,75.0b.200.1,75.125.interfaceShape{doublearea();doublegirth();}classRectangleimplementsShape{inta,b;p
ublicRectangle(intaa,intbb){a=aa;b=bb;}publicdoublearea(){returna*b;}publicdoublegirth(){return2*(a+b);}}publicclassXXK3{publi
cstaticvoidmain(String[]args){Shapex;x=newRectangle(5,8);System.out.println(x.area()+","+x.girth());}}a.50.0,
36.0b.40.0,26.0形考任务3一、判断题(每题1分,共10分)1.数组的大小自创建以后就固定了。如果需要在序列中存储不同类型的数据,或者需要动态改变其大小,就需要用集合类型,如Vector类。(√)2.所有集合类都位于java.util包下。(√
)3.集合框架是为表示和操作集合而规定的一种统一的标准体系结构,包含三大块内容:接口、实现和算法。(√)4.Set接口继承Collection接口,“无序不可重复”,即Set是无序集合,集合中的元素不可以重复。List接口也继承Collection接口,“有序可重复”,允许重复
,即List是有序集合,集合中的元素可以重复。(√)5.Map接口是键-值对象,即Map中保存Key-value对形式的元素,访问时只能根据每项元素的key来访问其value。key不能重复,value可以重复。(√)6.数组的长度不能够被改变,而向量类(Vect
or)对象的长度可以被改变。(√)7.向量类Vector中的add(x)方法能够把x元素加入到当前对象的末尾。(√)8.向量类Vector中的size()方法能够返回向量中当前保存的元素的个数。(√)9.向量类Ve
ctor中的get(i)方法不能够返回向量中下标为i的元素值。(×)10.向量类Vector中的set(i,x)方法不能够把向量中下标为i的元素值修改为x的值。(×)二、单项选择题(每题1分,共10分)1
1.下列()接口不是继承于Collection接口。a.SortedSetb.Listc.Setd.Map12.下列能表示栈(stack)s1长度的是()。a.s1.sizeb.s1.lengthc.
s1.size()d.s1.length()13.有关Set说法错误的是()。a.Set是一个不能包含重复元素的集合b.Set继承于Collection接口c.Set接口是对数学的“集合”进行抽象建模d.Set里的元素排列是有序的,因此可以使用数字下标访问14.有关List说法错误的是
()a.可以通过它的索引来访问任何元素,List更像长度动态变换的数组b.List继承于Collectionc.List是一个有序集合,可以包含重复元素d.List的元素是无序的15.有关Map说法错误的是()。a.Map是一个将key映射到value
的对象b.每个key最多只能映射一个value,也就是说value可以相同,但key不能相同c.Map继承于Collectiond.一个Map不能包含重复的key16.下列哪个类不是异常类的父类?()。a.E
xceptionb.Throwablec.Objectd.Error17.下面的异常()不属于非检查型异常。a.IO异常b.空值操作c.数组越界d.除零18.下面的关键字()与异常处理无关。a.throwb.voidc.th
rowsd.try19.在Java语言中,捕获和处理异常的语句块为()。a.try…catchb.do…whilec.if…elsed.switch…case20.下面的异常()为数组下标越界异常。a.NullPointer
Exceptionb.FileNotFoundExceptionc.ArrayIndexOutOfBoundsExceptiond.ArithmeticException三、简答题,选择下列每个主函数运行后的输出结果。(每题1分,共5
分)21.PublicclassTest{Publicstaticvoidmain(String[]args){VectorteamList=newVector();teamList.add("Z");teamList.add("L");teamList.add("W");t
eamList.remove(0);teamList.remove(0);System.out.println(teamList.size()+","+teamList.get(0));}}a.2,Wb.1,W22.publicclassXXK4{publicstaticvo
idmain(String[]args){int[][]a={{2,5,8},{3,6,9},{4,5,6}};int[]b=newint[3];inti,j;for(i=0;i<a.length;i++)for(j=0;j<a[i].length
;j++)b[i]+=a[i][j];for(i=0;i<b.length;i++)System.out.print(b[i]+"");}}a.161816b.15181523.classABC{inta,b;publicABC(inta,intb){th
is.a=a;this.b=b;}publicintcompareTo(ABCx){returna*b-x.a*x.b;}}publicclassXXK5{publicstaticvoidmain(String[]args){int[][]d={
{3,8},{4,6},{5,6},{2,9},{6,7},{5,8}};ABC[]ar=newABC[d.length];inti,k=0;for(i=0;i<ar.length;i++)ar[i]=newABC(d[
i][0],d[i][1]);for(i=1;i<ar.length;i++)if(ar[i].compareTo(ar[k])>0)k=i;System.out.println("k="+k);}}a.k=10b.k=424.classABC{Stringname;doublepr
ice;publicABC(Stringna,doublepr){name=na;price=pr;}publicintcompareTo(ABCx){if(name.compareTo(x.name)>0)return1;if(name.compareTo(x.name)<0)return-1;
elsereturn0;}}publicclassXXK5{publicstaticvoidmain(String[]args){String[]s={"apple","pear","tangerme","banana","grape"};double[]d={3.8,
2.5,3.2,4.3,5.2};ABC[]ar=newABC[s.length];inti,k=0;for(i=0;i<ar.length;i++)ar[i]=newABC(s[i],d[i]);for(i=1;i<ar.l
ength;i++)if(ar[i].compareTo(ar[k])>0)k=i;System.out.println(ar[k].name+""+ar[k].price);}}a.tangerme4.8b.tangerme3.225.publicclassSta
ckTest{publicstaticvoidmain(String[]args){Stack<Integer>st=newStack<Integer>();st.push(newInteger(11));s
t.push(newInteger(22));st.push(newInteger(33));System.out.println("sizeis->"+st.size());System.out.println("Topis->"+st.pee
k());st.pop();System.out.println("newTopis->"+st.peek());}}a.sizeis->4Topis->33newTopis->22b.sizeis->3Topis->33newTopis->22形考任务4一、单项选择题(每题1分,共1
0分)1.下面()既可以作为流的数据源,又可以作为流的目的地。a.磁盘文件b.显示器c.键盘d.扫描仪2.进行文件输入输出操作时,最常用的系统包是()。a.java.langb.java.utilc.java.awtd.java.io3.Java中有3
个标准输入/输出流,下面的()不包含在内。a.System.outb.System.errc.System.curd.System.in4.在读字符文件Employee.dat时,使用该文件作为参数的类是()。a.Da
taInputStreamb.DataOutputStreamc.BufferedReaderd.FileInputStream5.下列不是InputStream子类的是()。a.ObjectInputStreamb.FileOutputStreamc.ZipInputStrea
md.FileInputStream6.下列哪个类不是异常类的父类?()。a.Errorb.Throwablec.Objectd.Exception7.下面的关键字()与异常处理无关。a.tryb.voi
dc.throwd.throws8.下面的异常()为数组下标越界异常。a.NullPointerExceptionb.ArrayIndexOutOfBoundsExceptionc.FileNotFoundExceptiond.ArithmeticEx
ception9.下面()既可以作为流的数据源,又可以作为流的目的地。a.扫描仪b.键盘c.磁盘文件d.显示器10.Java中有3个标准输入/输出流,下面的()不包含在内。a.System.curb.System.errc.System.outd.System.in二
、判断题(每题1分,共10分)11.在Java中将信息的输入与输出过程抽象为输入/输出流。输入是指数据流入程序,输出是指数据从程序流出。(√)12.向文本文件中写入字符数据,在任何时候都只需要用到文件写入器类(FileWriter),不需要用到缓冲写入器类(BufferedWrite
r)。(×)13.FileWriter和FileWriter类的构造函数的参数都需要一个文本文件名。(√)14.在对文件进行的输入/输出(I/O)方法的调用中,当遇到错误时通常会抛出一个IOException异常。(√)15.当一个方法进行文件访问操作可能生成一个IOExce
ption异常时,该方法必须在方法头声明抛出该异常,别无其他选择。(×)16.输入流类(InputStream)和输出流类(OutputStream)是用来处理字节流的抽象基类。(√)17.Java.io包中的OutputStream及其子类专门
用于把字节数据写入二进制数据文件中。(√)18.文件输出流类(FileOutputStream)和数据输出流类(DataOutputStream)不是OutputStream类的子类。(×)19.DataOutputStream类的文件流能够把各种基本类型的数据写入到二进制数据文件中
。(√)20.java.io包中提供的ObjectOutputStream类能够把对象信息存储到文件中。(√)三、简答题,选择下列每个主函数运行后的输出结果。(每题1分,共5分)21.publicclassXXK2{privatefinalinta;pu
blicXXK2(inta){this.a=a;}publicintf1(intx){if(x%2==1)return2*(a+x);elsereturn3*a+x;}publicintget(){returna;}publicstaticvoid
main(String[]args){XXK2x=newXXK2(8);inty=x.f1(20);y+=x.get();System.out.println("y="+y);}}a.y=52b.y=6222.publiccla
ssXXK2{privateinta;publicXXK2(intaa){a=aa;}publicintf1(intx){if(x%2==1)return2*(a+x);elsereturn3*a+x;}publicintget(){returna;}publicstaticv
oidmain(String[]args){XXK2x=newXXK2(5);inty=x.f1(9);y+=x.get()*x.get();System.out.println("y="+y);}}a.y=53b.y=6223.publicclassXXK2{privateinta;pub
licXXK2(){a=3;}publicXXK2(intaa){a=aa;}publicdoublef1(){return2*Math.pow(a,3)+a;}publicstaticvoidmain(Stri
ng[]args){XXK2x=newXXK2(),y=newXXK2(5);System.out.println(x.f1()+","+y.f1());}}a.67.0,255.0b.57.0,255.024.classRectangle{privateint
a,b;publicRectangle(intaa,intbb){a=aa;b=bb;}publicintarea(){returna*b;}publicintgirth(){return2*(a+b);}}publicclassXXK3extendsRectangle{privateintc
;publicXXK3(intaa,intbb,intcc){super(aa,bb);c=cc;}publicintvolume(){returnarea()*c;}publicintarrisLeng
th(){return2*girth()+4*c;}publicstaticvoidmain(String[]args){XXK3x=newXXK3(2,3,4);inty1=x.volume();int
y2=x.arrisLength();System.out.println(y1+","+y2);}}a.34,36b.24,3625.publicclassSetTest{publicstaticvoidmain(String
[]args){HashSeths=newHashSet();booleanb1=hs.add("a");hs.add("b");hs.add("c");hs.add("d");hs.add("d");booleanb2=hs.add("a");System.
out.println("size="+hs.size());}}a.size=4b.size=5