目錄
創(chuàng)新互聯(lián)是一家專業(yè)提供開平企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、成都做網(wǎng)站、HTML5建站、小程序制作等業(yè)務(wù)。10年已為開平眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。一、選擇題
二、編程題
2.1另類加法
2.2走方格的方案數(shù)
1.下面程序的輸出是:()
String x="fmn";
x.toUpperCase();
String y=x.replace('f','F');
y=y+"wxy";
System.out.println(y);
A FmNwxy
B fmnwxy
C wxyfmn
D Fmnwxy
String x = “fmm”;“fmn”是在常量的不可變對象。x.toUpperCase()將字符串全部變成大寫,在堆中new一個“FMN”對象,但無任何引用指向它。
所以x仍然是 "fmn",y=x.replace('f','F'),意味著將x中的f換成F,所以y ="Fmn" 然后y=y+"wxy",所以y = "Fmnwxy"。
所以正確答案是 D??
2.在 java 中,一個類可同時定義為許多同名的方法,這些方法的形式參數(shù)個數(shù),類型或順序各不相同,傳回的值可能各不相同,這種面向?qū)ο蟮奶匦苑Q為()
A 隱藏
B 覆蓋
C 重載
D 無此特性
一個類可同時定義為許多同名的方法,這些方法的形式參數(shù)個數(shù),類型或順序各不相同,傳回的值可能各不相同,這種面向?qū)ο蟮奶匦苑Q為重載。
所以正確答案是?C??
3.關(guān)于 JAVA 堆,下面說法錯誤的是()
A 所有類的實例和數(shù)組都是在堆上分配內(nèi)存的
B 對象所占的堆內(nèi)存是由自動內(nèi)存管理系統(tǒng)回收
C 堆內(nèi)存由存活和死亡的對象,空閑碎片區(qū)組成
D 數(shù)組是分配在棧中的
所有類的實例和數(shù)組都是在堆上分配內(nèi)存的,對象所占的堆內(nèi)存是由自動內(nèi)存管理系統(tǒng)回收,堆內(nèi)存由存活和死亡的對象,空閑碎片區(qū)組成。數(shù)組的引用存在棧內(nèi)存中,而數(shù)組對象保存在堆里面。
所以正確答案是 D??
4.一個以“.java”為后綴的源文件
A 只能包含一個public類,類名必須與文件名相同
B 只能包含與文件名相同的public類以及其中的內(nèi)部類
C 只能有一個與文件名相同的public類,可以包含其他非public類(不考慮內(nèi)部類)
D 可以包含任意public類
一個以“.java”為后綴的源文件只能有一個與文件名相同的public類,可以包含其他非public類
所以正確答案是?C??
5.JAVA語言的下面幾種數(shù)組復(fù)制方法中,哪個效率最高?
A for循環(huán)逐一復(fù)制
B System.arraycopy
C Arrays.copyOf
D 使用clone方法
效率:System.arraycopy >clone >Arrays.copyOf > for循環(huán)逐一復(fù)制
所以正確答案是?B??
6.()僅包含方法定義和常量值。
A 接口
B 變量
C 單元
D 成員
接口僅包含方法定義和常量值,方法不包含大括號,不能進(jìn)行詳細(xì)描述,需要有子類進(jìn)行拓展。
所以正確答案是?A??
7.對文件名為Test.java的java代碼描述正確的是()
class Person {
String name = "No name";
public Person(String nm) {
name = nm;
}
}
class Employee extends Person {
String empID = "0000";
public Employee(String id) {
empID = id;
}
}
public class Test {
public static void main(String args[]) {
Employee e = new Employee("123");
System.out.println(e.empID);
}
}
A 輸出:0000
B 輸出:123
C 編譯報錯
D 輸出:No name?
在子類和父類如果都有有參構(gòu)造,那么必須在子類中調(diào)用父類的有參構(gòu)造給他初始化,否則會編譯報錯。
所以正確答案是?C??
8.有關(guān)下述Java代碼描述正確的選項是____。
public class TestClass {
private static void testMethod(){
System.out.println("testMethod");
}
public static void main(String[] args) {
((TestClass)null).testMethod();
}
}
A 編譯不通過
B 編譯通過,運行異常,報NullPointerException
C 編譯通過,運行異常,報IllegalArgumentException
D 編譯通過,運行異常,報NoSuchMethodException
E 編譯通過,運行異常,報Exception
F 運行正常,輸出testMethod
本題是可以正常運行的,如果將static去掉就會有空指針異常,static表示靜態(tài),直接用類名就能調(diào)用方法。
所以正確答案是?F??
9.下列java程序的輸出結(jié)果為____。
public class Example{
String str=new String("hello");
char[]ch={'a','b'};
public static void main(String args[]){
Example ex=new Example();
ex.change(ex.str,ex.ch);
System.out.print(ex.str+" and ");
System.out.print(ex.ch);
}
public void change(String str,char ch[]){
str="test ok";
ch[0]='c';
}
}
A hello and ab
B hello and cb
C hello and a
D test ok and ab
E test ok and cb
F test ok and c
change方法中改變了str形參的值,并沒有改變主方法中str引用的對象,而第二行直接改變了ch數(shù)組引用對象,所以會對主方法中的ch數(shù)組也造成改變。
所以正確答案是?B??
10.下列 java 程序輸出結(jié)果為______。
int i=0;
Integer j = new Integer(0);
System.out.println(i==j);
System.out.println(j.equals(i));
A true,false
B true,true
C false,true
D false,false
E 對于不同的環(huán)境結(jié)果不同
F 程序無法執(zhí)行
二、編程題 2.1另類加法“==”進(jìn)行的是兩個變量數(shù)值的比較,對于基本數(shù)據(jù)類型來說比較的就是基本數(shù)值是否相等,對于引用數(shù)據(jù)類型來說比較的是兩個引用是否指向同一個對象(即地址是否相同)。
equals方法進(jìn)行的是兩個類對象的屬性值比較,若類的對象需要具體比較屬性值是否相等需要復(fù)寫Object類中提供的equals方法。
基本數(shù)據(jù)類型與引用數(shù)據(jù)類型進(jìn)行比較時,引用數(shù)據(jù)類型會進(jìn)行拆箱,然后與基本數(shù)據(jù)類型進(jìn)行值的比較所以i==j返回的是true。引用數(shù)據(jù)類型與基本數(shù)據(jù)類型進(jìn)行比較,基本數(shù)據(jù)類型會進(jìn)行自動裝箱,與引用數(shù)據(jù)類型進(jìn)行比較,Object中的equals方法比較的是地址,但是Integer類已經(jīng)重寫了equals方法,只要兩個對象的值相同,則可視為同一對象,具體看API文檔,所以這歸根到底也是值的比較。所以j.equals(i)返回的是true。
此題考察了所以正確答案是?B??
給定兩個int A和B。編寫一個函數(shù)返回A+B的值,但不得使用+或其他算數(shù)運算符
本題需要返回A+B的值并且不能使用算術(shù)運算符,首先排除特殊情況如果B為0的話,那么結(jié)果就是A,然后進(jìn)入循環(huán),int sum = A^B; 使A和B(按位異或^兩個二進(jìn)制位相同返回0,不相同返回1)得到sum,然后使A和B按位與&(如果兩個二進(jìn)制位都為1,則返回1,否則返回0)然后將結(jié)果左移位<<得到tmp,然后將sum值賦給A,將tmp值賦給B。直到B<=0。
import java.util.*;
public class UnusualAdd {
public int addAB(int A, int B) {
if(B==0){
return A;
}
while(B!=0){
int sum = A^B;
int tmp = (A&B)<<1;
A = sum;
B = tmp;
}
return A;
}
}
2.2走方格的方案數(shù)請計算n*m的棋盤格子(n為橫向的格子數(shù),m為豎向的格子數(shù))從棋盤左上角出發(fā)沿著邊緣線從左上角走到右下角,總共有多少種走法,要求不能走回頭路,即:只能往右和往下走,不能往左和往上走。 注:沿棋盤格之間的邊緣線行走 數(shù)據(jù)范圍: 1≤n,m≤8
在本題中一共有四種可能性。
第一種情況是n = 1,m = 1,只有一個小方塊,那么只有m+n = 2 兩種走法。
第二種情況是m = 1
第三種情況是n = 1,第二種情況和第三種情況都是有m+n種走法。
第四種情況就是m和n都不是1,那么這種時候就需要進(jìn)入遞歸,返回g(n,m-1)+g(n-1,m),將整個方塊拆分為兩塊進(jìn)行運算。直到上述三種情況才結(jié)束遞歸。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
System.out.println(g(n,m));
}
public static int g(int n,int m){
if(m==1&&n==1){
return m+n;
}
if(m==1||n==1){
return m+n;
}
return g(n,m-1)+g(n-1,m);
}
}
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧