重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
目錄
創新互聯是一家專業提供開平企業網站建設,專注與成都網站制作、成都做網站、HTML5建站、小程序制作等業務。10年已為開平眾多企業、政府機構等服務。創新互聯專業網站制作公司優惠進行中。一、選擇題
二、編程題
2.1另類加法
2.2走方格的方案數
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 中,一個類可同時定義為許多同名的方法,這些方法的形式參數個數,類型或順序各不相同,傳回的值可能各不相同,這種面向對象的特性稱為()
A 隱藏
B 覆蓋
C 重載
D 無此特性
一個類可同時定義為許多同名的方法,這些方法的形式參數個數,類型或順序各不相同,傳回的值可能各不相同,這種面向對象的特性稱為重載。
所以正確答案是?C??
3.關于 JAVA 堆,下面說法錯誤的是()
A 所有類的實例和數組都是在堆上分配內存的
B 對象所占的堆內存是由自動內存管理系統回收
C 堆內存由存活和死亡的對象,空閑碎片區組成
D 數組是分配在棧中的
所有類的實例和數組都是在堆上分配內存的,對象所占的堆內存是由自動內存管理系統回收,堆內存由存活和死亡的對象,空閑碎片區組成。數組的引用存在棧內存中,而數組對象保存在堆里面。
所以正確答案是 D??
4.一個以“.java”為后綴的源文件
A 只能包含一個public類,類名必須與文件名相同
B 只能包含與文件名相同的public類以及其中的內部類
C 只能有一個與文件名相同的public類,可以包含其他非public類(不考慮內部類)
D 可以包含任意public類
一個以“.java”為后綴的源文件只能有一個與文件名相同的public類,可以包含其他非public類
所以正確答案是?C??
5.JAVA語言的下面幾種數組復制方法中,哪個效率最高?
A for循環逐一復制
B System.arraycopy
C Arrays.copyOf
D 使用clone方法
效率:System.arraycopy >clone >Arrays.copyOf > for循環逐一復制
所以正確答案是?B??
6.()僅包含方法定義和常量值。
A 接口
B 變量
C 單元
D 成員
接口僅包含方法定義和常量值,方法不包含大括號,不能進行詳細描述,需要有子類進行拓展。
所以正確答案是?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?
在子類和父類如果都有有參構造,那么必須在子類中調用父類的有參構造給他初始化,否則會編譯報錯。
所以正確答案是?C??
8.有關下述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表示靜態,直接用類名就能調用方法。
所以正確答案是?F??
9.下列java程序的輸出結果為____。
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數組引用對象,所以會對主方法中的ch數組也造成改變。
所以正確答案是?B??
10.下列 java 程序輸出結果為______。
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 對于不同的環境結果不同
F 程序無法執行
二、編程題 2.1另類加法“==”進行的是兩個變量數值的比較,對于基本數據類型來說比較的就是基本數值是否相等,對于引用數據類型來說比較的是兩個引用是否指向同一個對象(即地址是否相同)。
equals方法進行的是兩個類對象的屬性值比較,若類的對象需要具體比較屬性值是否相等需要復寫Object類中提供的equals方法。
基本數據類型與引用數據類型進行比較時,引用數據類型會進行拆箱,然后與基本數據類型進行值的比較所以i==j返回的是true。引用數據類型與基本數據類型進行比較,基本數據類型會進行自動裝箱,與引用數據類型進行比較,Object中的equals方法比較的是地址,但是Integer類已經重寫了equals方法,只要兩個對象的值相同,則可視為同一對象,具體看API文檔,所以這歸根到底也是值的比較。所以j.equals(i)返回的是true。
此題考察了所以正確答案是?B??
給定兩個int A和B。編寫一個函數返回A+B的值,但不得使用+或其他算數運算符
本題需要返回A+B的值并且不能使用算術運算符,首先排除特殊情況如果B為0的話,那么結果就是A,然后進入循環,int sum = A^B; 使A和B(按位異或^兩個二進制位相同返回0,不相同返回1)得到sum,然后使A和B按位與&(如果兩個二進制位都為1,則返回1,否則返回0)然后將結果左移位<<得到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走方格的方案數請計算n*m的棋盤格子(n為橫向的格子數,m為豎向的格子數)從棋盤左上角出發沿著邊緣線從左上角走到右下角,總共有多少種走法,要求不能走回頭路,即:只能往右和往下走,不能往左和往上走。 注:沿棋盤格之間的邊緣線行走 數據范圍: 1≤n,m≤8
在本題中一共有四種可能性。
第一種情況是n = 1,m = 1,只有一個小方塊,那么只有m+n = 2 兩種走法。
第二種情況是m = 1
第三種情況是n = 1,第二種情況和第三種情況都是有m+n種走法。
第四種情況就是m和n都不是1,那么這種時候就需要進入遞歸,返回g(n,m-1)+g(n-1,m),將整個方塊拆分為兩塊進行運算。直到上述三種情況才結束遞歸。
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);
}
}
你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧