JAVA入门到精通-第52讲-面试题讲评

赛迪网Java程序员笔试题

第一大题:选择题(20个小题,要求和分值按每题后面的提示,共60)

1、下面哪些是java语言中的关键字?  B

Asizeof

Babstract

CNULL

DNative

 

2、第一个java语言编译器是在()年推出。  D

A1991

B1992

C2001

D1996

 

3、以下()JAVA的保留字    C

AJava

BHello

Cclass

DClass

 

4、下面程序运行之后,变量x的值是() B

//swap方法的声明

public static void swap(int a,int b){

    int t=a;

    a=b;

    b=t;

}

//main方法

public static void main(String args[]){ A

    int x=2;

    int y=3;

    swap(x,y);//简单数据类型是不会交换,如果是对象会发生变化

}

A2    B3    C4    D6

 

5、下面变量var的作用域范围是() C

//....

int x;

swhitch(x){

    case 0:

    {

        int var;

        //process

    }

        break;

    case 1:

    {

        int var1;

        //process

    }

        break;

}

A116行之间 B48行之间  C68行之间  D614行之间

 

6、以下的类(接口)定义中正确的是()   B

A

public class a{

    private int x;

    public getX(){

        return x;

    }

}

B

public abstract class a{

    private int x;

    public abstract int getX();

    public int aMethod(){

        return 0;

    }

}

C

public class a{

    private int x;

    public abstract int getX();

}

//如果是抽象函数类必须声明为抽象

D

public interface interfaceA{

    private int x;

    public int getX(){

        return x;

    }

}

//接口都是抽象的,所有的方法都不能够被实现


7、已知A类被打包在packageA,B类被打包在packageB,B类被声明为public,且有一个成员变量x被声明为protected控制方式。C类也位于packageA包,且继承了B类。则以下说法正确的是()  C

AA类的实例不能访问到B类的实例

BA类的实例能够访问到B类一个实例的x成员

CC类的实例可以访问到B类一个实例的x成员

DC类的实例不能访问到B类的实例



8、以下()类不属于字符流类   C

AReader   BFileReader   CBufferedInputStream  DStringReader

//BufferedInputStream字节流


9、以下()类属于字节流类 D

AFileWriter

BPushbackReader

CFilterReader

DFileInputStream

//Writer/Reader基本是字符流


10、编译并运行下面的java代码段:

char c='a';

switch(c){

case 'a':

    System.out.println("a");

default:

    System.out.println("default");

}

输出结果是()  B

A、代码无法编译,因为switch语句没有一个合法的表达式

Ba Default

Ca

Ddefault

char/int/byte/枚举

都可以匹配switch();


11、分析下面的java程序

public class yy{

    public static void main(String[] args)throws Exception{

        try{

            throw new Exception();

        }catch(Exception e){

            System.out.println("Caught in main()");

        }

        System.out.println("nothing");

    }

}

输出结果为()    A

ACaught in main() Nothing

BCaught in main()

Cnothing

D、没有任何输出

//发生异常,捕获;


12、在Java中,关于final关键字的说法正确的是()AC

A、如果修饰变量,则一旦赋了值,就等同一个常量

B、如果修饰类,则该类只能被一个子类继承

C、如果修饰方法,则该方法不能在子类中被覆盖

D、如果修饰方法,则该方法所在的类不能被继承

//如果一个类被final修饰,则该类不能被继承

13、在java中,要想使只有定义该类所在的包内的类可以访问该类,应该用()关键字。A

A、不需要任何关键字

Bprivate

Cfinal

Dprotected 保护的

 

14、在java中,下面关于包的陈述中正确的是() AD

A、包的声明必须是源文件的第一句代码

B、包的声明必须紧跟在import语句的后面

C、只有公共类才能放在包中

D、可以将多个源文件中的类放在同一个包中

 

15public static void main方法的参数描述是正确的()AB

AString args[]

BString[] args

CStrings args[]

DString args

 

16、在java中,关于CLASSPATH环境变量的说法不正确的是() A

ACLASSPATH一旦设置之后不可修改,但可以将目录到该环境变量中

B、编译器用它来搜索各自的类文件

CCLASSPATH是一个目录列表

D、解释器用它来搜索各自的类文件

 

17、编译并运行下面的java程序

class A{

    int var1=1;

    int var2;

    public static void main(String[] args){

        int var3=3;

        A a=new A();

        System.out.println(a.var1+a.var2+var3);

    }

}

将产生()结果    B

A0

B4

C3

D、代码无法编译,因为var2根本没有被初始化

 

18、在单一文件中importclasspackage的正确出现顺序是()  A

Apackage,import,class

Bclass,import,package

Cimport,package,class

Dpackage,class,import

 

19、编译,运行下列代码后的结果是()  D//类的成员变量可以不赋初值,局部变量要赋初值

public class Test{

    public static void main(String args[]){

        int age;

        age=age+1;

        System.out.println("The age is"+age);

    }

}

A、编译,运行后没有输出

B、编译,运行后输出:The age is1

C、能通过编译,但运行时产生错误

D、不能通过编译


20、下列哪些表达式返回true()    AB

A"john"=="john"

B"john".equals("john")

C"john"="john"

D"john".equals(new Button("john"))

 

第二大题:

1、用循环控制语句打印输出:1+3+5+...+99=?结果

答题:

x
 
1
int sum=0;
2
for(int i=1;i<100;i+=2){
3
    sum+=i;
4
    System.out.println("i="+i+"sum="+sum);
5
}

结果:2500

 

2、请编写一个程序,实现从控制台读入字符,接收到"e"或者"E"退出程序

答题:

1
21
 
1
import java.io.BufferedReader;
2
import java.io.InputStreamReader;
3
public class Test {
4
    public static void main(String[] args) {
5
        InputStreamReader isr=new InputStreamReader(System.in);
6
        BufferedReader br=new BufferedReader(isr);
7
        while(true){
8
            System.out.println("请输入任意字符(输入e或E退出):");
9
            try {
10
                String chars=br.readLine();
11
                if(chars.equals("e")||chars.equals("E")){
12
                    System.out.println("输入的字符是e或是E,退出");
13
                    System.exit(0);
14
                }
15
            } catch (Exception e) {
16
                e.printStackTrace();
17
            }
18
           
19
        }
20
    }
21
}

3、编写两个方法分别计算合数n!.一个使用递归方法实现,另一个不用递归方法。

答题:(非递归方法)

 
1
import java.io.BufferedReader;
2
import java.io.InputStreamReader;
3
public class test {
4
    public static void main(String[] args) {
5
        InputStreamReader isr=new InputStreamReader(System.in);
6
        BufferedReader br=new BufferedReader(isr);
7
        int num=1;
8
        while(true){
9
            System.out.println("请输入整数:");
10
            try {
11
                int note=Integer.parseInt(br.readLine());
12
                if((note%1==0&&note%2==0)||(note%1==0&&note%3==0)||(note%1==0&&note%5==0)||(note%1==0&&note%7==0)){
13
                    System.out.println("你输入整数"+note+"是合数!");
14
                    for(int i=1;i<=note;i++){
15
                        num=num*i;
16
                    }
17
                    System.out.println(note+"的阶乘结果是:"+num);
18
                    num=1;
19
                }else{
20
                    System.out.println(note+"不是合数");
21
                }
22
                if(note==-1){  
23
                    System.out.println("退出");
24
                    break;
25
                }
26
            } catch (Exception e) {
27
                e.printStackTrace();
28
            }
29
        }
30
    }
31
}

------------------------------------------------------------------------------

答题:(递归方法)

1
32
 
1
import java.io.*;
2
public class Test {
3
    public static void main(String[] args) {
4
        InputStreamReader isr=new InputStreamReader(System.in);
5
        BufferedReader br=new BufferedReader(isr);
6
        while(true){
7
            System.out.println("请输入一个整数:");
8
            try {
9
                int note=Integer.parseInt(br.readLine());
10
                if((note%1==0&&note%2==0)||(note%1==0&&note%3==0)||(note%1==0&&note%5==0)||(note%1==0&&note%7==0)){
11
                    System.out.println("你输入整数"+note+"是合数!");
12
                }
13
                Test t = new Test();
14
                int n = t.calc(note);
15
                System.out.println(note+"阶乘结果是:"+n);
16
                if(note==0){
17
                    System.out.println("输入0退出");
18
                    break;
19
                }
20
            } catch (Exception e) {
21
                e.printStackTrace();
22
            }
23
        }
24
    }
25
    public int calc(int n) {
26
        if(n==0){
27
            return 1;
28
        }
29
        return n*calc(n-1);
30
    }
31
}
32
 

4、编写一个程序,在控制台接收数据,程序会让用户输入名字,并检查用户的输入:不允许输入空名字:一旦用户完成输入,程序会向该用户发出问题:“Hello,你输入的名字”。(提示:如果希望在控制台中与用户交互,一种可能的做法就是将System.in包装成)BufferedReader要做到这一点,必须使用InputStreamReader类将System.in这个InputStream对象转换成一个ReaderBufferedReader in=new BufferedReader(new InputStreamReader(System.in));

答题:

24
 
1
import java.io.BufferedReader;
2
import java.io.InputStreamReader;
3
public class Test {
4
    public static void main(String[] args) {
5
        InputStreamReader isr=new InputStreamReader(System.in);
6
        BufferedReader br=new BufferedReader(isr);
7
 
8
        while(true){
9
            System.out.println("请输入名字:");
10
            try {
11
                String name=br.readLine();
12
                if(name.equals("")){
13
                    System.out.println("你输入的名字是空,退出!");
14
                    System.exit(0);
15
                }else{
16
                    System.out.println("Hello,"+name+"!");
17
                }
18
            } catch (Exception e) {
19
                e.printStackTrace();
20
            }
21
        }
22
    }
23
}
24





原文地址:https://www.cnblogs.com/xuxaut-558/p/10045793.html