




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、习题解答习题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) 使用解释器运行程序。3源文件
2、由若干个类所构成。对于应用程序,必须有一个类含有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应用程序主类中正确的main方法?A)
3、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() System.out.print("您好,很高兴认识您");System.out.println(" nice to meet you"); clas
4、s Xiti public static void main(String args) Person zhang = new Person(); zhang.speakHello(); (a)上述源文件的名字是什么?(b)编译上述源文件将生成几个字节码文件?这些字节码文件的名字都是什么?(c)在命令行执行java Person得到怎样的错误提示?执行java xiti得到怎样的错误提示?执行java Xiti.class得到怎样的错误提示?执行java Xiti得到怎样的输出结果?1(a)Person.java。(b)两个字节码,分别是Person.class和Xiti.class。(c)得到
5、“NoSuchMethodError”,得到“NoClassDefFoundError: Xiti/class”,得到“您好,很高兴认识您 nice to meet you”习题2(第2章)一、问答题1什么叫标识符?标识符的规则是什么?false是否可以作为标识符。2什么叫关键字?true和false是否是关键字?请说出6个关键字。3Java的基本数据类型都是什么?4float型常量和double型常量在表示上有什么区别?5. 怎样获取一维数组的长度,怎样获取二维数组中一维数组的个数。1用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。标识符由字母、下划线、美元符号
6、和数字组成,第一个字符不能是数字。false不是标识符。2关键字就是Java语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来用。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
7、= -1; B. float foo = 1.0; C. float foo = 42e1; D. float foo = 2.02f; 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 =
8、 "R"B. char ch = ''C. char ch = 'ABCD'D. char ch = "ABCD"E. char ch = 'ucafe'F. char ch = 'u10100'5下列程序中哪些【代码】是错误的?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; /【代
9、码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。4BE。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;
10、long b = 100,200,300,400,500; b = a; System.out.println("数组b的长度:"+b.length); /【代码1】 System.out.println("b0="+b0); /【代码2】 5.下列程序标注的【代码1】,【代码2】的输出结果是什么?public class E public static void main(String args) int a=10,20,30,40,b=1,2,4,5,6,7; b0 = a; b01 = b13; System.out.println(b03); /
11、【代码1】 System.out.println(a1); /【代码2】 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) System.out.println(int)'你'); System.out.println(int)'我'); System.out.println(int)'他'
12、); 2. public class E public static void main (String args ) char cStart='',cEnd='' for(char c=cStart;c<=cEnd;c+) System.out.print(" "+c); 习题3(第3章)一、 问答题1关系运算符的运算结果是怎样的数据类型?2if语句中的条件表达式的值是否可以是int型?3while语句中的条件表达式的值是什么类型?4switch语句中必须有default选项码?5在while语句的循环体中,执行break语句的效果是
13、什么?6可以用for语句代替while语句的作用吗?1boolean2不可以3boolean4. 不是必须的5结束while语句的执行6可以二、选择题1下列哪个叙述是正确的?aA. 5.0/2+10的结果是double型数据。B(int)5.8+1.0的结果是int型数据。C'苹'+ '果'的结果是char型数据。D(short)10+'a'的结果是short型数据。2用下列哪个代码替换程序标注的【代码】会导致编译错误?cAm->0 Bm+>0 Cm = 0 Dm>100&&truepublic class E
14、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 ) c
15、har x='你',y='e',z='吃' if(x>'A') y='苹' z='果' else y='酸' z='甜' System.out.println(x+","+y+","+z); 2.下列程序的输出结果是什么?public class E public static void main (String args ) char c = '0' for(int i=1;i<=4;i+) swi
16、tch(i) case 1: c = 'J' System.out.print(c); case 2: c = 'e' System.out.print(c); break; case 3: c = 'p' System.out.print(c); default: System.out.print("好"); 3.下列程序的输出结果是什么?public class E public static void main (String args) int x = 1,y = 6; while (y->0) x-; Syst
17、em.out.print("x="+x+",y="+y); 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+1/2!+1/3!+1/4! 的前20项和。4一个数如果恰好等于它的因子之和,这个数就称为“完数”。编写应用程序求1000之内的所有完数。5编写应用程序,使用for循环语句计算8+88+888前10项之和。6
18、编写应用程序,输出满足1+2+3+n<8888的最大正整数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; System.out.println("sum="+sum); 2public class Xiti2 public static void main(String args) int i,j; for(j=2;j<=100;j+) for(i=2;i<=j
19、/2;i+) if(j%i=0) break; if(i>j/2) System.out.print(" "+j); 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); System.out.println("使用do-while循环计算的sum="+sum); for(sum=0,i=1,a=1;i<=20;i+) a=a*(1.0/i); sum=sum
20、+a; System.out.println("使用for循环计算的sum="+sum); 4public class Xiti4 public static void main(String args) int sum=0,i,j; for(i=1;i<=1000;i+) for(j=1,sum=0;j<i;j+) if(i%j=0) sum=sum+j; if(sum=i) System.out.println("完数:"+i); 5public class Xiti5 public static void main(String arg
21、s) int m=8,item=m,i=1; long sum=0; for(i=1,sum=0,item=m;i<=10;i+) sum=sum+item; item=item*10+m; System.out.println(sum); 6 public class Xiti6 public static void main(String args) int n=1; long sum=0; while(true) sum=sum+n; n+; if(sum>=8888) break; System.out.println("满足条件的最大整数:"+(n-1
22、); 习题4(第4章)一、 问答题1面向对象语言有哪三个特性?2类名应当遵守怎样的编程风格?3变量和方法的名字应当遵守怎样的编程风格?4类体内容中声明成员变量是为了体现对象的属性还是行为?5类体内容中定义的非构造方法是为了体现对象的属性还是行为?6什么时候使用构造方法?构造方法有类型吗?7类中的实例变量在什么时候会被分配内存空间?8什么叫方法的重载?构造方法可以重载吗?9类中的实例方法可以操作类变量(static变量)吗?类方法(static方法)可以操作实例变量吗?可以。不可以。10类中的实例方法可以用类名直接调用吗?8一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是
23、参数的个数不同,或者是参数的类型不同。可以。9 10不可以。11简述类变量和实例变量的区别。12this关键字代表什么?this可以出现在类方法中吗?1. 封装、继承和多态。2当类名由几个单词复合而成时,每个单词的首字母使用大写。3名字的首单词的首字母使用小写,如果变量的名字由多个单词组成,从第2个单词开始的其它单词的首字母使用大写。4属性5行为6用类创建对象时。没有类型7用类创建对象时。8一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。可以。9可以。不可以。10不可以。11一个类通过使用new运算符可以创建多个不同的对象,不同的对
24、象的实例变量将被分配不同的内存空间。所有对象的类变量都分配给相同的一处内存,对象共享类变量。12代表调用当前方法的对象。不可以。二、选择题1下列哪个叙述是正确的? bA. Java应用程序由若干个类所构成,这些类必须在一个源文件中。B. Java应用程序由若干个类所构成,这些类可以在一个源文件中,也可以分布在若干个源文件中,其中必须有一个源文件含有主类。C. Java源文件必须含有主类。D. Java源文件如果含有主类,主类必须是public类。2下列哪个叙述是正确的? dA. 成员变量的名字不可以和局部变量的相同。B. 方法的参数的名字可以和方法中声明的局部变量的名字相同。C. 成员变量没有
25、默认值。D. 局部变量没有默认值。3对于下列Hello类,哪个叙述是正确的?dA. Hello类有2个构造方法。B. Hello类的int Hello()方法是错误的方法。C. Hello类没有构造方法。D. Hello无法通过编译,因为其中的hello方法的方法头是错误的(没有类型)。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)互为重载的非构
26、造方法。C. Dog类只有两个构造方法,而且没有无参数的构造方法。D. Dog类有3个构造方法。class Dog Dog(int m) Dog(double m) int Dog(int m) return 23; void Dog(double m) 构造方法是一种特殊的方法,与一般的方法不同是:1.构造方法的名字必须与定义他的类名完全相同,没有返回类型,甚至连void也没有。2.构造方法的调用是在创建一个对象时使用new操作进行的。构造方法的作用是初始化对象。3.不能被static、final、synchronized、abstract和native修饰。构造方法不能被子类继承。5下列哪
27、些类声明是错误的?cdA) class AB) public class AC) protected class AD) private class A6下列A类中【代码1】【代码5】哪些是错误的?1 4class Tom private int x = 120; protected int y = 20; int z = 11; private void f() x = 200; System.out.println(x); void g() x = 200; System.out.println(x); public class A public static void main(Stri
28、ng 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】 public 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】的输出结果
29、。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 redFish = new Fish(); System.out.println(redFish.weight); /【代码1】 Lake lake = new Lake(); lake.setFish(redFish); lak
30、e.foodFish(120); System.out.println(redFish.weight); /【代码2】 System.out.println(lake.fish.weight); /【代码3】 2请说出A类中System.out.println的输出结果。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
31、main(String args) B b = new B(); b.setX(-100); b.setY(-200); System.out.println("sum="+b.getXYSum(); 3请说出A类中System.out.println的输出结果。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
32、(String args) B b1=new B(),b2=new B(); b1.setN(3); b2.setN(5); int s1=b1.getSum(); int s2=b2.getSum(); System.out.println(s1+s2); 4请说出E类中【代码1】,【代码2】的输出结果n的输出结果。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();
33、 System.out.println(a.f(10,10); /【代码1】 System.out.println(a.f(10,10.0); /【代码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;i<x.length;i+) /x.length是x代表的参数的
34、个数 System.out.println(xi); /xi是x代表的第i个参数(类似数组) 6类的字节码进入内存时,类中的静态块会立刻被执行。实习下列程序,了解静态块。class AAA static /静态块 System.out.println("我是AAA中的静态块!"); public class E static /静态块 System.out.println("我是最先被执行的静态块!"); public static void main(String args) AAA a= new AAA(); /AAA的字节码进入内存 System.
35、out.println("我在了解静态(static)块"); 1【代码1】:1,【代码2】:121,【代码3】:121。2sum=-100。3. 27。4【代码1】:100,【代码2】:20.0。5. 上机实习题目,解答略。6. 上机实习题目,解答略。四、编程题用类描述计算机中CPU的速度和硬盘的容量。要求Java应用程序有4个类,名字分别是PC,CPU和HardDisk和Test,其中Test是主类。l PC类与CPU和HardDisk类关联的UML图(图4.33)其中,CPU类要求getSpeed()返回speed的值;要求setSpeed(int m)方法将参数m的
36、值赋值给speed。HardDisk类要求getAmount()返回amount的值,要求setAmount(int m)方法将参数m的值赋值给amount。PC类要求setCUP(CPU c) 将参数c的值赋值给cpu,要求setHardDisk (HardDisk h)方法将参数h的值赋值给HD,要求show()方法能显示cpu的速度和硬盘的容量。l 主类Test的要求 main方法中创建一个CPU对象cpu,cpu将自己的speed设置为2200, main方法中创建一个HardDisk对象disk,disk将自己的amount设置为200, main方法中创建一个PC对象pc, pc调
37、用setCUP(CPU c)方法,调用时实参是cpu, pc调用setHardDisk (HardDisk h)方法,调用时实参是disk,图4.33 PC与CPU和HardDisk关联UML图PCcpu:CPUHD:HardDisksetCPU(CPU):voidsetHardDisk(HardDisk):voidshow():voidCPUspeed:intsetSpeed(int):voidgetSpeed():intHardDiskamount:intsetAmount(int):voidgetAmount():int pc调用show()方法。CPU.javapublic class
38、 CPU int speed; int getSpeed() return speed; public void setSpeed(int speed) this.speed = speed; HardDisk.javapublic class HardDisk int amount; int getAmount() return amount; public void setAmount(int amount) this.amount = amount; PC.javapublic class PC CPU cpu; HardDisk HD; void setCPU(CPU cpu) thi
39、s.cpu = cpu; void setHardDisk(HardDisk HD) this.HD = HD; void show() System.out.println("CPU速度:"+cpu.getSpeed(); System.out.println("硬盘容量:"+HD.getAmount(); Test.javapublic class Test public static void main(String args) CPU cpu = new CPU(); HardDisk HD=new HardDisk(); cpu.setSpee
40、d(2200); HD.setAmount(200); PC pc =new PC(); pc.setCPU(cpu); pc.setHardDisk(HD); pc.show(); 习题5(第5章)一、问答题1子类可以有多个父类吗?2java.lang包中的Object类是所有其他类的祖先类吗?3如果子类和父类不在同一个包中,子类是否继承父类的友好成员?4子类怎样隐藏继承的成员变量?5子类重写方法的规则是怎样的?重写方法的目的是什么?6父类的final方法可以被子类重写吗?7什么类中可以有abstract方法?8对象的上转型对象有怎样的特点?9一个类的各个子类是怎样体现多态的?10面向抽象编
41、程的目的和核心是什么?1不可以。2是。3不继承。4声明与父类同名的成员变量。5子类重写的方法类型和父类的方法的类型一致或者是父类的方法的类型的子类型,重写的方法的名字、参数个数、参数的类型和父类的方法完全相同。重写方法的目的是隐藏继承的方法,子类通过方法的重写可以把父类的状态和行为改变为自身的状态和行为。6不可以。7abstract类。8上转型对象不能操作子类新增的成员变量,不能调用子类新增的方法。上转型对象可以访问子类继承或隐藏的成员变量,可以调用子类继承的方法或子类重写的实例方法。9通过重写方法。10面向抽象编程目的是为了应对用户需求的变化,核心是让类中每种可能的变化对应地交给抽象类的一个
42、子类类去负责,从而让该类的设计者不去关心具体实现。二、选择题1下列哪个叙述是正确的?cE. 子类继承父类的构造方法。F. abstract类的子类必须是非abstract类。G. 子类继承的方法只能操作子类继承和隐藏的成员变量。H. 子类重写或新增的方法也能直接操作被子类隐藏的成员变量。2下列哪个叙述是正确的?dA. final 类可以有子类。B. abstract类中只可以有abstract方法。C. abstract类中可以有非abstract方法,但该方法不可以用final修饰。D. 不可以同时用final和abstract修饰同一个方法。E. 允许使用static修饰abstract方
43、法。用final修饰的类是不允许被继承的,A错误 abstract类中也可以有普通成员方法,B错误 abstract类中的非abstract方法是可以用final修饰的,而abstract方法是不可以被final修饰的,C错误 D同上,所以正确 不允许使用static修饰abstract方法,E错误。3下列程序中注释的哪两个代码(A,B,C,D)是错误的(无法通过编译)?cdclass Father private int money =12; float height; int seeMoney() return money ; /A class So
44、n extends Father int height; int lookMoney() int m = seeMoney(); /B return m; class E public static void main(String args) Son erzi = new Son(); erzi.money = 300; /C erzi.height = 1.78F; /D 4假设C是B的子类,B是A的子类,cat是C类的一个对象,bird是B类的一个对象,下列哪个叙述是错误的?dE. cat instanceof B的值是true。F. bird instanceof A的值是true。G
45、. cat instanceof A的值是true。H. bird instanceof C的值是true。5下列程序中注释的哪个代码(A,B,C,D)是错误的(无法通过编译)?bclass A static int m; static void f() m = 20 ; /A class B extends A void f() /B m = 222 ; /C class E public static void main(String args) A.f(); / D 6.下列代码中标注的(A,B,C,D)中,哪一个是错误的?babstract class Takecare protect
46、ed void speakHello() /A public abstract static void cry(); /B static int f() return 0 ; /C abstract float g(); /D7下列程序中注释的哪个代码(A,B,C,D)是错误的(无法通过编译)?dabstract class A abstract float getFloat (); /A void f() /B public class B extends A private float m = 1.0f; /C private float getFloat () /D return m; 8将下列哪个代码(A,B,C,D)放入程序中标注的【代码】处将导致编译错误?bA. public float getNum()return 4.0f; B. public void getNum() C. public void getNum(double d) D. public double getNum(float d)return 4.0d;class A public float getNum() return 3.0f; public class B extends A 【代码】 9对于下列代码,下列哪个叙述是正确的?
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 音乐软件采购合同协议
- 闲置轮椅收售合同协议
- 项目部供水合同协议
- 食堂招投标合同协议
- 项目销售施工合同协议
- 中学施工组织设计
- 2025员工劳动合同样本
- 民法典继承篇课件
- 食堂供货协议中终止合同
- 食品销售协议书范本
- 工程签工单表格范本
- 土壤微生物与重金属污染-洞察分析
- 《消费者心理与行为分析》第五版 课件全套 肖涧松 单元1-10 消费者心理与行为概述 - 消费者购买决策与购后行为
- 塑料污染治理-洞察分析
- 反诈知识竞赛题库及答案(共286题)
- 稀土材料技术基础知识单选题100道及答案解析
- 量子储能材料的探索
- 2023年人教版六年级语文下册期末考试卷(A4打印版)
- ESG信息披露、表现和评级综合研究:国内外对比分析
- 2024年全国普法知识竞赛法律知识题库及答案
- DB5101-T135-2021城市公园分类分级管理规范
评论
0/150
提交评论