- 96.92 KB
- 2022-04-22 11:23:14 发布
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
'《Java程序设计》课后练习答案第一章Java概述一、选择题1.(A)是在Dos命令提示符下编译Java程序的命令,(B)是运行Java程序的命令。A.javacB.javaC.javadocD.javaw2.(D)不是Java程序中有效的注释符号。A.//B./**/C./***/D.*/*/3.(B)不是Java语言的特点。A.面向对象B.自动检查语法错误C.跨平台D.解释执行4.Java编译器会将Java程序转换为(C)A.可执行代码B.目标代码C.字节码D.机器代码5.Java源文件的扩展名是(D)A..classB..jarC..javD..java二、简答题1、Java的跨平台的含义是什么?为什么Java可以跨平台?Java语言的一个非常重要的特点就是平台无关性。它是指用Java编写的应用程序编译后不用修改就可在不同的操作系统平台上运行。Java之所以能平台无关,主要是依靠Java虚拟机(JVM)来实现的。JVM是一种抽象机器,它附着在具体操作系统之上,本身具有一套虚机器指令,并有自己的栈、寄存器组等。Java编程人员在编写完Java程序后,Java编译器将Java源代码文件编译后生成字节码文件(一种与操作系统无关的二进制文件)。字节码文件通过Java虚拟机(JVM)里的类加载器加载后,经过字节码校验,由解释器解释成当前电脑的操作系统能够识别的目标代码并最终运行。以下图展示了Java程序从编译到最后运行的完整过程。2、简述Java语言的特点Java具有以下特点:1)、简单性Java语言的语法规则和C语言非常相似,只有很少一部分不同于C语言,并且Java还舍弃了C语言中复杂的数据类型(如:指针和结构体),因此很容易入门和掌握。31
1)、可靠性和安全性Java从源代码到最终运行经历了一次编译和一次解释,每次都有进行检查,比其它只进行一次编译检查的编程语言具有更高的可靠性和安全性。2)、面向对象Java是一种完全面向的编程语言,因此它具有面向对象编程语言都拥有的封装、继承和多态三大特点。3)、平台无关和解释执行Java语言的一个非常重要的特点就是平台无关性。它是指用Java编写的应用程序编译后不用修改就可在不同的操作系统平台上运行。Java之所以能平台无关,主要是依靠Java虚拟机(JVM)来实现的。Java编译器将Java源代码文件编译后生成字节码文件(一种与操作系统无关的二进制文件)。字节码文件通过Java虚拟机(JVM)里的类加载器加载后,经过字节码校验,由解释器解释成当前电脑的操作系统能够识别的目标代码并最终运行。下图展示了Java程序从编译到最后运行的完整过程。4)、分布式分布式包括数据分布和操作分布,而Java支持WWW客户机/服务器计算模式,因此也支持这两种分布式。5)、多线程Java在两方面支持多线程。一方面,Java环境本身就是多线程的。若干个系统线程运行负责必要的无用单元回收,系统维护等系统级操作;另一方面,Java语言内置多线程控制,可以大大简化多线程应用程序开发。如果操作系统本身不支持多线程,Java的多线程特性可能就表现不出来。三、综合编程题1、请编写一个简单的Java程序能够输出“这是我的第一个Java程序”。(注意为程序添加合适的注释和文档注释)。/***第一个java程序*/publicclassDemo{/***main方法,程序的起点*/publicstaticvoidmain(String[]args){//向控制台输出System.out.println("这是我的第一个Java程序");}}第二章Java语法基础31
一、选择题1.下面哪个单词是Java语言的关键字(B)?A.c2cX.}#f%W3O9@$@7cDoubleB.thisC.stringD.bool2.下面属于Java关键字的是(D)。A.NULLB.IFC.DoD.goto3.在启动Java应用程序时可以通过main()方法一次性地传递多个参数。如果传递的参数有多个,可以用空格将这些参数分割;如果某一个参数本身包含空格,可以使用(B)把整个参数引起来。A.单引号B.双引号A2@!l&h&I:Q$a"H4o4S4.下面哪个是Java语言中正确的标识符(BD)。A.5xB.$xC.abc@D.com5.Java语言中,下列标识符错误的是(D)。A._*A,/A"|%labcB.abcC.ABCD.5abc6.在Java中,整型常量不可以是(A)。A.!r;*z&V"D0T0`)_doubleB.LongC.intD.byte7.在Java中,不属于整数常量的是(D)。A.:n"h:R-C+D100B.100LC.0x100AD.6.0f8.下面哪个语句能定义一个字符变量chr(B)。A.charchr=’abcd’;B.charchr=’uabcd’;C.charchr=”abcd”;D.charchr=uabcd;9.下面哪个是对字符串s1的不正确定义(CD)。A.Strings1=”abcd”;B.Strings1;C.2V2X2U0F4*x)Strings1=‘abcd ’;D.Strings1=”abcd”;10.下面哪个范围是char型的取值范围(C)。A.-256~255B.-(2^15)~(2^15)-1C.u0000’~‘uffff’D.0~3276711.下面哪条语句不能定义一个float型的变量f1(ABD)。A.-y"c!B&Q$@)m"W-pfloatf1=3.1415E10B.floatf1=3.14C.floatf1=3.1415FD.f1=3.14F12.下列运算结果为float的是(C)。A.100/10B.100*10C.100.0+10D.100-1013.数组中可以包含什么类型的元素(D)。A.int型B.string型C.数组D.以上都可以14.Java中定义数组名为xyz,下面哪项可以得到数组元素的个数(B)。A.xyz.length()B.xyz.lengthC.len(xyz)D.ubound(xyz)15.下面哪条语句定义了3个元素的数组(A)。A.int[]a={20,30,40};B.inta[]=newint(3);C.int[3]array;D.int[]arr;二、简答题1.Java有哪些基本的数据类型?写出这些基本数据类型所占用的最大空间(用字节描述)。2.说明Java字符编码的类型与特点。3.写出Java中六个常用的转义字符。4.下面的几个标示符哪些是正确的,哪些是错误的,如果是错误的,请说明原因。MyClass,_isHis,3JavaProgram,_$asdf,Java-Visual-Machine5.说出常量与变量的定义并举例说明。6.什么是强制类型转换?并说明其运用场合。31
1.描述Java程序的构成。如何判断Java程序的主类?下面的程序有哪些错误并改正,该程序的源代码应当保存为什么名字的文件?publicclassMyClass{publicstaticvoidmain(){System.out.printIn("mynameis…");}System.out.printIn(“theend!”);}2.结构化程序设计有哪三种基本流程?分别对应Java中的那些语句?3.在一个循环中使用break,continue,return的差别。4.数组的定义,特点与分类。如何进行数组的初始化?31
第三章面向对象的实现一、选择题1.在Java中,用package说明一个包时,该包的层次结构必须是(B)。A.与文件的结构相同B.与文件的目录层次相同C.与文件的类型相同D.与文件大小相同2.下列构造方法的调用方式中,正确的是(C)。A.按照一般方法调用B.由用户直接调用C.可通过new自动调用D.被系统调用3.int型public成员变量MAX_LENGTH,该值保持为常数100,则定义这个变量的语句是(D)。A.publicintMAX_LENGTH=100B.finalintMAX_LENGTH=100C.publicconstintMAX_LENGTH=100D.publicfinalintMAX_LENGTH=1004.在Java中,以下叙述不正确的是(B)A.构造方法名与类名相同。B.构造方法不是用来完成初始化的。C.构造方法由new操作调用,而不能被用户直接调用。D.构造方法没有返回类型。5.在Java中,下面的叙述哪个是不正确的?(D)A.类的静态方法可以在该类的对象被创建前调用B.类的静态方法不能访问该类的非静态方法C.abstract修饰符可以出现在类或方法的前面,但不能出现在变量之前D.final修饰符可以出现在类或变量之前,但不能出现在方法之前6.在Java里,下列选项(D)不是实现面向对象思想的机制。A.封装B.继承C.多态D.数据类型转换7.类Worker是类Person的子类,Worker构造方法中有一句"super();",该语句是什么意思?(C)A.调用类Worker中定义的super()方法B.调用类Person中定义的super()方法C.调用类Person的构造函数D.语法错误8.给定Java程序,如下:编译运行Test.java,结果是(C)。publicclassTest{privatestaticfinalintcounter=10;publicstaticvoidmain(String[]args){System.out.println(counter++);}}A.10B.编译错误C.11D.运行时出现异常9.给定如下Java代码,编译时会在(D)出现错误。(只选择一项)classParent{}classChildextendsParent{31
publicstaticvoidmain(String[]args){Parentp1=newChild();//第一行Parentp2=newParent();//第二行Childc1=newChild();//第三行Childc2=newParent();//第四行}}A.第一行B.第二行C.第三行D.第四行1.在Java中,某类方法使用下列(BC)访问修饰符修饰后,可以被其的子类访问。A.privateB.protectedC.publicD.friendly2.在Java语言中,如果你有下面的类定义:abstractclassShape{abstractvoiddraw();}classSquareextendsShape{}以下描述正确的是(B)A.一切成功编译B.Shape可以编译,Square不能编译C.Square可以编译,Shape不能编译D.Square,Shape都不能编译3.分析下列Java代码:classA{publicstaticvoidmain(String[]args){method();}staticvoidmethod(){System.out.println("Hello");System.exit(0);System.out.println("good-bye");}}编译运行后,输出结果是(A)。A."Hello"B."good-bye"C."Hello"后面是"good-bye"D.代码不能编译4.下表是final修饰符与变量、方法、类等一起作用的结果的对应表,但是对应关系存在错误,请选择正确的对应关系。(C)概念作用1变量A不能再产生子类2方法B一旦赋值,就不能更改3类C不能在子类中覆盖31
A.1-A2-B3-CB.1-C2-A3-BC.1-B2-C3-AD.1-C2-B3-A1.有以下程序:publicclassConstOver{publicConstOver(intx,inty,intz){}}下面哪个方法重载了上面的ConstOver构造方法?(B)A.protectedintConstOver(){}B.privateConstOver(intz,inty,bytex){}C.publicobjectConstOver(intx,inty,intz){}D.publicvoidConstOver(bytex,bytey,bytez){}2.有以下程序:classBaseClass{privatefloatx=1.0f;publicfloatgetVar()(returnx;)}classSubclassextendsBaseClass{privatefloatx=2.0f;//insertcodehere}下面哪个方法加到程序中的“//insertcodehere”位置是有效的重定义父类的方法。(B)A.protectedfloatgetVar(){returnx;}B.publicfloatgetVar(){returnx;}C.protectedfloatdoublegetVar(){returnx;}D.publicfloatgetVar(floatf){returnf;}3.指出下列程序运行的结果(B)publicclassExample{Stringstr=newString("good");char[]ch={"a","b","c"};publicstaticvoidmain(String[]args){ Exampleex=newExample(); ex.change(ex.str,ex.ch); System.out.print(ex.str+"and"); System.out.print(ex.ch);}publicvoidchange(Stringstr,charch[]){ str="testok"; ch[0]="g";}}A.goodandabcB.goodandgbcC.testokandabcD.testokandgbc31
1.下列哪些语句关于内存回收的说明是正确的?(B)A.程序员必须创建一个线程来释放内存;B.内存回收程序负责释放无用内存;C.内存回收程序允许程序员直接释放内存;D.内存回收程序可以在指定的时间释放内存对象。2.创建一个名为“MyClass.java”的文件,该文件中只有一个可被整个工程中的所有类访问的类,那么该类的正确声明应为:(C)A.privateclassMyClassextendsObjectB.classTestClassextendsObjectC.publicclassMyClassD.publicclassTestClass3.下列叙述中,错误的是(A)A.内部类的名称与定义它的类的名称可以相同B.内部类可用abstract修饰C.内部类可作为其他类的成员D.内部类可访问它所在类的成员4.用于在子类中调用被重写的父类方法的关键字是(B)A.thisB.superC.ThisD.Super5.下面程序输出结果是(A)publicclassDelta{staticbooleanfoo(charc){System.out.print(c);returntrue;}publicstaticvoidmain(String[]argv){inti=0;for(foo("A");foo("B")&&(i<2);foo("C")){i++;foo("D");}}}A.ABDCBDCBB.ABCDABCDC.编译错误D.运行时异常一、程序阅读题1、写出以下程序的运行结果:classEgg{protectedclassYolk{publicYolk(){System.out.println("Egg.Yolk()");31
}}privateYolky;publicEgg(){System.out.println("NewEgg()");y=newYolk();}}publicclassBigEggextendsEgg{publicclassYolk{publicYolk(){System.out.println("BigEgg.Yolk()");}}publicstaticvoidmain(String[]args){newBigEgg();}}运行结果:NewEgg()Egg.Yolk()1、写出以下程序的结果:publicclassTest{ privatestaticvoidprintArray(int[]arr) { for(inti=0;i10)throwException("somethingwrong!");B.if(i>10)throwExceptione("somethingwrong!");C.if(i>10)thrownewException("somethingwrong!");D.if(i>10)thrownewExceptione("somethingwrong!");5.分析下列Java代码:classA{publicstaticvoidmain(String[]args){method();}staticvoidmethod(){try{System.out.println("Hello");System.exit(0);}finally{System.out.println("good-bye");}}}编译运行后,输出结果是(A)A.HelloB.good-byeC.HelloD.代码不能编译good-bye6.关于捕获错误的语法try-catch-finally的下列描述正确的是(C)。A.try必须和catch搭配使用B.try可以单独使用C.try-finally可以搭配使用D.在try块后如果定义了finally,则不能再定义catch块7.在Java中,假定有一个包含引起异常(不是一个RuntimeException)的代码的方法,用什么方式告诉方法的调用者要捕获该异常。(B)A.throwExceptionB.throwsExceptionC.newExceptionD.不用特别指定31
1.考虑下列JAVA代码:classA{publicstaticvoidmain(String[]args){try{System.out.println("Hello,World!");}}}这段代码错误的原因是(A)。A.没有catch和finally块B.没有抛出异常的代码不能出现在try代码块内C.如果没有catch块而使用try,main()会总是抛出异常D.classA没有throwsIOException2.考虑一下代码,编译运行之后,会(D)Strings=null;System.out.println(s.charAt(0));A.输出nullB.没有输出C.编译错误D.编译成功,但是运行时报NullPointerException异常3.研究下面的Java代码:publicclasstestException{publicstaticvoidmain(String[]args){inta[]={0,1,2,3,4};intsum=0;try{for(inti=1;i<6;i++)sum=sum+a[i];System.out.println("sum="+sum);}catch(ArrayIndexOutOfBoundsExceptione){System.out.println("数组越界");}finally{System.out.println("程序结束");}}}输出结果将是(C)。A.10数组越界程序结束B.10程序结束C.数组越界程序结束D.程序结束31
第五章java.lang包和字符串一、选择题1.Java编程所必须的默认引用包为(B)A.java.sys包B.java.lang包C.java.new包D.以上都不是2.在Java中,所有类的根类是(A)A.java.lang.ObjectB.java.lang.ClassC.java.applet.AppletD.java.awt.Frame3.设有下面两个赋值语句:x1=Integer.parseInt("123");x2=Integer.valueOf("123").intValue();下述说法正确的是(D)。A.x1为int型变量,x2为Integer类的对象B.x2为int型变量,x1为Integer类的对象C.x1、x2均为Integer类的对象D.x1、x2均为int型变量4.在Java中,存放字符串常量的对象属于(B)类对象。 A.Character B.StringC.StringBufferD.Vector5.已知如下定义:Stringstr="Ilove";下面(D)表达式是合法的。A.charch=str[0];B.intlen=str.length;C.Stringto=str.delete(1,2);D.str+="China";6.设有以下程序段,执行后,屏幕输出(A)。Strings1="Ilove"+"China";Strings2=newString(s1);if(s1==s2)System.out.println("==");if(s1.equals(s2)==true)System.out.print("equals");A.equalsB.==C.==equalsD.不输出7.下列方法中,不属于类String的方法是(D)。A.toLowerCase()B.replace()C.charAt()D.append()8.有下列程序:publicclassaa{publicstaticvoidmain(String[]args){Strings="18.03";try{doublenumber1=Double.parseDouble(s);System.out.print(number1);intnumber2=Integer.parseInt(s);System.out.println(""+number2);}catch(NumberFormatExceptionnfe){System.out.println("Sorry");}catch(Exceptione){31
}}}执行结果是(C)。A.18.03B.SorryC.18.03SorryD.程序编译错误31
第六章java.lang包和字符串一、选择题1.下列(A)集合不能含有重复元素。A.SetB.ListC.MapD.Collection2.当元素个数固定时,使用(D)集合查找效率最高。A.SetB.ListC.MapD.Arrays3.你希望存储少量数据并能快速访问.你并不需要排序这些数据,那种数据结构最适合这种需求?(D)A.TreeSetB.HashMapC.LinkedListD.数组4.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的?(B)A.ArrayListmyList=newObject();B.ListmyList=newArrayList();C.ArrayListmyList=newList();D.ListmyList=newList();5.关于HashMap和TreeMap类,判断下列那种说法是正确的?(A)A.它们都能方便地定位映射中的值对象B.它们都实现了SortedMap接口C.它们都能高效地按照顺序遍历键D.以上说法都不对6.下列哪个不是Iterator接口所定义的方法?(D)A.hasNext()B.next()C.remove()D.nextElement()7.关于链表结构,陈述错误的是哪个?(B)A.链表可动态增长B.在链表中查找对象是最有效的C.链表中的元素可以重复D.通常情况下,向链表中插入元素的效率高于向ArrayList中插入元素的效率8.Java语言的集合框架类定义在(B)语言包中。A.java.langB.java.utilC.java.arrayD.java.collections9.Set集合如何处理重复的元素?(B)A.如果试图向Set集合中添加一个与集合中已有元素值相同的元素时,将抛出异常B.如果试图向Set集合中添加一个与集合中已有元素值相同的元素时,add方法返回falseC.如果试图向Set集合中添加一个与集合中已有元素值相同的元素时,将发生编译错误D.可以在Set集合中添加一个与集合中已有元素值相同的元素10.下列哪项是正确的?(D) A.Collection是集合继承体系中根类 B.Collection接口中提供了enumerator方法C.interator方法返回Vector类的对象D.实现Set接口的类对象中,每个元素的值均不相等11.给定下列java代码:importjava.util.*;publicclassLetterASort{publicstaticvoidmain(String[]args){31
ArrayListstrings=newArrayList();strings.add("aAaA");strings.add("AaA");strings.add("aAa");strings.add("AAaa");Collections.sort(strings);for(Strings:strings){System.out.print(s+"");}}}对该程序编译运行,结果是(C)。A.编译失败B.aAaAaAaAAaaAaAC.AAaaAaAaAaaAaAD.AaAAAaaaAaAaAaE.aAaAaAaAaAAAaaF.运行时抛出异常1.给定下列java代码://在这里插入privateNmin,max;publicNgetMin(){returnmin;}publicNgetMax(){returnmax;}publicvoidadd(Nadded){if(min==null||added.doubleValue()max.doubleValue())max=added;}}选择以下哪两行中任一行插入指定位置,程序可以通过编译。(AC)A.publicclassMinMax{B.publicclassMinMax{C.publicclassMinMax{D.publicclassMinMax>{E.publicclassMinMax{F.publicclassMinMax{2.给定下列java代码:importjava.util.*;publicclassOld{publicstaticObjectget(Listlist){returnlist.get(0);}}31
以下选项中,哪三个能编译成功?(ADE)A.Objecto=Old.get(newLinkedList());B.Objecto=Old.get(newLinkedList>());C.Strings=Old.get(newLinkedList());D.Objecto=Old.get(newLinkedList
您可能关注的文档
- 信号与系统重点综述与习题详解 (刘泉 江雪梅 著) 高等教育出版社 课后答案
- 大学英语创意阅读 第一册 (薛金星 著) 东北师范大学出版社 课后答案
- 基于运算放大器和模拟集成电路设计 (赛尔吉欧.佛朗歌[美] 著) 西安交通大学出版社 课后答案 [基于运算放大器与模拟集成电路设计[1].答案].chapter05_109
- 信号与线性系统 第二版 (阎鸿森 著) 西安交通大学出版社 课后答案
- JAVA程序设计基础 (张晓龙 著) 清华大学出版社 课后答案
- 信号与线性系统 第二章 (潘双来 著) 清华大学出版社 课后答案
- JAVA程序设计基础 吴小东 著 清华大学出版社 (吴小东 著) 清华大学出版社 课后答案
- 基于运算放大器和模拟集成电路设计 (赛尔吉欧.佛朗歌[美] 著) 西安交通大学出版社 课后答案 [基于运算放大器与模拟集成电路设计[1].答案].chapter06_117
- 大学英语创意阅读2 (Ian Smallwood 著) 上海外语教育出版社 翻译译文
- 大学英语泛读 第三版 第二册 (张砚秋 著) 外研社 课后答案 泛读1答案Unit1-2
- Java程序设计实用教程 (胡伏湘 著) 清华大学出版 课后答案
- 基于运算放大器和模拟集成电路设计 (赛尔吉欧.佛朗歌[美] 著) 西安交通大学出版社 课后答案 [基于运算放大器与模拟集成电路设计[1].答案].chapter07_503
- 大学英语泛读 第三版 第二册 (张砚秋 著) 外研社 课后答案 泛读1答案Unit1-6
- 基于运算放大器和模拟集成电路设计 (赛尔吉欧.佛朗歌[美] 著) 西安交通大学出版社 课后答案 [基于运算放大器与模拟集成电路设计[1].答案].chapter08_266
- 大学英语泛读 第三版 第二册 (张砚秋 著) 外研社 课后答案 泛读1答案Unit3-4
- java大学实用教程(第三版)课后习题答案
- 基于运算放大器和模拟集成电路设计 (赛尔吉欧.佛朗歌[美] 著) 西安交通大学出版社 课后答案 [基于运算放大器与模拟集成电路设计[1].答案].chapter09_268
- java面向对象程序设计 (耿祥义 张跃平 著) 清华大学出版社 课后答案
相关文档
- 施工规范CECS140-2002给水排水工程埋地管芯缠丝预应力混凝土管和预应力钢筒混凝土管管道结构设计规程
- 施工规范CECS141-2002给水排水工程埋地钢管管道结构设计规程
- 施工规范CECS142-2002给水排水工程埋地铸铁管管道结构设计规程
- 施工规范CECS143-2002给水排水工程埋地预制混凝土圆形管管道结构设计规程
- 施工规范CECS145-2002给水排水工程埋地矩形管管道结构设计规程
- 施工规范CECS190-2005给水排水工程埋地玻璃纤维增强塑料夹砂管管道结构设计规程
- cecs 140:2002 给水排水工程埋地管芯缠丝预应力混凝土管和预应力钢筒混凝土管管道结构设计规程(含条文说明)
- cecs 141:2002 给水排水工程埋地钢管管道结构设计规程 条文说明
- cecs 140:2002 给水排水工程埋地管芯缠丝预应力混凝土管和预应力钢筒混凝土管管道结构设计规程 条文说明
- cecs 142:2002 给水排水工程埋地铸铁管管道结构设计规程 条文说明