- 《JAVA程序設(shè)計(jì)》期末考試試題 推薦度:
- 相關(guān)推薦
《JAVA程序設(shè)計(jì)》期末考試試題(精選3套)
在日復(fù)一日的學(xué)習(xí)、工作生活中,我們會經(jīng)常接觸并使用考試題,考試題可以幫助學(xué)校或各主辦方考察參試者某一方面的知識才能。大家知道什么樣的考試題才是規(guī)范的嗎?下面是小編整理的《JAVA程序設(shè)計(jì)》期末考試試題,歡迎閱讀與收藏。
《JAVA程序設(shè)計(jì)》期末考試試題 1
一、 單選題
1、下列程序段執(zhí)行后的結(jié)果是( )。
String s = new String("abcdefg");
for (int i=0; i
System.out.print(s.charAt(i));
}
A) aceg B) ACEG C) abcdefg D) abcd
2、有整型數(shù)組:int[] x={12,35,8,7,2};,則調(diào)用方法Arrays.sort(x)后,數(shù)組x中的元素值依次是( ).
A) 2 7 8 12 35 B) 12 35 8 7 2
C) 35 12 8 7 2 D) 8 7 12 35 2
3、下面的程序段創(chuàng)建了BufferedReader類的對象in,以便讀取本機(jī)c盤my文件夾下的文件1.txt。File構(gòu)造函數(shù)中正確的路徑和文件名的表示是( )。
File f = new File(填代碼處);
file =new FileReader(f);
in=new BufferedReader(file);
A) "./1.txt" B) "../my/1.txt" C) "c:\\my\\1.txt" D) "c:\ my\1.txt"
4、應(yīng)用程序的main方法中有以下語句,則輸出的結(jié)果是 ( )。
String s1=new String("abc");
String s2=new String("abc");
boolean b1=s1.equals(s2);
boolean b2=(s1==s2);
System.out.print(b1+" "+b2);
A)true false B) false true C) true true D)false false
5、應(yīng)用程序的main方法中有以下語句,則輸出的結(jié)果是 ( )。
Hashtable hashtable=new Hashtable();
hashtable.put("x","12345");
hashtable.put("y","67890");
hashtable.put("a","abcde");
System.out.println(hashtable.get("a"));
A) a B) abcde C) 12345 D) 67890
6、下面語句的功能是( )。
RandomAccessFile raf2 = newRandomAccessFile("1.txt","rw" );
A)打開當(dāng)前目錄下的文件1.txt,既可以向文件寫數(shù)據(jù),也可以從文件讀數(shù)據(jù)。
B)打開當(dāng)前目錄下的文件1.txt,但只能向文件寫入數(shù)據(jù),不能從文件讀取數(shù)據(jù)。
C)打開當(dāng)前目錄下的文件1.txt,但不能向文件寫入數(shù)據(jù),只能從文件讀取數(shù)據(jù)。
D) 以上說法都不對。
7、應(yīng)用程序的main方法中有以下語句,則輸出的結(jié)果是 ( )。
String s="12345#aaa#bbb#67890";
int n=s.indexOf("#");
int k=s.indexOf("#",n+1);
int m=s.indexOf("#",k+1);
String s2=s.substring(m+1);
System.out.println(s2);
A) 123456 B) 67890 C) aaa D) bbb
8、下面程序段執(zhí)行后b的值是( )。
Integerinteg =new Integer(9);
boolean b = integ instanceof Object;
A) 9 B) true C) 1 D) false
9、應(yīng)用程序Test.java的源程序如下,在命令行鍵入:
java Test aaa bb c
回車后輸出的結(jié)果是 ( )。
public class Test {
publicstatic void main(String args[]) {
int k1=args.length;
int k2=args[1].length();
System.out.print(k1+" "+k2);
}
}
A) 3 2 B)1 2 C) 1 3 D)3 3
10、應(yīng)用程序的main方法中有以下語句,則輸出的結(jié)果是 ( )。
int b[][]={{1}, {2,2}, {2,2,2}};
int sum=0;
for(int i=0;i
for(int j=0;j
sum*=b[i][j];
}
}
System.out.println("sum="+sum);
A) 32 B)11 C) 2 D) 3
11、應(yīng)用程序的main方法中有以下語句,則執(zhí)行后輸出的結(jié)果是 ( )。
int[] x={125,21,5,168,98};
int max=x[0];
for(int i=1;i
if(x[i]>max)
max=x[i];
}
System.out.println(max);
A) 125 B) 5 C) 98 D) 168
12、程序Test.java編譯運(yùn)行后輸出的結(jié)果是( )。
public class Test {
Strings1="java";
publicstatic void main(String args[]) {
intz=2;
Testt=new Test();
System.out.println(t.s1+z);
}
}
A) java2 B)2 C)沒有輸出結(jié)果 D)java
13、應(yīng)用程序的main方法中有以下語句,則輸出的結(jié)果是 ( )。
Strings1="0.5", s2="12";
double x=Double.parseDouble(s1);
int y=Integer.parseInt(s2);
System.out.println(x+y);
A) 12.5 B) 120.5 C)12 D) “12.5”
14、下面的程序創(chuàng)建了一個(gè)文件輸出流對象,用來向文件test.txt中輸出數(shù)據(jù),假設(shè)程序當(dāng)前目錄下不存在文件test.txt,編譯下面的程序Test.java后,將該程序運(yùn)行3次,則文件test.txt 的內(nèi)容是( )。
import java.io.*;
public class Test {
publicstatic void main(String args[]) {
try{
Strings="ABCDE";
byteb[]=s.getBytes();
FileOutputStreamfile=new FileOutputStream("test.txt",true);
file.write(b);
file.close();
}
catch(IOExceptione) {
System.out.println(e.toString());
}
}
}
A) ABCABC B) ABCDE C) Test D) ABCDE ABCDE ABCDE
15、下面那些方法不是接口Collection中已聲明的方法( )?
A)添加元素的add(Object obj) 方法
B)刪除元素的remove(Objectobj)方法
C)得到元素個(gè)數(shù)的length()方法
D)返回迭代器的iterator()方法,迭代器用于元素遍歷
二、多選題
1、下面main()方法的定義哪些是正確的( )?
A) publicstatic void main(String args[]) {} B) publicstatic void main(String[]) {}
C) publicstatic void main(String[] args) {} D)publicstatic void main(String [] x) {}
2、線程對象的生命周期中,通常經(jīng)歷下面哪些狀態(tài)( )。
A)新建 B)運(yùn)行 C)就緒 D)死亡
3、下面說法正確的是( )。
A) final 可修飾類、屬性(變量)、方法。
B) abstract可修飾類、方法。
C) 抽象方法只有方法頭,沒有方法體。
D) 關(guān)鍵字final和abstract不能同時(shí)使用。
4、下面關(guān)于java中輸入/輸出流的說法正確的是( )。
A) FileInputStream與FileOutputStream類用讀、寫字節(jié)流。
B) Reader與Writer類用來讀、寫字符流。
C) RandomAccessFile既可以用來讀文件,也可以用來寫文件。
D) File類用來處理與文件相關(guān)的操作。
5、下面說法正確的是( )。
A)如果某公共接口被聲明在一個(gè)源文件中,則接口必須與源文件具有相同名字。
B)如果源文件包含import語句,則該語句必須是除空行和注釋行外的第一個(gè)語句行。
C)如果某源文件包含package語句,則該語句必須是第一個(gè)非空、非注釋行。
D)接口中的方法必定是抽象方法,但可以不用關(guān)鍵字abstract修飾。
6、下面關(guān)于Java中異常處理try塊的說法正確的是( )?
A) try塊后通常應(yīng)有一個(gè)catch 塊,用來處理try塊中拋出的異常。
B) catch 塊后必須有finally塊。
C)可能拋出異常的.方法調(diào)用應(yīng)放在try塊中。
D)對拋出的異常的處理必須放在try塊中
7、下面關(guān)于進(jìn)程、線程的說法正確的是( )。
A)進(jìn)程是程序的一次動(dòng)態(tài)執(zhí)行過程。一個(gè)進(jìn)程在其執(zhí)行過程中,可以產(chǎn)生多個(gè)線程——多線程,形成多條執(zhí)行線索。
B)線程是比進(jìn)程更小的執(zhí)行單位,是在一個(gè)進(jìn)程中獨(dú)立的控制流,即程序內(nèi)部的控制流。線程本身不能自動(dòng)運(yùn)行,棲身于某個(gè)進(jìn)程之中,由進(jìn)程啟動(dòng)執(zhí)行。
C)Java多線程的運(yùn)行與平臺相關(guān)。
D)對于單處理器系統(tǒng),多個(gè)線程分時(shí)間片獲取CPU或其他系統(tǒng)資源來運(yùn)行。對于多處理器系統(tǒng),線程可以分配到多個(gè)處理器中,從而真正的并發(fā)執(zhí)行多任務(wù)。
8、關(guān)于BufferedReader類的readLine()方法,以下說法正確的是()。
A)方法readLine()每次讀取一行數(shù)據(jù)。
B)方法readLine()每次讀取一個(gè)字節(jié)。
C)該方法可能拋出IOException異常,調(diào)用該方法時(shí)通常應(yīng)將它放到try塊中,并通過catch塊處理異常。
D)如果讀到流的末尾,該方法返回的結(jié)果為null。
三、程序閱讀題
1、閱讀下面的程序,回答問題(u問3分,v問3分,共6分)。
import java.awt.*;
import javax.swing.*;
public class T extends JFrame {
public T ( ) {
super("GridLayout");
Container con=this.getContentPane();
con.setLayout(new GridLayout(2,3));
con.add(new JButton("a"));
con.add(new JButton("b"));
con.add(new JButton("c"));
con.add(new JButton("d"));
con.add(new JButton("e"));
con.add(new JButton("f"));
setSize(200, 80);
setVisible(true);
}
public static void main(String args[]) {
new T();
}
}
u畫圖表示程序運(yùn)行后的圖形界面。
v如果程序通過實(shí)現(xiàn)某個(gè)接口處理按鈕的動(dòng)作事件,則該接口名為何?接口中的方法頭聲明如何?
答案:
u
v接口名:ActionListener
接口中的方法:publicvoid actionPerformed(ActionEvent e)
2、閱讀下面的程序,回答問題(u問3分,v問3分,共6分)。
import java.util.*;
publicclass T {
public static void main(Stringargs[]) {
Set set = new TreeSet();
set.add(new Integer(10));
set.add(new Integer(5));
set.add(new Integer(15));
set.add(new Integer(5));
set.add(new Integer(10));
System.out.println("size =" + set.size());
Iterator it=set.iterator();
while(it.hasNext()){
System.out.print(it.next()+" ");
}
}
}
u程序運(yùn)行后輸出的結(jié)果如何?
v說明java中的集合(Set接口)和映射(Map接口)的主要區(qū)別。
答案:
u
size = 3
5 10 15
vSet接口是不包含重復(fù)元素的集合;Map接口將鍵映射到值,鍵可以重復(fù),但每個(gè)鍵最多只能映射一個(gè)值。
3、閱讀下面的程序,并回答問題(u問3分,v問3分,共6分)。
import java.io.*;
public class Test {
public static void main(String args[]) throws IOException {
BufferedReader buf=new BufferedReader(
newInputStreamReader(System.in));
while(true) {
String str=buf.readLine();
if(str.equals("quit"))
break;
int x=Integer.parseInt(str);
System.out.println(x*x);
}
}
}
編譯運(yùn)行上面的程序:
u從鍵盤輸入5,回車后輸出的結(jié)果如何?
v從鍵盤輸入quit,回車后程序執(zhí)行情況如何?
答案:
u25
v終止應(yīng)用程序的運(yùn)行。
《JAVA程序設(shè)計(jì)》期末考試試題 2
1). applet的運(yùn)行過程要經(jīng)歷4個(gè)步驟,其中哪個(gè)不是運(yùn)行步驟?
A.瀏覽器加載指定URL中的HTML文件
B.瀏覽器顯示HTML文件
C.瀏覽器加載HTML文件中指定的applet類
D.瀏覽器中的Java運(yùn)行環(huán)境運(yùn)行該applet
正確答案:B
2). 二維數(shù)組A[O,…,8][0,…,9],其每個(gè)元素占2字節(jié)。從首地址400開始,按行優(yōu)先順序存儲,則元素A[8][5]的存儲地址為( )。
A.570
B.506
C.410
D.482
正確答案:A
答案解析:A[8][5]元素存儲的位置在第9行第6列,所以A[8][5]之前存儲的個(gè)數(shù)應(yīng)為8×10+5 = 85,這些元素占用的空間為85×2字節(jié)=170字節(jié),所以A[8][5]的存儲位置為400+170= 570。
3). 用于生產(chǎn)過程控制的系統(tǒng),一般都是( ),它要求有對輸入數(shù)據(jù)及時(shí)做出響應(yīng)的.能力。
A.批處理系統(tǒng)
B.分時(shí)系統(tǒng)
C.實(shí)時(shí)系統(tǒng)
D.及時(shí)系統(tǒng)
正確答案:C
答案解析:用于生產(chǎn)過程控制的系統(tǒng),一般都是實(shí)時(shí)系統(tǒng),它要求有對輸入數(shù)據(jù)及時(shí)做出反應(yīng)(響應(yīng))的能力。由于環(huán)境和控制對象以及工作任務(wù)的不同,控制系統(tǒng)對計(jì)算機(jī)系統(tǒng)的要求也會不同,一般會對計(jì)算機(jī)系統(tǒng)的可靠性、封閉性、抗干擾性等指標(biāo)提出要求。
4). Java語言的許多特點(diǎn)中,下列哪個(gè)特點(diǎn)是C++語言所不具備的?
A.高性能
B.跨平臺
C.面向?qū)ο?/p>
D.有類庫
正確答案:B
5). 在匹配器(Matcher)類中,用于尋找下一個(gè)模式匹配串的方法是( )。
A.static boolean matches()
B.boolean matcher .fi nd()
C.i nt matcher .start()
D.i nt matcher .end()
正確答案:A
答案解析:本題考查考生對Java 中的匹配器(Matcher)類的理解。Matcher 類用于將一個(gè)輸入字符串i nput 和模式串pattern 相比較。Boolean matcher .fi nd()方法用于尋找下一個(gè)模式匹配串;i nt matcher .start()方法用于返回匹配串的一個(gè)起始索引整數(shù)值;i nt matcher .end()方法用于返回匹配串的一個(gè)終止索引整數(shù)值。而用于輸入字符串與模式串比較的方法是static boolean matches(),選項(xiàng)A 正確。
6). J2EE和( )語言綁定。
A.C
B.C++
C.Java
D.匯編語言
正確答案:C
答案解析:J2EE的基礎(chǔ)是J2SE,以Java為平臺;而C語言用于ODBCAPI。由于兩者不兼容,SUN公司才提出了JDBC作為Java幾個(gè)平臺與麴據(jù)庫的標(biāo)準(zhǔn)連接。
7). 下列關(guān)于結(jié)構(gòu)化設(shè)計(jì)原則的描述,錯(cuò)誤的是
A.在塊和進(jìn)程的非正常出口處往往需要調(diào)用GOTO語句,使用GOTO語句使程序執(zhí)行效率提高,但是濫用GOTO語句確實(shí)有害,應(yīng)該避免使用GOTO語句。
B.程序設(shè)計(jì)時(shí)應(yīng)該自頂向下,逐步求精。
C.程序設(shè)計(jì)時(shí),應(yīng)該將復(fù)雜問題進(jìn)行模塊化,就是將程序設(shè)計(jì)的總目標(biāo)分解為若干個(gè)分目標(biāo),再進(jìn)一步分解為具體的小目標(biāo)。
D.在進(jìn)行程序設(shè)計(jì)時(shí),應(yīng)該盡量在一行書寫一條語句,盡量做到效率第一,清晰第二。
正確答案:D
8). 如果線程調(diào)用下列方法,不能保證使該線程停止運(yùn)行的是( )。
A.sleep()
B.stop()
C.yield()
D.wait()
正確答案:C
答案解析:線程的方法中sleep()方法的作用是使比當(dāng)前線程優(yōu)先級低的線程運(yùn)行。該方法使一個(gè)線程暫停運(yùn)行一段固定時(shí)間。在休眠時(shí)間內(nèi),線程將不運(yùn)行,低優(yōu)先級的線程將有機(jī)會運(yùn)行。yield()方法為只讓給同等優(yōu)先級的線程運(yùn)行。如果沒有同等優(yōu)先級的線程是可運(yùn)行狀態(tài),yield()方法將什么也不做,即線程將繼續(xù)運(yùn)行。stop()方法是強(qiáng)行終止線程。wait()方法是線程間交互的方法,是使一個(gè)線程停止運(yùn)行,進(jìn)入等待狀態(tài)。
9). 開發(fā)軟件時(shí)對提高開發(fā)人員工作效率至關(guān)重要的是( )。
A.操作系統(tǒng)的資源管理功能
B.先進(jìn)的軟件開發(fā)工具和環(huán)境
C.程序員的數(shù)量
D.計(jì)算機(jī)的并行處理能力
正確答案:B
答案解析:先進(jìn)的軟件開發(fā)工具和環(huán)境對提高開發(fā)人員工作效率是至關(guān)重要的。
10). 信息隱蔽的概念與下述哪一種概念直接相關(guān)( )。
A.軟件結(jié)構(gòu)定義
B.模塊獨(dú)立性
C.模塊類型劃分
D.模擬耦合度
正確答案:B
答案解析:信息隱蔽的概念與模塊獨(dú)立性這一概念直接相關(guān)。
《JAVA程序設(shè)計(jì)》期末考試試題 3
選擇題
1). 下面( )是合法的標(biāo)識符。
A.$persons
B.2Users
C.*poi nt
D.this
正確答案:A
答案解析:本題考查Java 標(biāo)識符的命名,屬于考試重點(diǎn)內(nèi)容,應(yīng)該掌握。Java 中標(biāo)識符的命名規(guī)則是:標(biāo)識符以字母、下畫線或美元符作為首字符的字符串序列;標(biāo)識符是區(qū)分大小寫的;標(biāo)識符的字符數(shù)沒有限制。由此可見,Java 中標(biāo)識符不能以數(shù)字開頭,所以選項(xiàng)B錯(cuò)誤;不能以“*”開頭,選項(xiàng)C錯(cuò)誤;this 是專用標(biāo)識符,具有專門的意義和用途,選項(xiàng)D 錯(cuò)誤,只有選項(xiàng)A 正確。
2). 設(shè)有一個(gè)已按各元素的值排好序的順序表(長度大于2),現(xiàn)分別用順序查找法和二分查找法查找與給定值k相等的元素,比較的次數(shù)分別是s和b,在查找不成功情況下s和b的關(guān)系是( )。
A.s =b
B.s>b
C.s
D.s>=b
正確答案:B
答案解析:順序查找的基本思想是:從表的一端開始,順序掃描線性表,依次將掃描到結(jié)點(diǎn)的關(guān)鍵字和給定值k進(jìn)行比較,若當(dāng)前掃描到結(jié)點(diǎn)的關(guān)鍵字與k相等,則查找成功;若掃描結(jié)束后,仍未找到關(guān)鍵字等于k的結(jié)點(diǎn),則查找失敗。二分查找法是一種效率較高的查找方法,要求線性表是有序表;舅枷胧牵菏紫葘⒋榈膋值和有序表R[O]~R[n -1]的中間位置mid上的結(jié)點(diǎn)的關(guān)鍵字進(jìn)行比較,若相等,則查找完成;否則,若R[mi d]. key>k,則說明待查找的結(jié)點(diǎn)只可能在左子表R[O]~R[mi d -1]中,我們只需在左子表中繼續(xù)進(jìn)行折半查找,若R[mi d]. key
3). 定義一個(gè)表示10個(gè)值為null的字符串?dāng)?shù)組,下面選項(xiàng)正確的是( )。
A.String []a;
B.String a[];
C.char a[10][];
D.String a[]=new String[10];
正確答案:D
答案解析:本題考查字符串?dāng)?shù)組變量的聲明。選項(xiàng)A和選項(xiàng)B的效果是一樣的,都是用來定義一個(gè)字符串?dāng)?shù)組,但沒有指明數(shù)組個(gè)數(shù),不滿足題目要求;選項(xiàng)C是一個(gè)二維的字符數(shù)組,在C語言中,一個(gè)二維的字符數(shù)組就可以表示一個(gè)一維的字符串?dāng)?shù)組,而在Java中,字符char是基本類型,字符串String則是以對象的形式來表示的;選項(xiàng)D正確,它定義了一個(gè)含有10個(gè)元素的字符串?dāng)?shù)組,如果沒有給字符串?dāng)?shù)組賦值,則默認(rèn)為null。
4). Thread類中能運(yùn)行線程的方法是( )。
A.resume()
B.start()
C.run()
D.init()
正確答案:C
答案解析:resume()是Thread類提供的用于線程控制的方法;start()是Thread類中的.方法,新建的線程不會自動(dòng)運(yùn)行,必須調(diào)用線程的start()方法才能運(yùn)行該線程;run()是Thread類中的方法,在該方法中定義了線程的具體行為,線程開始執(zhí)行時(shí),就是從它的run()方法開始執(zhí)行的,就像Java應(yīng)用程序從main()開始、Applet從init()開始一樣;init()不是Thread類中的方法。
5). 在面向?qū)ο蟮姆椒ㄖ,一個(gè)對象請求另一個(gè)對象為其服務(wù)的方式是通過發(fā)送
A.調(diào)用語句
B.命令
C.口令
D.消息
正確答案:D
6). 下列的( )原始類型在使用流時(shí)可以互換。
A.byte和boolean
B.char和int
C.byte和char
D.String和char
正確答案:B
答案解析:本題考查Java語言中字節(jié)類型的概念。在Java語言中,byte是字節(jié)類型,用1字節(jié)表示.boolean是布爾類型,用true和false表示,它們的表示方法并不一樣,也不提供它們之間的轉(zhuǎn)換,選項(xiàng)A錯(cuò)誤。Java內(nèi)部用整數(shù)來表示char,通?梢栽诜椒ㄕ{(diào)用和其他語句中互換使用char和int,選項(xiàng)B正確。char用2字節(jié)表示,byte字節(jié)類型用l字節(jié)表示,Java內(nèi)部也不允許互換使用它們,選項(xiàng)C錯(cuò)誤。String在Java語言中是一個(gè)類,它提供對字符串的一系列操作,而char是Java語言中的一個(gè)基本類型,它不是一個(gè)類,兩者有本質(zhì)的區(qū)別,故而它們是不能互換使用的,選項(xiàng)D錯(cuò)誤。需要注意的是,在Java語言中提供的類都是以大寫字母開頭,基本類型都用小寫字母表示。
7). 下列說法中,不屬于數(shù)據(jù)模型所描述的內(nèi)容是( )。
A.數(shù)據(jù)結(jié)構(gòu)
B.數(shù)據(jù)操作
C.數(shù)據(jù)查詢
D.數(shù)據(jù)約束
正確答案:C
答案解析:數(shù)據(jù)模型所描述的內(nèi)容包括三個(gè)部分
【《JAVA程序設(shè)計(jì)》期末考試試題】相關(guān)文章:
2016年《JAVA程序設(shè)計(jì)》期末考試試題09-06
sun認(rèn)證:java程序設(shè)計(jì)考試試題07-10
2017年java期末考試試題09-18
2016年java期末考試試題及答案10-08
計(jì)算機(jī)二級Java語言程序設(shè)計(jì)試題07-17
java試題及答案10-10
2017java期末考試參考試題07-29