整理的CCAT學習考試JAVA試題,如下:
一、填空題(每空2分,共20分),
1.將一個行內標簽轉換為塊狀標簽的CSS樣式是 display:block,
2.運算式19/3*3+19%3的值是 19,
3.用static修飾的變數叫靜態變數,他可以通過物件和類名兩種方式訪問,
4.如果一個方法被修飾為重寫 / final方法,則這個方法不能被重寫,
5.下述代碼輸出結果是:ABC
public class Test {
public static void main(String[] args) {
LinkedList list = new LinkedList();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
list.add("E");
list.add("F");
for (int i = 0; i < list.size(); i++) {
//poll 獲取并移除串列的頭
System.out.println(list.poll());
}
}
}
- 輸出后I和J的值分別是
100,0,
public class Test {
public static void main(String[] args) {
int j = 0;
int i = 0;
for(;i<100; i++){
j = j++;
}
System.out.println(i);
System.out.println(j);
}
}
- 分析下面的java代碼輸出結果為
7
public class Point {
int x,y;
Point(int x,int y){
this.x=x;
this.y=y;
}
public static void main(String[] args){
Point pt1,pt2;
pt1=new Point (3,3);
pt2=new Point(4,4);
System.out.print(pt1.x+pt2.x);
}
}
二、選擇題(本大題 20 小題,每小題2分.共40分),
-
可以通過修改(
A)檔案的 (A) 節點來配置Tomcat埠號,
A:server.xml
B:web.xml
C:server.xml
D:web.xml -
在Java中,關于類和物件,以下說法正確的是(
A),
A:類定義了概念模型,而物件是真正的物體
B:物件定義了概念模型,而類是真正的物體
C:類是物件的子集
D:物件是類的子集 -
在Java中,Statement介面中包含很多基本資料庫操作方法,以下說法不正確的是(
B),
A:ResultSet executeQuery(String sql):可以執行SQL陳述句并獲取ResultSet物件
B:boolean executeUpdate(String sql):可以執行插入、洗掉、更新等操作
C:boolean execute(String sql):可以執行任意SQL陳述句,表示SQL陳述句是否執行成功
D:int executeUpdate(String sql):可以執行插入、洗掉、更新等操作 -
某Java類中包含如下main函式,則編譯運行此類的結果是(
C),
A:第1行出現編譯錯誤
B:第2行出現編譯錯誤
C:第3行出現編譯錯誤
D:程式正確運行,輸出結果為:a+b=17.2
public static void main(String args[]) {
double a = 10.2; //第1行
int b = 7, result; //第2行
result = a + b; //第3行
System.out.println("a+b=" + result);
}
-
在Java中,下列選項說法不正確的是(
D),
A:java.util.Random類用于生成亂數
B:java.util.Random類的nextInt()方法回傳一個此隨機生成器序列中均勻分布的int值
C:java.util.Random類的nextInt()方法回傳一個此隨機生成器序列中在0(包括)和指定值(不包括)之間均勻分布的int值
D:執行代碼:System.out.println(new java.util.Random().nextInt(10)+1);輸出的值不可能為10 -
有如下JavaScript代碼,頁面運行后,輸出(
C),
A:abc
B:0
C:NaN
D:頁面報錯,無法運行
<script type=“text/javascript”>
var x=parseInt("abc");
document.write(x);
</script>
-
在JSP頁面上,以下(
C)陳述句,可以把類java.util.Date引入到JSP頁面,
A:<% page import =“java.util.Date” %>
B:<%@ page import =“java.util.Date” @%>
C:<%@ page import =“java.util.Date” %>
D:<%@ import =“java.util.Date” %> -
在JSP中,以下關于Cookie描述錯誤的是(
C),
A:Cookie是在客戶端保存用戶相關資料的
B:Cookie可以保存字串
C:Cookie可以保存任意型別的物件
D:不建議在Cookie中保存比較重要或敏感的內容 -
在JSP中,以下關于轉發和重定向的說法正確的是(
B D),
A:不管轉發還是重定向,客戶端瀏覽器中顯示的都是新的URL地址
B:重定向可以理解為是瀏覽器至少提交了兩次請求,它是在客戶端發揮作用,通過請求新的地址實作頁面轉向
C:轉發和重定向都可以共享request范圍內的資料
D:轉發通過request的getRequestDispatcher().forward()方法即可實作,它的作用是在多個頁面互動程序中實作請求資料的共享 -
關于HTML的Ajax作業流程,說法正確的是(
B),
A:服務器端產生js事件
B:必須創建XMLHttpRequest物件
C:服務器端處理請求后,必須以純文本方式回傳
D:XMLHttpRequest物件有4個回應狀態 -
仔細分析下面程式,while 的回圈次數是 (
D)
A、1 B、10 C、6 D、死回圈,不能確定次數
int i=0;
while(i<10) {
if(i<1) continue;
if(i==5) break; i++;
}
-
為了區分多載多型中同名的不同方法,要求:(
B),
A)引數名不同 B) 采用不同的形式引數串列
C)回傳值型別不同 D) 選項A, B, C都對 -
以下哪個不是Collection的子介面?(
C),
A) List B) Set C) Map D) SortedSet -
下列說法正確的有(
C)
A. class中的constructor不可省略
B. constructor必須與class同名,但方法不能與class同名
C. constructor在一個物件被new時執行
D.一個class只能定義一個constructor -
CSS樣式background-position:5px -10px代表的意義是(
D),
A.背景圖片向左偏移5px,向下偏移10px
B.背景圖片向左偏移5px,向上偏移10px
C.背景圖片向右偏移5px,向下偏移10px
D.背景圖片向右偏移5px,向上偏移10px -
以下哪個描述是正確的?
D
A.多執行緒是Java語言獨有的
B.多執行緒需要多CPU
C.多執行緒要求一個計算機擁有單獨一個CPU
D.Java語言支持多執行緒 -
以下代碼的執行結果是?
C
A.large.txt檔案在本地硬碟上被創建
B.在Unix系統上運行失敗,因為路徑分割符不正確
C.large.txt檔案在本地硬碟上沒有被創建
D.如果large.txt檔案已經存在,則一個例外被拋出
public class Example {
public static void main(String[] args) {
File f = new File("c:\\large.txt");
}
- 請選擇以下代碼運行結果?(
C)
A、0
B、1
C、2
D、3
public class test {
public static void main(String args[]) {
int i=0, j=2;
do {
i=++i;
j--;
} while(j>0);
System.out.println(i);
}
}
- 請選擇以下代碼運行結果?(
A)
A、編譯出錯
B、運行出錯
C、null
D、””
Character c1=-13;
Character c2=-13;
System.out.println("c1==c2"+(c1==c2));
- 自定義類Account,創建此類物件account,哪個選項不能正確回傳Class物件?(
A)
A、account.class
B、Account.class
C、account.getClass()
D、Class.forName(“Account”)
三、問答題(共40分),
- 抽象類(abstract class)和介面(interface)有什么異同?(6分)
答:抽象類和介面都不能夠實體化,但可以定義抽象類和介面型別的參考,一個類如果繼承了某個抽象類或者實作了某個介面都需要對其中的抽象方法全部進行實作,否則該類仍然需要被宣告為抽象類,介面比抽象類更加抽象,因為抽象類中可以定義構造器,可以有抽象方法和具體方法,而介面中不能定義構造器而且其中的方法全部都是抽象方法,抽象類中的成員可以是private、默認、protected、public的,而介面中的成員全都是public的,抽象類中可以定義成員變數,而介面中定義的成員變數實際上都是常量,有抽象方法的類必須被宣告為抽象類,而抽象類未必要有抽象方法, - List、Map、Set三個介面存取元素時,各有什么特點? (6分)
答:List以特定索引來存取元素,可以有重復元素,Set不能存放重復元素(用物件的equals()方法來區分元素是否重復),Map保存鍵值對(key-value pair)映射,映射關系可以是一對一或多對一,Set和Map容器都有基于哈希存盤和排序樹的兩種實作版本,基于哈希存盤的版本理論存取時間復雜度為O(1),而基于排序樹版本的實作在插入或洗掉元素時會按照元素或元素的鍵(key)構成排序樹從而達到排序和去重的效果, - Statement和PreparedStatement有什么區別?哪個性能更好?(6分)
答:與Statement相比,①PreparedStatement介面代表預編譯的陳述句,它主要的優勢在于可以減少SQL的編譯錯誤并增加SQL的安全性(減少SQL注射攻擊的可能性);②PreparedStatement中的SQL陳述句是可以帶引數的,避免了用字串連接拼接SQL陳述句的麻煩和不安全;③當批量處理SQL或頻繁執行相同的查詢時,PreparedStatement有明顯的性能上的優勢,由于資料庫可以將編譯優化后的SQL陳述句快取起來,下次執行相同結構的陳述句時就會很快(不用再次編譯和生成執行計劃), 補充:為了提供對存盤程序的呼叫,JDBC API中還提供了CallableStatement介面,存盤程序(Stored Procedure)是資料庫中一組為了完成特定功能的SQL陳述句的集合,經編譯后存盤在資料庫中,用戶通過指定存盤程序的名字并給出引數(如果該存盤程序帶有引數)來執行它,雖然呼叫存盤程序會在網路開銷、安全性、性能上獲得很多好處,但是存在如果底層資料庫發生遷移時就會有很多麻煩,因為每種資料庫的存盤程序在書寫上存在不少的差別 - 請求轉發和重定向的區別(6分)
答:
1、重定向是兩次請求,轉發是一次請求,因此轉發的速度要快于重定向
2、重定向之后地址欄上的地址會發生變化,變化成第二次請求的地址,轉發之后地址欄上的地址不會變化,還是第一次請求的地址
3、轉發是服務器行為,重定向是客戶端行為,重定向時瀏覽器上的網址改變 ,轉發是瀏覽器上的網址不變
4、重定向是兩次request,轉發只有一次請求
5、重定向時的網址可以是任何網址,轉發的網址必須是本站點的網址 - 撰寫方法給定引數a,b,c求一元二次方程式的跟 y=ax^2+bx+c (8分)
提示:△=b2-4ac的值,若△小于0,一元二次方程無根.若△等于0,一元二次方程有兩個相等的根.若△大于0,一元二次方程有兩個不相等的實數根(‘’表示平方)
答:
{
public static void main(String [] args){
Scanner sc = new Scanner(System.in);
System.out.println("輸入2次方的系數");
int a = sc.nextInt();
System.out.println("輸入1次方的系數");
int b = sc.nextInt();
System.out.println("輸入0次方的系數");
int c = sc.nextInt();
//判斷方程是否有解
if((b*b - 4*a*c)<0){
System.out.println("方程無解!");
return;
}
else{
System.out.println("方程有解!");
}
double x1 = (-b + Math.sqrt(b*b - 4*a*c))/2*a;
double x2 = (-b - Math.sqrt(b*b - 4*a*c))/2*a;
System.out.println("根分別是 " + x1 + "\t" + x2);
}
}
- 驗證“鬼谷猜想”:對任意自然數,若是奇數,就對它乘以 3 再加 1;若是偶數,就對它除以 2,這樣得到一個新數,再按上述計算規則進行計算,一直進行下去,最終必然得到 1. (8分)
答:
import java.util.Random;
/**
* @Author: 老張
* @Date: 2020/10/22 8:44
*/
public class Test {
public static void main(String[] args) {
/*
* 驗證“鬼谷猜想”:對任意自然數,若是奇數,
* 就對它乘以3再加1;若是 偶數,就對它除以2,
* 這樣得到一個新數,
* 再按上述計算規則進行計算,
* 一直進 行下去,最終必然得到1, */
int num;
Random rd=new Random();
//Integer.MAX_VALUE為最大的整數
num=1+rd.nextInt(Integer.MAX_VALUE);//產生數的范圍-2[31]----2[31]-1
//System.err.println(rd.nextInt(100));//產生數>=0且<100
System.out.println("原本的數為"+num);
while(num!=1){
System.out.println("產生的新數是"+num);
if(num%2==0){
//偶數
num=num/2;
}
else{
num=num*3+1;
}
}
System.out.println(num);
}
}

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/198711.html
標籤:AI
