1.“java编译器将源文件编译为的字节码文件是机器码”这句话正确吗?答:不正确。
2.java应用程序的主类必须含有怎样的方法?答:含有main方法。
3.“java应用程序必须有一个类是public类”这句话正确吗?答;不正确,只能有一个public类4.。
“java Applet程序的主类必须是public类”这句话正确吗?答:正确,因为java Applet主类必须是Applet类的子类并且是public的类。
6.请叙述java源程序的命名规则。
答:与public的类同名7.源文件生成的字节码文件在运行时都加载到内存中吗?答:非也,动态随需要运行才加载。
8.下列哪些语句是错的?Int x=120;Byte b=120;B=x;答:B=x;错应为b=(byte)x9.下列哪些语句是错的?Float x=12.0;Float y=12;Double d=12;Y=d;答:y=d;错,应y=(float)d10.下列两个语句是等价的吗?Char x=97;Char x=…a‟;答:是等价的11.下列system.out.printf语句输出结果是什么?Int a=97;Byte b1=(byte)128;Byte b2=(byte)(-129);System.out.printf(“%c,%d,%d”,a,b1,b2);如果输出语句改为:System.out.printf(“%d,%d,%d”,a,b1,b2);输出什么?输出a ,-128,127修改后输出97,-128,12712假设有两个int类型数组:Int[] a=new int[10];Int[] b=new int[8];b=a;A[0]=100;B[0]的值一定是100吗?答;一定,因为a数组与b数组引用相同。
13下列两个语句的作用等价吗?Int[] a={1,2,3,4,5,6,7,8};Int[] a=new int[8];答:不等价,前者有初值,后者指分配空间。
初值数组元素为0 14.下列语句输出的结果是什么?Int a=100, x,y;X=++a;Y=a--System.out.printf(“%d, %d,%d”,x,y,a);答:101,101,10015.下列语句那些有错误?Int x=0;X=5.0/2;Float y=12.5F;Y=5.0/2;答:x=5.0/2; 错。
16.下列语句那些有错?Byte x=32;Char c=…a‟;Int n=c-x;C=c-x;答:c=c-x;错应为int类型。
17.下列语句正确的是(A, c )A.表达式“12+56>34”的值是trueB.表达式“12+56||34”是非法表达式C.表达式“x+y=12”是非法表达式D.表达式“12+56>34”的值是1318.对于整数m,m<<1的结果一定是2m吗?答:不一定,高位有损失时,不是2m19.对于两个int整形变量Int m=120, n=240;那么m^m=?;m^n^n=?答:m^m=0; m^n^n=12020.下列System.out.printf语句输出的结果是什么?Int x=10, y=10, z=10;If(x>9){Y=100;Z=200;}Elsey=-100;z=-200;System.out.printf(“%d,%d,%d”,x,y,z);输出:10,100,-20021下列for语句输出结果是什么?For(int I=1;I<=4;I++){Case 1: System.out.printf(“%c”,‟a‟);Case 2: System.out.printf(“%c”,‟b‟);Brek;Case 3: System.out.printf(“%c”,‟c‟);Case 4: System.out.printf(“%c”,‟d‟);Brek;} }输出:a,b, b,c,d,d22下列System.out.printf语句输出的结果是什么?Char a[]={…a‟,‟b‟,‟c‟,‟d‟,‟e‟};For(I=0; I<=a.length/2; I++){char c=a[i];a[i]=a[a.length-(i+1)];a [a.length-(i+1)]=c;}System.out.printf(“%c%c%c%c%c”a[0],a[1],a[2],a[3],a[4]);输出:e,d,c,b,a23.下列System.out.printf语句输出的结果是什么?int a[]={3,4,1,2,-6};for(int i=0; i<a.lemgth;i++){for(int j=i+1;j<a.length;j++){if(a[j]<a[i]){Int n=a[j]; a[j]=a[i]; a[i]=n;} } }System.out.printf(“%d,%d,%d,%d,%d”,a[0],a[1],a[2],a[3],a[4]);输出:3,1,2,-6,424.编写一个类,该类创建的对象可以计算等差数列的和。
解:class DengCha{int start,d;DengCha(){}DengCha(int start,int d){this.start=start;this.d=d;}void setStart(int s){start=s;}void setD(int d){this.d=d;}int getSum(int n){int sum=0,i=1;while(i<=n){sum=sum+start;start=start+d;i++;return sum;}}public class ZuoY e04_1{public static void main (String args[ ]){DengCha shulie=new DengCha(2,3);System.out.println(shulie.getSum(100));shulie.setStart(10);shulie.setD(5);System.out.println(shulie.getSum(9));DengCha arithmetical=new DengCha();Scanner Reader=new Scanner(System.in);System.out.println("请输入等差数列开始值");arithmetical.start=Reader.nextInt();System.out.println("请输入等差数列的差值");arithmetical.d=Reader.nextInt();System.out.println("请输入等差数列求和的个数");int n=Reader.nextInt();System.out.println(n+"个数的和是"+arithmetical.getSum(n));}}25作为面向抽象编程的例子:我们研究一下柱形体积的求法:柱形的底面积求法经常变化,而其柱形体积永远是底面积乘高。
所以我们有如下解法:Geometry.java:public abstract class Geometry{public abstract double getArea();}Pillar.java:public class Pillar{Geometry bottom; //将Geometry对象作为成员double height;Pillar (Geometry bottom,double height){this.bottom=bottom;this.height=height;}void changeBottom(Geometry bottom){this.bottom=bottom;}public double getV olume(){return bottom.getArea()*height; //bottom可以调用子类重写的getArea 方法}}Lader .java:public class Lader extends Geometry{double a,b,h;Lader(double a,double b,double h){this.a=a; this.b=b; this.h=h;}public double getArea(){return((1/2.0)*(a+b)*h);}}Circle .java:public class Circle extends Geometry{double r;Circle(double r){this.r=r;}public double getArea(){return(3.14*r*r);}}Example5_10.javapublic class Example5_10{public static void main(String args[]){Pillar pillar;Geometry tuxing;tuxing=new Lader(12,22,100);System.out.println("梯形的面积"+tuxing.getArea());pillar =new Pillar (tuxing,58);System.out.println("梯形底的柱体的体积"+ pillar.getV olume());tuxing=new Circle(10);System.out.println("半径是10的圆的面积"+tuxing.getArea());pillar.changeBottom(tuxing);System.out.println("圆形底的柱体的体积"+pillar.getV olume());}}26.对于字符串String S1=new String(“OK”);String S2=new String(“OK”);说出下列表达式的值:S1==S2S1.equals(S2)答:(1)false (2) true2.对于字符串String s1=new String(“I love you zhht”);String s2=s1.replaceA ll(“love”,”hate”);说出System.out.printf(“%s, %s”, s1,s2)的结果。
结果:I love you zhht , I hate you zhht27.String 类和StringBuffer类有何不同答:String 类创建的字符串对象是不能修改的。