1、Java实用教程第版习题解答习题解答习题1(第1章)一、问答题1Java语言的主要贡献者是谁?2开发Java应用程序需要经过哪些主要步骤?3Java源文件是由什么组成的?一个源文件中必须要有public类吗?4如果JDK的安装目录为D:jdk,应当怎样设置path和classpath的值?5Java源文件的扩展名是什么?Java字节码的扩展名是什么?6如果Java应用程序主类的名字是Bird,编译之后,应当怎样运行该程序?7有哪两种编程风格,在格式上各有怎样的特点?1James Gosling2需3个步骤:1)用文本编辑器编写源文件。 2)使用javac编译源文件,得到字节码文件。3)使用解释
2、器运行程序。3源文件由若干个类所构成。对于应用程序,必须有一个类含有public static void main(String args)的方法,含有该方法的类称为应用程序的主类。不一定,但至多有一个public类。4set classpath=D:jdkjrelibrt.jar;.;5. java和class6. java Bird 7. 独行风格(大括号独占行)和行尾风格(左大扩号在上一行行尾,右大括号独占行)二、选择题1B。2D。 1下列哪个是JDK提供的编译器?A) java.exeB) javac.exeC) javap.exeD) javaw.exe2下列哪个是Java应用程序主
3、类中正确的main方法?A) public void main (String args )B) static void main (String args )C) public static void Main (String args)D) public static void main (String args )三、阅读程序阅读下列Java源文件,并回答问题。public class Person void speakHello() class Xiti public static void main(String args) Person zhang = new Person();
4、zhang.speakHello(); (a)上述源文件的名字是什么?(b)编译上述源文件将生成几个字节码文件?这些字节码文件的名字都是什么?(c)在命令行执行java Person得到怎样的错误提示?执行java xiti得到怎样的错误提示?执行java Xiti.class得到怎样的错误提示?执行java Xiti得到怎样的输出结果?1(a)Person.java。(b)两个字节码,分别是Person.class和Xiti.class。(c)得到“NoSuchMethodError”,得到“NoClassDefFoundError: Xiti/class”,得到“您好,很高兴认识您 nic
5、e to meet you”习题2(第2章)一、问答题1 什么叫标识符?标识符的规则是什么?false是否可以作为标识符。2 什么叫关键字?true和false是否是关键字?请说出6个关键字。3 Java的基本数据类型都是什么?4 float型常量和double型常量在表示上有什么区别?5. 怎样获取一维数组的长度,怎样获取二维数组中一维数组的个数。1用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。标识符由字母、下划线、美元符号和数字组成,第一个字符不能是数字。false不是标识符。2关键字就是Java语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来用
6、。true和false不是关键字。6个关键字:class implements interface enum extends abstract。3boolean,char,byte,short,int,long,float,double。4float常量必须用F或f为后缀。double常量用D或d为后缀,但允许省略后缀。5一维数组名.length。二维数组名.length。二、选择题2下列哪三项是正确的float变量的声明?adf A. float foo = -1; B. float foo = 1.0; C. float foo = 42e1; D. float foo = 2.02f;
7、E. float foo = 3.03d; F. float foo = 0x0123; 3下列哪一项叙述是正确的?bA. char型字符在Unicode表中的位置范围是0至32767B. char型字符在Unicode表中的位置范围是0至65535C. char型字符在Unicode表中的位置范围是0至65536D. char型字符在Unicode表中的位置范围是-32768至327674以下哪两项是正确的char型变量的声明?beA. char ch = R;B. char ch = C. char ch = ABCD;D. char ch = ABCD;E. char ch = ucaf
8、e;F. char ch = u101005下列程序中哪些【代码】是错误的?2345public class E public static void main(String args) int x = 8; byte b = 127; /【代码1】 b = x; /【代码2】 x = 12L; /【代码3】 long y=8.0; /【代码4】 float z=6.89 ; /【代码5】 6对于int a = new int3;下列哪个叙述是错误的?bA. a.length的值是3。B. a1的值是1。C. a0的值是0。D. aa.length-1的值等于a2的值。1C。2ADF。3B。4
9、BE。5【代码2】【代码3】【代码4】【代码5】。6B。三、阅读或调试程序1属于操作题,解答略。2属于操作题,解答略。3属于操作题,解答略。4.下列程序标注的【代码1】,【代码2】的输出结果是什么?public class E public static void main (String args ) long a = 1,2,3,4; long b = 100,200,300,400,500; b = a; 5.下列程序标注的【代码1】,【代码2】的输出结果是什么?public class E public static void main(String args) int a=10,20
10、,30,40,b=1,2,4,5,6,7; b0 = a; b01 = b13; 4【代码1】:4。【代码2】:b0=1。5【代码1】:40。【代码2】:7四、编写程序1编写一个应用程序,给出汉字你、我、他在Unicode表中的位置。2编写一个Java应用程序,输出全部的希腊字母。1. public class E public static void main(String args) 你); 我); 他); 2. public class E public static void main (String args ) char cStart=,cEnd=; for(char c=cSta
11、rt;c0 Bm+0 Cm = 0 Dm100&truepublic class E public static void main (String args ) int m=10,n=0; while(【代码】) n+; 3假设有int x=1;以下哪个代码导致“可能损失精度,找到int需要char”这样的编译错误。 cAshort t=12+a; Bchar c =a+1; Cchar m =a+x; Dbyte n =a+1;1A。 2C。 3C。三、阅读程序1下列程序的输出结果是什么?public class E public static void main (String args
12、 ) char x=你,y=e,z=吃; if(xA) y=苹; z=果; else y=酸; z=甜; 2.下列程序的输出结果是什么?public class E public static void main (String args ) char c = 0; for(int i=1;i0) x-; x=0,y=5x=-1,y=4x=-2,y=3x=-3,y=2x=-4,y=1x=-5,y=0x=-5,y=-11你,苹,甜2Jeep好好3x=-5,y=-1四、编程序题1编写应用程序求1!+2!+10!。2编写一个应用程序求100以内的全部素数。3分别用do-while和for循环计算1+
13、1/2!+1/3!+1/4! 的前20项和。4一个数如果恰好等于它的因子之和,这个数就称为“完数”。编写应用程序求1000之内的所有完数。5编写应用程序,使用for循环语句计算8+88+888前10项之和。6编写应用程序,输出满足1+2+3+n8888的最大正整数n。1public class Xiti1 public static void main(String args) double sum=0,a=1;int i=1; while(i=20) sum=sum+a; i+; a=a*i; 2public class Xiti2 public static void main(Strin
14、g args) int i,j; for(j=2;j=100;j+) for(i=2;ij/2) 3class Xiti3 public static void main(String args) double sum=0,a=1,i=1; do sum=sum+a; i+; a=(1.0/i)*a; while(i=20); for(sum=0,i=1,a=1;i=20;i+) a=a*(1.0/i); sum=sum+a; 4public class Xiti4 public static void main(String args) int sum=0,i,j; for(i=1;i=10
15、00;i+) for(j=1,sum=0;ji;j+) if(i%j=0) sum=sum+j; if(sum=i) 5public class Xiti5 public static void main(String args) int m=8,item=m,i=1; long sum=0; for(i=1,sum=0,item=m;i=8888) break; 习题4(第4章)一、问答题1面向对象语言有哪三个特性?2类名应当遵守怎样的编程风格?3变量和方法的名字应当遵守怎样的编程风格?4类体内容中声明成员变量是为了体现对象的属性还是行为?5类体内容中定义的非构造方法是为了体现对象的属性还是
16、行为?6什么时候使用构造方法?构造方法有类型吗?7类中的实例变量在什么时候会被分配内存空间?8什么叫方法的重载?构造方法可以重载吗?9类中的实例方法可以操作类变量(static变量)吗?类方法(static方法)可以操作实例变量吗?可以。不可以。10类中的实例方法可以用类名直接调用吗?8一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。可以。9 10不可以。11简述类变量和实例变量的区别。12this关键字代表什么?this可以出现在类方法中吗?1. 封装、继承和多态。2当类名由几个单词复合而成时,每个单词的首字母使用大写。3名字的首
17、单词的首字母使用小写,如果变量的名字由多个单词组成,从第2个单词开始的其它单词的首字母使用大写。4属性5行为6用类创建对象时。没有类型7用类创建对象时。8一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。可以。9可以。不可以。10不可以。11一个类通过使用new运算符可以创建多个不同的对象,不同的对象的实例变量将被分配不同的内存空间。所有对象的类变量都分配给相同的一处内存,对象共享类变量。12代表调用当前方法的对象。不可以。二、选择题1下列哪个叙述是正确的? bA.Java应用程序由若干个类所构成,这些类必须在一个源文件中。B.Jav
18、a应用程序由若干个类所构成,这些类可以在一个源文件中,也可以分布在若干个源文件中,其中必须有一个源文件含有主类。C.Java源文件必须含有主类。D.Java源文件如果含有主类,主类必须是public类。2下列哪个叙述是正确的? dA.成员变量的名字不可以和局部变量的相同。B.方法的参数的名字可以和方法中声明的局部变量的名字相同。C.成员变量没有默认值。D.局部变量没有默认值。3对于下列Hello类,哪个叙述是正确的?dA.Hello类有2个构造方法。B.Hello类的int Hello()方法是错误的方法。C.Hello类没有构造方法。D.Hello无法通过编译,因为其中的hello方法的方法
19、头是错误的(没有类型)。class Hello Hello(int m) int Hello() return 20; hello() 4对于下列Dog类,哪个叙述是错误的?dA.Dog(int m)与Dog(double m)互为重载的构造方法。B.int Dog(int m)与void Dog(double m)互为重载的非构造方法。C.Dog类只有两个构造方法,而且没有无参数的构造方法。D.Dog类有3个构造方法。class Dog Dog(int m) Dog(double m) int Dog(int m) return 23; void Dog(double m) 构造方法是一种特
20、殊的方法,与一般的方法不同是:1.构造方法的名字必须与定义他的类名完全相同,没有返回类型,甚至连void也没有。2.构造方法的调用是在创建一个对象时使用new操作进行的。构造方法的作用是初始化对象。3.不能被static、final、synchronized、abstract和native修饰。构造方法不能被子类继承。5下列哪些类声明是错误的?cdA)class AB)public class AC)protected class AD)private class A6下列A类中【代码1】【代码5】哪些是错误的?1 4class Tom private int x = 120; protect
21、ed int y = 20; int z = 11; private void f() x = 200; void g() x = 200; public class A public static void main(String args) Tom tom = new Tom(); tom.x = 22; /【代码1】 tom.y = 33; /【代码2】 tom.z = 55; /【代码3】 tom.f(); /【代码4】 tom.g(); /【代码5】 7下列E类的类体中哪些【代码】是错误的。4class E int x; /【代码1】 long y = x; /【代码2】 publi
22、c void f(int n) int m; /【代码3】 int t = n+m; /【代码4】 1B。2D。3D。4D。5CD。6【代码1】【代码4】。7【代码4】。三、阅读程序1说出下列E类中【代码1】【代码3】的输出结果。class Fish int weight = 1;class Lake Fish fish; void setFish(Fish s) fish = s; void foodFish(int m) fish.weight=fish.weight+m; public class E public static void main(String args) Fish r
23、edFish = new Fish(); Lake lake = new Lake(); lake.setFish(redFish); lake.foodFish(120); class B int x = 100,y = 200; public void setX(int x) x = x; public void setY(int y) this.y = y; public int getXYSum() return x+y; public class A public static void main(String args) B b = new B(); b.setX(-100); b
24、.setY(-200); class B int n; static int sum=0; void setN(int n) this.n=n; int getSum() for(int i=1;i=n;i+) sum=sum+i; return sum; public class A public static void main(String args) B b1=new B(),b2=new B(); b1.setN(3); b2.setN(5); int s1=b1.getSum(); int s2=b2.getSum(); 4请说出E类中【代码1】,【代码2】的输出结果n的输出结果。
25、class A double f(int x,double y) return x+y; int f(int x,int y) return x*y; public class E public static void main(String args) A a=new A(); /【代码1】 /【代码2】 5上机实习下列程序,了解可变参数。public class E public static void main(String args) f(1,2); f(-1,-2,-3,-4); /给参数传值时,实参的个数很灵活 f(9,7,6) ; public static void f(int . x) /x是可变参数的代表,代表若干个int型参数 for(int i=0;ix.length;i+) /x.length是x代表的参数的个数 6类的字
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1