java測試筆試題A卷
Java階段-測試筆試題A卷

(滿分100分,時間120分鐘)
單項選擇題(共20題,每題2分,共40分)
1) 在Java類中,使用以下(?)聲明語句來定義公有的int型常量MAX。
public int MAX = 100;
final int MAX = 100;
public static int MAX = 100;
public static final int MAX = 100;
2) 在Java中,下列關于方法重載的說法中錯誤的是(?)。
方法重載要求方法名稱必須相同
重載方法的參數列表必須不一致
重載方法的返回類型必須一致
一個方法在所屬的類中可以重載多次
3) 給定Java代碼如下所示,在橫線處新增下列(?)方法,是對cal方法的重載。
public class Test{
public void cal(int x, int y, int z) {}
}
public float cal(int x, int y, int z){ return 0; }
public int cal(int x, int y, int z){ return 0; }
public void cal(int x, int z){ }
public void cal(int z, int y, int x){ }
4) 在Java中,下面對于構造函數的描述正確的是(?)。
類必須顯式定義構造函數
構造函數的返回類型是void
構造函數和類有相同的名稱,并且不能帶任何參數
一個類可以定義多個構造函數
5) 下面Java代碼的運行結果是(??)。
class Penguin {
private String name; // 名字
private int health; // 健康值
private String sex; // 性別
public Penguin() {
health = 10;
sex = "雄";
}
public void print() {
System.out.println("企鵝的名字是" + name +
",健康值是" + health + ",性別是" + sex+ "。");
}
public static void main(String[] args) {
Penguin pgn = new Penguin();
pgn.print();
}
}
企鵝的名字是null,健康值是10,性別是雄。
企鵝的名字是null,健康值是0,性別是null。
企鵝的名字是null,健康值是0,性別是null。
編譯報錯
6) 下列選項中關于Java中封裝的說法錯誤的是(?)。
封裝就是將屬性私有化,提供公有的方法訪問私有屬性
屬性的訪問方法包括setter方法和getter方法
setter方法用于賦值、getter方法用于取值
類的屬性必須進行封裝,否則無法通過編譯
7) 給定下列Java代碼,輸出結果是(?)。
class A ?{
public String show(D obj){
return ("A and D");
}
public String show(A obj){
return ("A and A");
}
}
class B extends A{
public String show(B obj){
return ("B and B");
}
public String show(A obj){ ?//A obj=new B();
return ("B and A");
}
public static void main(String[] args){
A a = new B();//多態
B b = new B();
System.out.println(a.show(b));
}
}
class D extends B {
}
A and D
A and A
B and B
B and A
8) 分析如下所示的Java代碼,其中this關鍵字的意思是(?)。
public class Test {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name; ???????????//this關鍵字所在的行
}
}
name屬性
Test類對象自身的引用
Test類的對象引用Test類的其他對象
指所在的方法
9) 在Java中,以下程序編譯運行后的輸出結果為(?)。
public class Test {
int x, y;
Test(int x, int y) {
this.x = x;
this.y = y;
}
public static void main(String[] args) {
Test pt1, pt2;
pt1 = new Test(3, 3);
pt2 = new Test(4, 4);
System.out.print(pt1.x + pt2.x);
}
}
6
3 4
8
7
10) 在Java語言中,下列關于類的繼承的描述,正確的是(?)。
一個類可以繼承多個父類
一個類可以具有多個子類
子類可以使用父類的所有方法
子類一定比父類有更多的成員方法
11) Java中,如果類C是類B的子類,類B是類A的子類,那么下面描述正確的是(?)。
C不僅繼承了B中的公有成員,同樣也繼承了A中的公有成員
C只繼承了B中的成員
C只繼承了A中的成員
C不能繼承A或B中的成員
12) 給定一個Java程序Test.java的代碼如下所示,編譯時,會出現以下(?)情況。
class Parent {
public int count() { ??????????????// 第1行
return 0;
}
}
public class Test ?extends Parent {
private int i;
public int count() { ??????????????// 第2行
return i % 9; ???????????????// 第3行
}
}
編譯通過
在第1行引發編譯錯誤
在第2行引發編譯錯誤
在第3行引發編譯錯誤
13) 給定如下一個Java源文件Child.java,編譯并運行Child.java,以下結果正確的是(?)。
class Parent1 {
Parent1(String s){
System.out.println(s);
}
}
class Parent2 ?extends Parent1{
Parent2(){
System.out.println("parent2");
}
}
public class Child extends Parent2 {
public static void main(String[] args) {
Child child = new Child();
}
}
編譯錯誤:沒有找到構造器Child()
編譯錯誤:沒有找到構造器Parent1()
正確運行,沒有輸出值
正確運行,輸出結果為:parent2
14) 給定Java程序Child.java的代碼如下所示,則編譯運行該類的結果是(?)。
class Parent {
Parent() {
System.out.println("parent");
}
}
public class Child extends Parent {
Child(String s) {
System.out.println(s);
}
public static void main(String[] args) {
Child child = new Child("child");
}
}
輸出:child
輸出:child
parent
輸出:parent
child
編譯錯誤
15) 下列選項中關于Java中super關鍵字的說法錯誤的是(?)。
super關鍵字是在子類對象內部指代其父類對象的引用
super關鍵字不僅可以指代子類的直接父類,還可以指代父類的父類
子類可以通過super關鍵字調用父類的方法
子類可以通過super關鍵字調用父類的屬性
16) 分析如下所示的Java代碼,則選項中的說法正確的是(?)。
class Parent{
public String name;
public Parent(String pName){
this.name = pName;
}
}
public class Test ?extends Parent { ?//1
public Test(String Name){ ??????????????//2
name="hello"; ?????????//3
super("kitty"); ?????????//4
}
}
第2行錯誤,Test類的構造函數中參數名稱應與其父類構造函數中的參數名相同
第3行錯誤,應使用super關鍵字調用父類的name屬性,改為super.name="hello";
第4行錯誤,調用父類構造方法的語句必須放在子類構造方法中的第一行
程序編譯通過,無錯誤
17) 在Java中,如果父類中的某些方法不包含任何邏輯,并且需要有子類重寫,應該使?用(?????)關鍵字來申明父類的這些方法。
final
static
void
abstract
18) 在Java中,多態的實現不僅能減少編碼的工作量,還能大大提高程序的可維護性及可擴展性,那么實現多態的步驟包括以下幾個方面除了(?)。
子類重寫父類的方法
子類重載同一個方法
定義方法時,把父類類型作為參數類型;調用方法時,把父類或子類的對象作為參 數傳入方法
運行時,根據實際創建的對象類型動態決定使用哪個方法
19) 給定Java代碼如下所示,則編譯運行后,輸出結果是(?)。
class Parent {
public void count() {
System.out.println(10%3);
}
}
public class Child ?extends Parent{
public void count() {
System.out.println(10/3);
}
public static void main(String args[]) {
Parent p = new Child();
p.count();
}
}
1
1.0
3
3.3333333333333335
20) 給定如下Java代碼,以下()方法可以加入Child類中。
public?class?Parent{
public int?change(){}
}
class?Child?extends?Parent{
_______________________
}
public?int?change(){return 0;}
int?change(){return 0;}
private?int?change(){return 0;}
abstract?int?change(){return 0;}
多項選擇題(共10題,每題2分,共20分)
下列說法錯誤的是()
A . ?每次創建對象都會執行一次靜態代碼塊
默認初始化在構造方法之前執行
局部代碼塊在構造代碼塊之前執行
構造方法在顯示初始化之前執行
給定如下java?代碼,?以下(????)訪問控制修飾符可以填入下劃線處。
class?Parent{
void?eat(){
}
}
class?Child?extends?Parent {
_______?void?eat(){
}
}
protected
private
什么也不填
public
下面對static的描述正確的是
靜態修飾的成員變量和成員方法隨著類的加載而加載
非靜態的成員方法可以訪問靜態的成員變量
靜態修飾的成員可以被整個類對象所共享
靜態修飾的成員方法可以訪問非靜態成員變量
給定java代碼,如下:
abstract?class?Shape?????{
abstract?void?draw(?);
}
要創建Shape類的子類Circle,以下代碼正確的是()。
class?Circle?extends?Shape{????int?draw(?){}??????}
abstract?class?Circle?extends?Shape{??????}
class?Circle?extends?Shape{????void?draw(?);??}
class?Circle?extends?Shape{????void?draw(?){}?}
在Java中,下面關于抽象類的描述正確的是()。
抽象類可以被實例化
抽象類中有構造方法
抽象類中可以沒有抽象方法
聲明抽象類必須帶有關鍵字abstract
在java中,已定義了兩個接口B和C以下語句正確的是(?)
interface?A?extends?B,C
interface?A?implements?B,C
class?A?implements?B,C
class?A?implements?B,implements?C
關于abstract說法正確的是()
abstract可以修飾成員變量
被abstract修飾的方法不能有方法體
abstract可以修飾構造代碼塊
abstract可以修飾類
下面關于Java接口的說法正確的是()。
Java接口可以繼承多個接口
Java接口中可以被多個子類實現,一個類也可以同時實現多個接口
Java接口中可以聲明私有成員
Java接口有構造方法
分析如下Java代碼,如果想在控制臺上輸出“B類的test()方法”,則在主函數應填入()。
class A {
public void test() {
System.out.println("A類的test()方法");
}
}
class B extends A {
public void test() {
System.out.println("B類的test()方法");
}
public static void main(String args[]) {
______________________________
}
}
A a = new B();
a.test();
A a = new A();
a.test();
B b = new A();
b.test();
new B().test();
在Java接口中定義常量,下面語法正確的是()。
protected static int MALE = 1;
final int MALE = 1;
static int MALE = 1;
private int MALE = 1;
填空題(共10題,共20分)
解釋一下異常出現的原因和解決辦法
ArrayIndexOutofBoundsException
異常名稱:
產生原因:
解決辦法:
解釋一下異常出現的原因和解決辦法
NullPointerException
異常名稱:
產生原因:
解決辦法:
解釋一下異常出現的原因和解決辦法
IllegalArgumentException
異常名稱:
產生原因:
解決辦法:
解釋一下異常出現的原因和解決辦法
NoShchElementException
異常名稱:
產生原因:
解決辦法:
解釋一下異常出現的原因和解決辦法
FileNotFoundException
異常名稱:
產生原因:
解決辦法:
解釋一下異常出現的原因和解決辦法
FileNotFoundException: day01-code (拒絕訪問。)
異常名稱:
產生原因:
解決辦法:
解釋一下異常出現的原因和解決辦法
ConcurrentModificationException
異常名稱:
產生原因:
解決辦法:
解釋一下異常出現的原因和解決辦法
ClassCastException
異常名稱:
產生原因:
解決辦法:
解釋一下異常出現的原因和解決辦法
ParseException
異常名稱:
產生原因:
解決辦法:
解釋一下異常出現的原因和解決辦法
UnsupportedOperationException
異常名稱:
產生原因:
解決辦法:
上機題(共2題,共20分)
請編寫TCP協議網絡編程中客戶端與服務器代碼;
要求:
客戶端可以往服務器發送任意類型的文件(文件可以來自PC中任意路徑)
服務器接收客戶端發來的文件,并存入項目根目錄的Source(可以自行創建)文件夾內
服務器要求使用多線程技術,并在傳輸完成的時候向客戶端發送接收完畢信息
客戶端要求在傳輸完畢候能接收到服務器回顯”傳輸完成”的數據
請編寫復制文件夾案例;
要求
源路徑:附件中的文件夾
目的地路徑:項目根目錄
Java
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。