JAVA入門到精通-第52講-面試題講評
賽迪網Java程式設計師筆試題
第一大題:選擇題(共20個小題,要求和分值按每題後面的提示,共60分)
1、下面哪些是java語言中的關鍵字? B
A、sizeof
B、abstract
C、NULL
D、Native
2、第一個java語言編譯器是在()年推出。 D
A、1991
B、1992
C、2001
D、1996
3、以下()是JAVA的保留字 C
A、Java
B、Hello
C、class
D、Class
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);//簡單資料型別是不會交換,如果是物件會發生變化
}
A、2 B、3 C、4
5、下面變數var的作用域範圍是() C
//....
int x;
swhitch(x){
case 0:
{
int var;
//process
}
break;
{
int var1;
//process
}
break;
}
A、1和16行之間 B、4和8行之間 C、6和8行之間 D、6和14行之間
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
A、A類的例項不能訪問到B類的例項
B、A類的例項能夠訪問到B類一個例項的x成員
C、C類的例項可以訪問到B類一個例項的x成員
D、C類的例項不能訪問到B類的例項
8、以下()類不屬於字元流類 C
A、Reader B、FileReader C、BufferedInputStream D、StringReader
//BufferedInputStream位元組流
9、以下()類屬於位元組流類 D
A、FileWriter
B、PushbackReader
C、FilterReader
D、FileInputStream
//Writer/Reader基本是字元流
10、編譯並執行下面的java程式碼段:
char c='a';
switch(c){
case 'a':
System.out.println("a");
default:
System.out.println("default");
}
輸出結果是()。 B
A、程式碼無法編譯,因為switch語句沒有一個合法的表示式
B、a Default
C、a
D、default
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
A、Caught in main() Nothing
B、Caught in main()
C、nothing
D、沒有任何輸出
//發生異常,捕獲;
12、在Java中,關於final關鍵字的說法正確的是()。A、C
A、如果修飾變數,則一旦賦了值,就等同一個常量
B、如果修飾類,則該類只能被一個子類繼承
C、如果修飾方法,則該方法不能在子類中被覆蓋
D、如果修飾方法,則該方法所在的類不能被繼承
13、在java中,要想使只有定義該類所在的包內的類可以訪問該類,應該用()關鍵字。A
A、不需要任何關鍵字
B、private
C、final
D、protected 保護的
14、在java中,下面關於包的陳述中正確的是() A、D
A、包的宣告必須是原始檔的第一句程式碼
B、包的宣告必須緊跟在import語句的後面
C、只有公共類才能放在包中
D、可以將多個原始檔中的類放在同一個包中
15、public static void main方法的引數描述是正確的()。A、B
A、String args[]
B、String[] args
C、Strings args[]
D、String args
16、在java中,關於CLASSPATH環境變數的說法不正確的是() A
A、CLASSPATH一旦設定之後不可修改,但可以將目錄到該環境變數中
B、編譯器用它來搜尋各自的類檔案
C、CLASSPATH是一個目錄列表
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
A、0
B、4
C、3
D、程式碼無法編譯,因為var2根本沒有被初始化
18、在單一檔案中import、class和package的正確出現順序是() A
A、package,import,class
B、class,import,package
C、import,package,class
D、package,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() A、B
A、"john"=="john"
B、"john".equals("john")
C、"john"="john"
D、"john".equals(new Button("john"))
第二大題:
1、用迴圈控制語句列印輸出:1+3+5+...+99=?結果
答題:
x 1int 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 1import 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!.一個使用遞迴方法實現,另一個不用遞迴方法。
答題:(非遞迴方法)
1import 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&¬e%2==0)||(note%1==0&¬e%3==0)||(note%1==0&¬e%5==0)||(note%1==0&¬e%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 1import 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&¬e%2==0)||(note%1==0&¬e%3==0)||(note%1==0&¬e%5==0)||(note%1==0&¬e%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物件轉換成一個Reader即BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
答題:
24 1import 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
來自為知筆記(Wiz)