Java习题

在下面的循环中执行(a)中的break语句之后,执行哪个语句?显示输出。在(b)中的continue语句在以下循环中执行后,将执行哪个语句?显示输出。

 答案:

执行(a)中的break语句之后,执行System.out.println(i); 

输出为:

1

2

1

2

2

3

在(b)中的continue语句在以下循环中执行后,将执行语句j++

输出为:

1

2

1

2

2

3

创建一个包含“Welcome  to Java”这个字符串,可以使用如下两种方法:

String s = "Welcome to Java";

String s = new String("Welcome to Java");

哪种方法更好?为什么?

答案:

第一种方法更好。

原因:第一种方法创建的是一个字符串文本变量,JVM对具有相同字符序列的字符串文本会创建唯一的实例,这样提高效率和节省内存。但方法二,使用多少个new关键字,就会创建多少个对象,即使字符串的值相同。

下列哪项陈述是有效的?

 答案:

int[][] y = new int[3][];

int[][] z = {{1,2}};

int[][] m = {{1,2},{2,3}};

int[][] n = {{1,2},{2,3},};

是有效的

方法getMessage()执行声明操作?

不是执行声明操作,是返回对象的相关描述说明。

程序阅读题

当类的字节码进入内存时,类中的静态块会立即被执行。执行下列程序了解静态块。

public class E{

    public static void main(String [] args){

        AAA a= new AAA();

        System.out.println("正了解静态块结构");

    }

    static{

          System.out.println("最先执行的静态块结构");

    }

}

class AAA{

    static{

         System.out.println("AAA中的静态块结构");

    }

}

答案:

最先执行的静态块结构

AAA中的静态块结构

正了解静态块结构

下列那个是正确的接口?

答案:

d

 

 

下列代码错在哪里?请详细说明,并修改它。

 

 答案:

当输入的score在60.0及以上时,永远输出D

可以修改成这样:

if(score >= 90.0)

System.out.print("A");

else if(score >= 80.0)

System.out.print("B");

else if(score >= 70.0)

System.out.print("C");

else if(score >= 60.0)

System.out.print("D");

else

System.out.print("F");

下列那条语句会抛出异常?

 

答案: 

System.out.println(1/0);

会产生算术异常。

System.out.println(1.0/0);

不会产生异常。

判断对错?

a、 抽象类可以像非抽象类一样使用,只是不能使用new操作符从抽象类创建实例。

b、 抽象类可以扩展。

c、 非抽象超类的子类不能是抽象的。

d、 子类不能重写超类中的具体方法以将其定义为抽象方法。

e、 抽象方法必须是非静态的。

答案:

true,true,false,false,true

请描述一下构造方法和普通方法有什么不同?

不同:构造方法是一种特殊的方法。它们有三个特征:  构造方法必须与类本身同名。  构造方法没有返回类型,甚至没有void。  创建对象时,使用new运算符调用构造方法。

下列代码错在哪里?为什么?

 第8行,list3类型与方法参数Object[]不匹配

编写一个将47度转换为弧度并将结果赋给变量的语句。

double d = Math.toRadians(47) ; 

给出下列两个方法的定义

public static double m(double x, double y)

public static double m(int x, double y)

下列语句执行的时候哪个方法会被分别调用?

a. double z = m(4, 5);

b. double z = m(4, 5.4);

c. double z = m(4.5, 5.4);

答案:

a语句执行时,会调用public static double m(int x, double y)方法

b语句执行时,会调用public static double m(int x, double y)方法

c语句执行时,会调用public static double m(double x, double y)方法

计算并给出下列表达式的余数:  

 

答案:

56%6=2

78%-4=2

-34%5=-4

-34%-5=-4

5%1=0

1%5=1

编程题

编写一个应用程序,给出汉字“你”“我”“他”在Unicode码表中的位置。

答案:

public class TestUnicode {

    public static void main(String[] args) {

        char a='你';

        char b='我';

        char c='他';

        System.out.println("你:"+(int)a);

        System.out.println("我:"+(int)b);

        System.out.println("他:"+(int)c);

    }

 

}

定义一个学生类Student,它继承自如下person类。(10分)

(1)、Student类有以下几个变量(4分):

   继承自父类的变量:姓名(name),字符串类型(String);性别(sex),字符型(char);年龄(age),整型(int)。

   子类新增加的变量:学号(number),长整型;三门功课的成绩:哲学(phi),整型;英语(eng),整型;计算机(comp),整型。

(2)、Student类有以下几个方法

    子类新增加的方法(3分):

求三门功课的平均成绩aver():该方法没有参数,返回值类型为double型;

求三门功课成绩的最高分max():该方法没有参数,返回值为int型;

求三门功课成绩的最低分min();该方法没有参数,返回值为int型。

(3)、覆盖父类的同名方法(3分):toString() 获取学号、姓名、性别、平均分、最高分、最低分信息。

public class Person{

        String name;

        char sex;

        int age;

        public Person(){}

        public Person(String s){

           name=s;

        }

           public Person(String s,char c){

           this(s);

           sex=c;

        }

           public Person(String s,char c,int i){

           this(s,c);

           age=i;

        }

        public String toString(){

           String s="姓名: "+name+"  性别:"+sex+" 年龄:"+age;

           return s;

}

}

答案:

public class Student extends Person{

        long number;

        int phi,eng,comp;

        public Student(){}

        public Student(long k,String s,char c,int i,int i1,int i2,int i3){

           super(s,c,i);

           number=k; phi=i1; eng=i2; comp=i3;

        }

        public double aver(){

           return(phi+eng+comp)/3.0;

        }

        public int max(){

           int temp,max;

           temp=phi>eng?phi:eng;

           max=temp>comp?temp:comp;

           return max;

        }

        public int min(){

           int temp,min;

           temp=phi<eng?phi:eng;

           min=temp<comp?temp:comp;

           return min;

        }

        public String toString(){

           return "学号:"+number+" "+super.toString()+"\n平均分:"

           +aver()+" 最高分:"+max()+" 最低分: "+min();

        }

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值