第二屆全國ITAT教育工程就業技能大賽預賽試題
Java程式設計
注意:在指定的路徑下建立以姓名和准考證號命名的檔案夾,並將試題答案存放在以題號命名的子檔案夾中。凡未按照要求將試題存放在相應檔案夾中的考產生績一律作廢。
一.選擇題(每道題3分,共45分)
| 1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(1)下列關於Java語言的特點,描述錯誤的是( )
A.Java是跨平台的程式設計語言 B.Java支援分散式運算
C.Java是面向過程的程式設計語言 D.Java支援多線程
(2)下述概念中不屬於物件導向方法的是________。
A.對象、訊息 B.繼承、多態 C.類、封裝 D.程序呼叫
(3)結構化程式設計所規定的三種基本控制結構是 ( )
A.輸入、處理、輸出 B.樹形、網形、環形
C.順序、選擇、迴圈 D.主程式、子程式、函數
(4)下列關於構造方法的敘述中,錯誤的是( )
A.Java語言規定構造方法名與類名必須相同
B.Java語言規定構造方法沒有傳回值,但不用void聲明
C.Java語言規定構造方法不可以重載
D.Java語言規定構造方法只能通過new自動調用
(5)下列哪個類的聲明是正確的?
A.abstract final class HI{} B.abstract private move(){}
C.protected private number; D.public abstract class Car{}
(6)關於被私人存取控制符private修飾的成員變數,以下說法正確的是( )
A.可以被三種類所引用:該類自身、與它在同一個包中的其他類、在其他包中的該類的子類
B.可以被兩種類訪問和引用:該類本身、該類的所有子類
C.只能被該類自身所訪問和修改
D.只能被同一個包中的類訪問
(7)以下聲明合法的是( )
A.default String s; B.public final static native int w( )
C.abstract double d; D.abstract final double hyperbolicCosine( )(8)Applet可以做下列哪些操作?( )
A.讀取用戶端檔案 B.在用戶端主機上建立新檔案
C.在用戶端裝載程式庫 D.讀取用戶端部分系統變數
(9)下列關於for迴圈和while迴圈的說法中哪個是正確的?( )
A.while迴圈能實現的操作,for迴圈也都能實現
B.while迴圈判斷條件一般是程式結果,for迴圈判斷條件一般是非程式結果
C.兩種迴圈任何時候都可替換
D.兩種迴圈結構中都必須有迴圈體,迴圈體不可為空
(10)類Test1定義如下:
1.public class Test1{
2. public float aMethod(float a,float b){ }
3.
4.}
將以下哪種方法插入行3是不合法的。( )
A、public float aMethod(float a, float b,float c){ }
B、public float aMethod(float c,float d){ }
C、public int aMethod(int a, int b){ }
D、private float aMethod(int a,int b,int c){ }
(11)閱讀以下代碼:
import java.io.*;
import java.util.*;
public class foo{
public static void main (String[] args){
String s;
System.out.println("s=" + s);
}
}
輸出結果應該是:( )
A.代碼得到編譯,並輸出“s=”
B.代碼得到編譯,並輸出“s=null”
C.由於String s沒有初始化,代碼不能編譯通過
D.代碼得到編譯,但捕獲到 NullPointException異常
(12)編譯運行以下程式後,關於輸出結果的說明正確的是 ( )
public class Conditional{
public static void main(String args[ ]){
int x=4;
System.out.println(“value is “+ ((x>4) ? 99.9 :9));
}
}
A.輸出結果為:value is 99.99 B.輸出結果為:value is 9
C.輸出結果為:value is 9.0 D.編譯錯誤
(13)執行完以下代碼int [ ] x = new int[10];後,以下哪項說明是正確的( )
A.x[9]為0 B.x[9]未定義 C.x[10]為0 D.x[0]為空白
(14)關於以下程式段,正確的說法是( )1. String s1=“a”+“b”;
2. String s2=new String(s1);
3. if(s1==s2)
4. System.out.println(“= = is succeeded”);
5. if (s1.equals(s2))
6. System.out.println(“.equals() is succeeded”);
A.行4與行6都將執行 B.行4執行,行6不執行
C.行6執行,行4不執行 C.行4、行6都不執行
(15)以下程式的運行結果是:( )
public class Increment{
public static void main(String args[]){
int c;
c = 2;
System.out.println(c);
System.out.println(c++);
System.out.println(c);
}
}
A.2 B.2 C.2 D.3
2 3 2 4
2 3 3 4
二.寫出以下程式的運行結果。(每道題10分,共30分)
1、寫出以下程式的運行結果。
public class ChangeStrDemo {
public static void changestr(String str){
str="welcome";
}
public static void main(String[] args) {
String str="1234";
changestr(str);
System.out.println(str);
}
}
2、寫出以下程式的運行結果。
class First{
public First(){
aMethod(); }
public void aMethod(){
System.out.println(“in First class”);}
}
public class Second extends First{
public void aMethod(){
System.out.println(“in Second class”);}
public static void main(String[ ] args){
new Second( ); }
}3、寫出以下程式的運行結果。
public class FooDemo{
static boolean foo(char c) {
System.out.print(c);
return true;
}
public static void main(String[] args ) {
int i =0;
for ( foo(’a’); foo(’b’)&&(i<2); foo(’c’)){
i++ ;
foo(’d’);
}
}
}
三.編程題(45分)
1.編寫一個Java程式要求:開啟一個文字檔,一次讀取其內的一行文本。令每一行形成一個String,並將讀出的String對象置於LinkedList中。請以相反次序印出LinkedList內的所有文本行。