久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

自考Java語言程序設(shè)計(jì)(一)課后習(xí)題及答案

時(shí)間:2019-05-14 02:10:14下載本文作者:會(huì)員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《自考Java語言程序設(shè)計(jì)(一)課后習(xí)題及答案》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《自考Java語言程序設(shè)計(jì)(一)課后習(xí)題及答案》。

第一篇:自考Java語言程序設(shè)計(jì)(一)課后習(xí)題及答案

更多優(yōu)質(zhì)自考資料盡在百度貼吧自考樂園俱樂部

(http://tieba.baidu.com/club/5346389)歡迎?加入...歡迎?交流...止不住的驚喜等著你.........自考Java語言程序設(shè)計(jì)

(一)課后習(xí)題及答案

自考Java語言程序設(shè)計(jì)

(一)第一章Java語言概述課后習(xí)題

一、Java語言概述

1.Java語言有哪些特點(diǎn)?

2.什么叫做類?什么叫做對象?

3.簡述Java的運(yùn)行機(jī)制。

4.簡述Java應(yīng)用程序的開發(fā)流程。

5.當(dāng)初Sun公司發(fā)展Java的原因是:來源:www.tmdps.cnumber_1 =

new ComplexNumber(3,-5);

ComplexNumber cNumber_2 = 本文來源:考試大網(wǎng)

new ComplexNumber(2,2);

double d = 10.0;

System.out.println(cNumber_1.toString()+ “ 加 ”

+ cNumber_2.toString()+ “ 等于 ”

+ cNumber_1.complexAdd(cNumber_2).toString());

System.out.println(cNumber_1.toString()+ “ 加 ”

+ d + “ 等于 ”

+ cNumber_1.complexAdd(d).toString());

System.out.println(cNumber_1.toString()+ “ 減 ”

+ cNumber_2.toString()+ “ 等于 ”

更多優(yōu)質(zhì)自考資料盡在百度貼吧自考樂園俱樂部

(http://tieba.baidu.com/club/5346389)歡迎?加入...歡迎?交流...止不住的驚喜等著你.........+ cNumber_1.complexMinus(cNumber_2).toString());System.out.println(cNumber_1.toString()+ “ 減 ” + d + “ 等于 ” + cNumber_1.complexMinus(d).toString());System.out.println(cNumber_1.toString()+ “ 乘 ” + cNumber_2.toString()+ “ 等于 ” + cNumber_1.complexMulti(cNumber_2).toString());System.out.println(cNumber_1.toString()+ “ 乘 ” + d + “ 等于 ” + cNumber_1.complexMulti(d).toString());} } class ComplexNumber { //域

private double m_dRealPart;private double m_dImaginPart;//構(gòu)造方法

ComplexNumber(){ m_dRealPart = 0.0;m_dImaginPart = 0.0;} ComplexNumber(double r,double i){ m_dRealPart = r;m_dImaginPart = i;} ComplexNumber(ComplexNumber c){ m_dRealPart = c.getRealPart();m_dImaginPart = c.getImaginaryPart();} //get,set方法

double getRealPart(){ return m_dRealPart;} double getImaginaryPart(){ return m_dImaginPart;} void setRealPart(double d){

更多優(yōu)質(zhì)自考資料盡在百度貼吧自考樂園俱樂部

(http://tieba.baidu.com/club/5346389)歡迎?加入...歡迎?交流...止不住的驚喜等著你.........m_dRealPart = d;} void setImaginaryPart(double d){ m_dImaginPart = d;} //復(fù)數(shù)運(yùn)算方法

ComplexNumber complexAdd(ComplexNumber c){ return new ComplexNumber(this.m_dRealPart + c.getRealPart(), this.m_dImaginPart + c.getImaginaryPart());} ComplexNumber complexAdd(double c){ return new ComplexNumber(this.m_dRealPart + c, this.m_dImaginPart);} ComplexNumber complexMinus(ComplexNumber c){ return new ComplexNumber(this.m_dRealPartc.getImaginaryPart());} ComplexNumber complexMinus(double c){來源:www.tmdps.cn return new ComplexNumber(this.m_dRealPart-c, this.m_dImaginPart);} ComplexNumber complexMulti(ComplexNumber c){ return new ComplexNumber(this.m_dRealPart * c.getRealPart()

-this.m_dImaginPart * c.getImaginaryPart(), this.m_dRealPart * c.getImaginaryPart()+ this.m_dImaginPart * c.getRealPart());} ComplexNumber complexMulti(double c){ return new ComplexNumber(this.m_dRealPart * c, this.m_dImaginPart * c);} //toString()public String toString()

更多優(yōu)質(zhì)自考資料盡在百度貼吧自考樂園俱樂部

(http://tieba.baidu.com/club/5346389)歡迎?加入...歡迎?交流...止不住的驚喜等著你.........{

return “(” + m_dRealPart + “ + ”

+ m_dImaginPart + “ i” + “)”;

}

}

8.答:接口是用來實(shí)現(xiàn)類間多重繼承功能的結(jié)構(gòu)。接口與類相似,但是接口中只能包括常量和抽象方法。定義接口相當(dāng)于定義了一組抽象的功能、屬性集合,可以使了ava程序的類層次結(jié)構(gòu)更加合理,并實(shí)現(xiàn)多重繼承。

9.答:使用關(guān)鍵字implements可以定義類實(shí)現(xiàn)某接口。實(shí)現(xiàn)某接口的類如果不是抽象類,則需要通過重載來實(shí)現(xiàn)該接口中的所有抽象方法;如果這個(gè)類是抽象類,則它可以不必實(shí)現(xiàn)該接口中的所有抽象方法。

10.答:接口可以被繼承。

SubInterface中的抽象方法有:public abstract int supMethod();和public abstract string subMethod();兩個(gè)。

自考Java語言程序設(shè)計(jì)

(一)第七章Java常用類庫介紹課后習(xí)題

七、Java 常用類庫介紹

1.指出下列陳述是對還是錯(cuò),并做出解釋。

(1)當(dāng)String對象用= = 比較時(shí),如果String包括相同的值則結(jié)果為true。

(2)一個(gè)String類的對象在其創(chuàng)建后可被修改。

2.對于下列描述,各寫出一條語句完成要求的任務(wù)

(1)比較s1中的串和s2中的串的內(nèi)容的相等性;

(2)用+=向串s1附加串;

(3)判斷s1中串的長度;來源:考試大

3.說明capacity()與length()用法上的差異?

4.如果ch為StringBuffer對象,ch=“Java Apple”,下列結(jié)果為何?

(1)ch.insert(3,’p’)(2)ch.append(“Basic”)

(3)ch.setlength(5)(4)ch.reverse()

5.Math類中提供用來常數(shù)π和e的靜態(tài)屬性分別是什么?

6.下面關(guān)于Vector類的說法正確的是()

(1)類Vector在java.util包中。

(2)一個(gè)向量(Vector)對象存放的是一組有序的對象。

(3)一個(gè)向量(Vector)對象大小可以根據(jù)存放的元素個(gè)數(shù)的增加而自動(dòng)增加。

(4)一個(gè)向量(Vector)對象中每個(gè)元素可以是不同類型的對象。

7.有三個(gè)字符串,編寫程序找出其中最大者。

8.編寫一個(gè)程序,設(shè)定一個(gè)有大小寫字母的字符串,先將字符串的大寫字符輸出,再將字符串中的小寫字符輸出。

9.設(shè)定5個(gè)字符串,要求只打印那些以字母“b”開頭的串,編寫程序完成。

10.設(shè)定一個(gè)有大小寫字母的字符串和一個(gè)查找字符,使用類 String方法IndexOf()來判斷在該字符串中該字符出現(xiàn)的次數(shù)。

參考答案

更多優(yōu)質(zhì)自考資料盡在百度貼吧自考樂園俱樂部

(http://tieba.baidu.com/club/5346389)歡迎?加入...歡迎?交流...止不住的驚喜等著你.........1.答:

(1)錯(cuò)。用= =操作符比較String對象實(shí)際上是判斷它們在內(nèi)存中是否為同一對象,并不是判斷它們的值是否相同。

(2)錯(cuò)。String類的對象是常量。它們被創(chuàng)建后不可被修改。

2.答:

(1)s1.equals(s1,s2);

(2)s1+=s2;

(3)s1.length();

3.答:capacity()返回字符串對象的當(dāng)前緩沖區(qū)的長度,length()返回字符串對象字符的長度。考試大收集整理

4.答:

(1)結(jié)果:Javpa Applet

(2)結(jié)果:Javpa AppletBasic

(3)結(jié)果:ch長度變?yōu)?

(4)結(jié)果:apvaJ

5.答:PI、E

6.答:(3)

7.public class max1

{

public static void main(String args[])

{

String s1= “Hello Java”;

String s2= “Java Applet”;

String s3= “Java”;

String s;

if(s1.compareTo(s2)<0)

s=s2;

else s=s1;

if(s.compareTo(s3)<0)

s=s3;

Systrm.out.println(“big=”+s);

}

}

8.public class out

{

public static void main(String args[])

{

String s1= “Hello Java”;

StringBuffer bufup=new StringBuffer();

StringBuffer buflow=new StringBuffer();

for(int I=0;I

{if(s1.charAt(i)<97)

更多優(yōu)質(zhì)自考資料盡在百度貼吧自考樂園俱樂部

(http://tieba.baidu.com/club/5346389)歡迎?加入...歡迎?交流...止不住的驚喜等著你.........{bufup.append(s1.charAt(i));bufup.append(' ');} else { buflow.append(s1.charAt(i));buflow.append('');} } System.out.println(“s1= ”+s1);System.out.println(“ uppercase= ”+bufup);System.out.println(“ lowercase= ”+buflow);} } 9.

public class prin_b { public static void main(String args[]){ String s1=“hello”;String s2=“bee”;String s3=“java”;String s4=“brove”;String s5=“bag”;if(s1.indexOf('b')= =0)System.out.println(s1);if(s2.indexOf('b')= =0)System.out.println(s2);if(s3.indexOf('b')= =0)System.out.println(s3);if(s4.indexOf('b')= =0)System.out.println(s4);if(s5.indexOf('b')= =0)System.out.println(s5);} } 10.

public class ppp { public static void main(String args[]){ String s1=“abcdefghi”;int num=0;for(int i=0;i {i=s1.indexof('e',i);num++;

更多優(yōu)質(zhì)自考資料盡在百度貼吧自考樂園俱樂部

(http://tieba.baidu.com/club/5346389)歡迎?加入...歡迎?交流...止不住的驚喜等著你.........}

System.out.print(“ s1=”+s1+“e=”);

if(num= =0)

System.out.println(“ no found”);

else System.out.println(num);

}

}

自考Java語言程序設(shè)計(jì)

(一)第八章Java異常處理及輸入輸出流簡介課后習(xí)題

八、Java異常處理及輸入輸出流簡介

1.列出5個(gè)常見的異常。

2.寫出Java語言的異常處理機(jī)制的優(yōu)點(diǎn)。

3.為什么異常處理技術(shù)不應(yīng)該用于常規(guī)的程序控制?

4.引起異常產(chǎn)生的條件是什么?

5.異常沒有被捕獲將會(huì)發(fā)生什么?

6.編寫一個(gè)程序,以說明catch(Exception e)如何捕獲各種異常。

7.下面的代碼段中finally語句塊會(huì)被執(zhí)行嗎?

public class ExceptionExam3

{

public static void main(String [] args)

{

try

{

int [] a=new int[3];

System.exit(0);

}

catch(ArrayIndexOutOfBoundsException e)

{System.out.println(“發(fā)生了異常”);}

finally

{System.out.println(“Finally”);}

}

}

8.throws的作用是什么?

9.應(yīng)在程序的什么地方使用異常處理?

10.下面的代碼有什么錯(cuò)誤嗎?

class ExceptionExam{?}

throw new ExceptionExam();

11.異常類型匹配的處理方式。程序功能:首先輸出“這是一個(gè)異常處理的例子”,然后在你程序中主動(dòng)地產(chǎn)生一個(gè) ArithmeticException 類型被0 除而產(chǎn)生的異常,并用catch 語句捕獲這個(gè)異常。最后通過ArithmeticException類的對象e的方法getMessage 給出異常的具體類型并顯示出來。

12.根據(jù)所給創(chuàng)建自定義異常類的使用格式,編寫一個(gè)自定義異常的小程序。

更多優(yōu)質(zhì)自考資料盡在百度貼吧自考樂園俱樂部

(http://tieba.baidu.com/club/5346389)歡迎?加入...歡迎?交流...止不住的驚喜等著你.........13.什么叫流?流式輸入輸出有什么特點(diǎn)?

14.Java流被分為字節(jié)流、字符流兩大流類,兩者有什么區(qū)別?

15.File類有哪些構(gòu)造函數(shù)和常用方法?

16.利用文件輸入輸出流編寫一個(gè)實(shí)現(xiàn)文件拷貝的程序,源文件名和目標(biāo)文件名通過命令行參數(shù)傳入。

17.編寫一個(gè)程序,在當(dāng)前目錄下創(chuàng)建一個(gè)子目錄test,在這個(gè)新創(chuàng)建的子目錄下創(chuàng)建一個(gè)文件,并把這個(gè)文件設(shè)置成只讀。

18.位置指針的作用是什么?RandomAccessFile類提供了哪些方法實(shí)現(xiàn)對指針的控制?

19.編寫一個(gè)程序,從鍵盤輸入一串字符,統(tǒng)計(jì)這串字符中英文字母、數(shù)字、其他符號的字符數(shù)。

20.編寫一個(gè)程序,從鍵盤輸入一串字符,從屏幕輸出并將其存入a.txt文件中。采集者退散

21.編寫一個(gè)程序,從鍵盤輸入10個(gè)整數(shù),并將這些數(shù)據(jù)排序后在標(biāo)準(zhǔn)輸出上輸出。

參考答案

1.答:內(nèi)存耗盡、數(shù)組下標(biāo)超出邊界、被0除、非法的方法參數(shù)、算法溢出處。來源:考試大的美女編輯們

2.答:(1)Java通過面向?qū)ο蟮姆椒ㄟM(jìn)行異常處理,把各種異常事件進(jìn)行分類,體現(xiàn)了良好的層次性,提供了良好的接口,這種機(jī)制對于具有動(dòng)態(tài)特 性的復(fù)雜提供了強(qiáng)有力的控制方式。(2)Java的異常處理機(jī)制使得處理異常的代碼和“常規(guī)”代碼分開,減少了代碼的數(shù)量,增強(qiáng)了程序的可讀性。(3)Java的異常處理機(jī)制使得異常事件可以沿調(diào)用棧自動(dòng)向上傳播,而不是C語言中通過函數(shù)的返回值來傳播,這樣可以傳遞更多的信息,并且簡化了代碼的編寫。(4)由于把事件當(dāng)成事件處理,利用類的層次性我們可以把多個(gè)具有相同父類的異常統(tǒng)一處理,也可以區(qū)分不同的異常分別處理,使用非常靈活。

3.答:a.異常處理用于不經(jīng)常發(fā)生但通常導(dǎo)致程序終止的情況,因此要求編程人員為編譯器的優(yōu)化執(zhí)行實(shí)現(xiàn)異常處理。b.常規(guī)控制結(jié)構(gòu)的控制流程通常比異常的更為清晰、交流更高。c.在發(fā)生異常,并且沒有釋放異常發(fā)生之前分配的資源時(shí),堆棧是展開的,所以會(huì)出現(xiàn)一些問題。d.“額外的”異常會(huì)妨礙真正錯(cuò)誤類型的異常。這種使程序員更難 以跟蹤大量的異常。

4.答:異常產(chǎn)生的方式有3種。第一種是在某些內(nèi)部錯(cuò)誤時(shí),Java虛擬機(jī)可以產(chǎn)生異常,該異常不在你的程序控制范圍內(nèi),通常不作處理。第二種是由程序代碼中的錯(cuò)誤引起,這種異常需要你的程序處理。第三種是通過使用throw語句手動(dòng)生成的異常。

5.答:未捕獲的異常最終會(huì)導(dǎo)致程序非正常終止。

6.public class ExceptionExam

{

public static void main(String [] args)

{

try

{

int i=0;

i=3/i;//將產(chǎn)生算術(shù)異常。

}

catch(ArithmeticException e)//找到了匹配的異常,執(zhí)行該catch塊。

更多優(yōu)質(zhì)自考資料盡在百度貼吧自考樂園俱樂部

(http://tieba.baidu.com/club/5346389)歡迎?加入...歡迎?交流...止不住的驚喜等著你.........{

System.out.println(“發(fā)生了ArithmeticException異常”);

}

catch(AarryIndexOutOfBoundsException e)//不是匹配的異常,且不會(huì)再捕獲

//異常,如果發(fā)生數(shù)組索引超出范圍所產(chǎn)生的異常,將執(zhí)行該catch塊。

{

System.out.println(“發(fā)生了AarryIndexOutOfBoundsException異常”);

}

catch(Exception e)

//前兩個(gè)catch塊均無法捕獲try塊中發(fā)生的異常時(shí),才會(huì)執(zhí)行該catch塊。

{

System.out.println(“發(fā)生了異常”);

}

finally

{ System.out.println(“執(zhí)行d Finally”);}

}

}

7.答:無論是出于何種原因,只要執(zhí)行離開try/catch代碼塊,就會(huì)執(zhí)行finally代碼塊。即無論try是否正常結(jié)束,都會(huì)執(zhí)行 finally定義的最后的代碼。如果try代碼塊中的任何代碼或它的任何catch語句從方法返回,也會(huì)執(zhí)行finally代碼塊。但本題中在try代 碼塊中執(zhí)行了“System.exit(0);”語句,執(zhí)行了這一語句后,Java虛擬機(jī)(JVM)將被終止。那么finally語句塊一定不會(huì)被執(zhí)行。

8.答:在某些情況下,如果一個(gè)方法產(chǎn)生自己不處理或無法處理的異常,它就必須在throws子句中聲明該異常。

9.答:通常,可以采用兩種方式來報(bào)告錯(cuò)誤:返回值和異常。在Java中異常處理很常用,雖然返回錯(cuò)誤代碼在某些情況下是一種有效的方式,但是異常處理可以提供強(qiáng)大的結(jié)構(gòu)化方法來處理異常。所以需要處理代碼中的錯(cuò)誤時(shí)就可以采用異常的方法進(jìn)行處理。

10.答:ExceptionExam不是繼承(擴(kuò)展)Throwable的子類,只有Throwable的子類可以由throw拋出。所以,這一段代碼會(huì)出錯(cuò)。

11.public class ExceptionExam1

{

public static void main(String [] args)

{

try

{int i=0;

i=3/i;

}

catch(ArithmeticException e)

{

System.out.println(“異常是:”+e.getMessage());

}

finally

{

更多優(yōu)質(zhì)自考資料盡在百度貼吧自考樂園俱樂部

(http://tieba.baidu.com/club/5346389)歡迎?加入...歡迎?交流...止不住的驚喜等著你.........System.out.println(“finally 語句被執(zhí)行”);

}

}

}

注意:如果在catch 語句中聲明的異常類是Exception,catch 語句也能正確地捕獲,這是因?yàn)镋xception 是ArithmeticException 的父類。如果不能確定會(huì)發(fā)生哪種情況的異常,那么最好指定catch的參數(shù)為Exception,即說明異常的類型為Exception。

12.class Excp1 extends Exception

{}

class Excp2 extends Excp1

{}

public class ExceptionExam7

{

public static void main(String [] args)throws Exception

{

try

{

throw new Excp2();

}

catch(Excp2 e)

{

System.out.println(“catch1”);

throw new Excp1();

}

catch(Excp1 e)

{

System.out.println(“catch2”);

throw new Exception();

}

catch(Exception e)

{

System.out.println(“catch3”);

}

finally

{

System.out.println(“finally”);

}

}

}

說明:自定義異常類,關(guān)鍵是選擇繼承的超類——必須是Exception或者其子類。用異常代表錯(cuò)誤,而不要再使用方法返回值。

13.答:所謂流是指同一臺計(jì)算機(jī)或網(wǎng)絡(luò)中不同計(jì)算機(jī)之間有序運(yùn)動(dòng)著的數(shù)據(jù)序列,Java把這些不同來源和目標(biāo)的數(shù)據(jù)都統(tǒng)一抽象為數(shù)據(jù)流。數(shù)據(jù)流可分為輸入流和輸出流,輸

更多優(yōu)質(zhì)自考資料盡在百度貼吧自考樂園俱樂部

(http://tieba.baidu.com/club/5346389)歡迎?加入...歡迎?交流...止不住的驚喜等著你.........入流代表從其他設(shè)備流入計(jì)算機(jī)的數(shù)據(jù)序列,輸出流代表從計(jì)算機(jī)流向外部設(shè)備的數(shù)據(jù)序列。

流式輸入輸出的特點(diǎn)是數(shù)據(jù)的獲取和發(fā)送沿?cái)?shù)據(jù)序列的順序進(jìn)行,即每一個(gè)數(shù)據(jù)都必須等待排在它前面的數(shù)據(jù),等前面的數(shù)據(jù)讀入或送出之后才能被讀寫。所以流和隊(duì)列一樣,只能以“先進(jìn)先出”的方式對其中的數(shù)據(jù)進(jìn)行讀寫,而不能隨意選擇讀寫的位置。

14.答:兩者都作為Object類的直接子類,基本輸入流(無效Stream)和基本輸出流(OutputStream)是處理以8位字節(jié)為基本單位的字節(jié)流類;Reader和Writer類是專門處理16位字符流的類。

15.答:構(gòu)造函數(shù)有:

(1)public File(String pathname):創(chuàng)建一個(gè)對應(yīng)于參數(shù)pathname的File類對象。參數(shù)pathname是包含目錄和文件名的字符串。如果沒有文件名,則代表目錄。

(2)public File(String parent , String child):該構(gòu)造函數(shù)將pathname分成兩部分parent和child,參數(shù)parent表示目錄或文件所在路徑,參數(shù)child表示目錄或文件名稱。

(3)public File(File parent, String child):該構(gòu)造函數(shù)與上面一個(gè)不同在于將parent的參數(shù)類型由String變?yōu)镕ile,代表parent是一個(gè)已經(jīng)創(chuàng)建的File類文件對象(指向目錄)。

常用方法有:

(1)public boolean canWrite():返回文件是否可寫。

(2)public boolean canRead():返回文件是否可讀。

(3)public boolean createNewFile():當(dāng)文件不存在時(shí)創(chuàng)建文件。

16.import java.io.*;

class CopyFile{

public static void main(String[] args){

String file1,file2;

int ch = 0;

try {

file1=args[0];

file2=args[1];

File無效Stream fis = new File無效Stream(file1);

FileOutputStream fos=new FileOutputStream(file2);

while((ch=fis.read())!=-1)

fos.write(ch);

fis.close();

fos.close();

}

catch(FileNotFoundException e){

System.out.println(“源文件:未找到!”);

}catch(ArrayIndexOutOfBoundsException e){

System.out.println(“缺少運(yùn)行參數(shù)!”);

System.exit(-1);

}

catch(IOException e){

System.out.println(e.toString());

}

更多優(yōu)質(zhì)自考資料盡在百度貼吧自考樂園俱樂部

(http://tieba.baidu.com/club/5346389)歡迎?加入...歡迎?交流...止不住的驚喜等著你.........}

}

17.答:

import java.io.*;

public class NewFile{

public static void main(String args[]){

File f=new File(“test”);

if(f.exists()&&f.isDirectory())

System.err.println(“目錄:”+f.toString()+“已經(jīng)存在!”);

else{

if(f.mkdir()){

System.out.println(“目錄”+f.getAbsolutePath()+“創(chuàng)建結(jié)束!”);

File f2=new File(f,“my.txt”);

try{

f2.createNewFile();

f2.setReadOnly();

}catch(IOException e){

System.out.println(e.toString());

}

System.out.println(“文件:”+f2.getAbsoluteFile()+“創(chuàng)建結(jié)束!”);

}

else

System.out.println(“目錄”+f.getAbsoluteFile()+“創(chuàng)建失敗!”);

}

}

}

18.答:要實(shí)現(xiàn)對文件的隨機(jī)讀取,也就是在文件的任何位置執(zhí)行讀寫數(shù)據(jù)的操作,需要一個(gè)指針來指定讀寫的位置。在創(chuàng)建 RandomAccessFile類對象的同時(shí),系統(tǒng)自動(dòng)創(chuàng)建了一個(gè)指向這個(gè)文件開頭的指針,當(dāng)執(zhí)行讀寫操作后,指針自動(dòng)指向被讀寫數(shù)據(jù)之后的第一個(gè)字節(jié) 處。指針初始值是0,每讀/寫一個(gè)字節(jié),指針自動(dòng)增加1。RandomAccessFile類提供了一些控制指針移動(dòng)的方法。

public long getFilePointer();獲取當(dāng)前指針指向文件的位置。考試大論壇

pulbic void seek(long pos);將指針移動(dòng)到參數(shù)pos指定的位置。

public int skipBytes(int n);指針從當(dāng)前位置向后移動(dòng)n個(gè)字節(jié)位置,并返回指針實(shí)際移動(dòng)的字節(jié)數(shù)。

19.答:

import java.io.*;

public class Count{

public static void main(String[] args)

{

int x=0,y=0,z=0;

int ch;

try{

while((ch=System.in.read())!='r'){

更多優(yōu)質(zhì)自考資料盡在百度貼吧自考樂園俱樂部

(http://tieba.baidu.com/club/5346389)歡迎?加入...歡迎?交流...止不住的驚喜等著你.........if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z')x++;else if(ch>='0'&&ch<='9')y++;else z++;} }catch(IOException e){ System.out.println(e.toString());} System.out.println(“英文字母:”+x);System.out.println(“數(shù)字字符:”+y);System.out.println(“其它字符:”+z);} } 20.答:

import java.io.*;public class InFile{ public static void main(String[] args){ int ch;try{ FileOutputStream out=new FileOutputStream(“a.txt”);while((ch=System.in.read())!='r'){ System.out.write(ch);out.write(ch);} out.close();System.out.write('n');}catch(IOException e){ System.out.println(e.toString());} System.out.println(“輸出至文件完畢!”);} } 21.答:

import java.io.*;public class Sort{ public static void main(String args[]){ int a[]=new int[10];byte b[]=new byte[10];int t;String str;

更多優(yōu)質(zhì)自考資料盡在百度貼吧自考樂園俱樂部

(http://tieba.baidu.com/club/5346389)歡迎?加入...歡迎?交流...止不住的驚喜等著你.........System.out.println(“請輸入10個(gè)整數(shù):”);

try{

for(int i=0;i<10;i++)

{System.out.print(“No.”+(i+1)+“: ”);

System.in.read(b);

str=new String(b);

str=str.trim();

a[i]=Integer.parseInt(str);

}

}catch(IOException e){

System.out.println(e.toString());

}

catch(NumberFormatException e){

System.out.println(e.toString());

}

for(int i=0;i<9;i++)

for(int j=i+1;j<10;j++)

{

if(a[i]>a[j]){

t=a[i];

a[i]=a[j];

a[j]=t;

}

}

for(int i=0;i<10;i++)

System.out.println(a[i]+“t”);

}

}

自考Java語言程序設(shè)計(jì)

(一)第九章JavaApplet概述課后習(xí)題

九、Java Applet概述

1.下列方法中,哪一個(gè)不是Applet的基本方法()

A、init()B、run()C、stop()D、start()

2.在Java中判定Applet的來源的方法有()

A、getcodebase()B、get文檔base()

C、getCodeBase()D、get文檔Bade()

3.下面關(guān)于Applet的說法正確的是

A、Applet也需要main方法

B、Applet必須繼承自javawt.Applet

C、Applet能訪問本地文件

D、Applet程序不需要編譯

4.Applet類的直接父類是()

更多優(yōu)質(zhì)自考資料盡在百度貼吧自考樂園俱樂部

(http://tieba.baidu.com/club/5346389)歡迎?加入...歡迎?交流...止不住的驚喜等著你.........()

A.Component類

B.Container類

C.Frame類

D.Panel類

5.判斷:一個(gè)Applet編譯后的類名是Test.class,運(yùn)行此小程序的命令是Java Test。

6.編寫同時(shí)具有Applet與Application的特征的程序。具體方法是:作為Application要定義main()方法,并且把 main()方法所在的類定義一個(gè)類。為使該程序成為一個(gè)Applet,main()方法所在的這個(gè)類必須繼承Applet類或JApplet類。www.tmdps.cn/club/5346389)歡迎?加入...歡迎?交流...止不住的驚喜等著你.........A.FlowLayoutB.BorderLayout

C.GridLayoutD.CardLayout

10.編寫程序,創(chuàng)建下面的GUI(不必為各組件提供功能)。考試大收集整理

參考答案

1: false

2:true

3:true

4.true

5:版面管理器

6.圖形用戶界面

7.mouseReleased

8.C

9.B

10.import javawt.*;

public class Chp9_3_A extends Frame{

TextField t=new TextField();

String[] op={“7”,“8”,“9”,“/”,“4”,“5”,“6”,“*”,“1”,“2”,“3”,“-”,“0”,“.”,“=”,“+”};

Button[] btn=new Button[16];

Panel p=new Panel();

public Chp9_3_A(){

setLayout(new BorderLayout());

p.setLayout(new GridLayout(4,4));

for(int i=0;i

btn[i]=new Button(op[i]);

p.add(btn[i]);

}

add(t,BorderLayout.NORTH);

add(p,BorderLayout.CENTER);

setSize(400,300);

}

public static void main(String[] args){

new Chp9_3_A().setVisible(true);

}

}

自考Java語言程序設(shè)計(jì)

(一)第十二章課后習(xí)題

十二、常用組件之一________命令按鈕與標(biāo)簽框

1.判斷:標(biāo)簽是是一個(gè)容器。()

2.判斷:在Swing用戶界面的程序設(shè)計(jì)中,容器可以被添加到其它容器中去。()

3.用戶不能修改的文本稱為_______。

4.關(guān)于awt和swing說法正確的是:來源:考試大

更多優(yōu)質(zhì)自考資料盡在百度貼吧自考樂園俱樂部

(http://tieba.baidu.com/club/5346389)歡迎?加入...歡迎?交流...止不住的驚喜等著你.........A、awt在不同操作系統(tǒng)中顯示相同的風(fēng)格。B、swing在不同的操作系統(tǒng)中顯示相同的風(fēng)格 C、javawt的子類

D、awt和swing都支持事件模型

5.下列_________用戶圖形界面組件在軟件安裝程序中是常見的。a.滑塊

b.進(jìn)度條來源:考試大 c.對話框 d.標(biāo)簽

6.包含可單擊按鈕的類的Java類庫是__________。a.AWT b.Swing c.二者都有來源:www.tmdps.cn d.二者都沒有

7.下面的__________用戶界面組件不是容器。a.JScrollPane b.JFrame考試大-全國最大教育類網(wǎng)站(www.tmdps.cn)c.JWindows d.JScrollBar 8.創(chuàng)建下面的GUI,顏色列表框?yàn)榧t色、綠色和藍(lán)色(不必為各組件提供功能)。參考答案 1.false 2.true 3.標(biāo)簽 4.B D 5.B 6.C 7.D 8.參考程序如下: import javawt.*;public class Chp9_3_B extends Frame{ Choice ch;Checkbox bg,fg;Button btnOK,btnCancel;Panel p,p1,p2;public Chp9_3_B(){ p=new Panel();p.setLayout(new GridLayout(2,1));p1=new Panel();p2=new Panel();p1.setLayout(new FlowLayout());p2.setLayout(new FlowLayout());ch=new Choice();ch.add(“紅色”);

更多優(yōu)質(zhì)自考資料盡在百度貼吧自考樂園俱樂部

(http://tieba.baidu.com/club/5346389)歡迎?加入...歡迎?交流...止不住的驚喜等著你.........ch.add(“綠色”);ch.add(“藍(lán)色”);bg=new Checkbox(“背景”);fg=new Checkbox(“前景”);p1.add(bg);p1.add(fg);btnOK=new Button(“確定”);btnCancel=new Button(“取消”);p2.add(btnOK);p2.add(btnCancel);p.add(p1);p.add(p2);add(ch,BorderLayout.NORTH);add(p,BorderLayout.CENTER);setSize(400,300);} public static void main(String[] args){ new Chp9_3_B().setVisible(true);} }

自考Java語言程序設(shè)計(jì)

(一)第十三章課后習(xí)題

十三、常用組件之二 _______單行文本框與多行文本框,單選框和復(fù)選框

1.判斷:列表對象總包含滾動(dòng)條。()

2.判斷:面板的默認(rèn)管理器是BorderLayout。

3.____________類用于創(chuàng)建一組單選按鈕。來源:考試大

4.欲編寫如下圖的一個(gè)界面,用于顯示用戶指定的圖像: 如果在區(qū)域A中只能放置一個(gè)

AWT組件,從各組件的本來功能角度考慮,最好使用哪種組件:

A、TextArea

B、Panel

C、Applet

D、Canvas

5.Java應(yīng)用程序中的默認(rèn)外觀是_________。

A.Motif

B.Windows

C.METAl

6.創(chuàng)建下面的GUI,要求在文本框中輸入分?jǐn)?shù),單擊“求和”按鈕后在結(jié)果文本框中顯示總分。

7.編寫一個(gè)將華氏溫度轉(zhuǎn)換為攝氏溫度的程序。應(yīng)從鍵盤輸入華氏溫度,然后通

更多優(yōu)質(zhì)自考資料盡在百度貼吧自考樂園俱樂部

(http://tieba.baidu.com/club/5346389)歡迎?加入...歡迎?交流...止不住的驚喜等著你.........過文本顯示轉(zhuǎn)換后的攝氏溫度。使用下面的公式進(jìn)行溫度轉(zhuǎn)換:

攝氏溫度=5/9Χ(華氏溫度-32)

8.編寫一個(gè)程序,使用戶能夠使用鼠標(biāo)在applet中繪制一個(gè)矩形。按住鼠標(biāo)左鍵,確定矩形的左上角,然后拖動(dòng)鼠標(biāo),在需要的位置(即矩形右下角)釋放鼠標(biāo)。另外,在狀態(tài)欄中顯示矩形面積。

參考答案

1.false

2.true

3.CheckboxGroup

4.D

5. C

6.參考程序如下:

import javawt.*;來源:考試大

import javawt.event.*;

public class Chp9_3_C extends Frame implements ActionListener{

TextField textField1,textField2,textField3;

Button button1=new Button(“求和”);

Panel panel1,panel2;

public Chp9_3_C(){

textField1=new TextField();

textField2=new TextField();

textField3=new TextField();

panel1=new Panel();

panel2=new Panel();

panel1.setLayout(new GridLayout(3,2));

panel2.setLayout(new FlowLayout());

panel1.add(new Label(“數(shù)學(xué): ”));

panel1.add(textField1);

panel1.add(new Label(“英語: ”));

panel1.add(textField2);

panel1.add(new Label(“總分: ”));

panel1.add(textField3);

panel2.add(button1);

add(panel1,BorderLayout.CENTER);

add(panel2,BorderLayout.SOUTH);

button1.addActionListener(this);

setSize(300,200);

setVisible(true);

}

public static void main(String[] args){

new Chp9_3_C();

}

public void actionPerformed(ActionEvent e){

int n1,n2,sum;

更多優(yōu)質(zhì)自考資料盡在百度貼吧自考樂園俱樂部

(http://tieba.baidu.com/club/5346389)歡迎?加入...歡迎?交流...止不住的驚喜等著你.........n1=Integer.parseInt(textField1.getText());n2=Integer.parseInt(textField2.getText());sum=n1+n2;textField3.setText(“"+sum);} } 6.參考程序如下: import javawt.*;import javawt.event.*;public class Chp9_3_D extends Frame{ TextField textField1,textField2;Button button1;public Chp9_3_D(){ textField1=new TextField(30);textField2=new TextField(30);button1=new Button(”轉(zhuǎn)換“);setLayout(new FlowLayout());add(new Label(”華氏溫度:“));add(textField1);add(new Label(”攝氏溫度:“));add(textField2);textField2.setEditable(false);add(button1);setSize(400,300);pack();button1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ button1_actionPerformed(e);} });addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0);} });} public static void main(String[] args){ new Chp9_3_D().setVisible(true);} private void button1_actionPerformed(ActionEvent e){ double d=Double.parseDouble(textField1.getText());double h=5.0/9.0*(d-32);textField2.setText(”“+h);}

更多優(yōu)質(zhì)自考資料盡在百度貼吧自考樂園俱樂部

(http://tieba.baidu.com/club/5346389)歡迎?加入...歡迎?交流...止不住的驚喜等著你.........}

7.參考程序如下:

import javapplet.Applet;

import javawt.*;

import javawt.event.*;

public class Chp9_3_E MouseListener,MouseMotionListener{

int x1,y1,x2,y2;

public void init(){

addMouseListener(this);

addMouseMotionListener(this);

}

public void paint(Graphics g){

g.drawRect(x1,y1,x2,y2);

int area=Math.abs(x2-x1)*Math.abs(y2-y1);

showStatus(”矩形面積: "+area);

}

//implementation of MouseListener

public void mousePressed(MouseEvent e){

x1=e.getX();

y1=e.getY();

}

public void mouseClicked(MouseEvent e){}

public void mouseEntered(MouseEvent e){}

public void mouseExited(MouseEvent e){}

public void mouseReleased(MouseEvent e){}

//implementation of MouseMotionEvent

public void mouseDragged(MouseEvent e){

x2=e.getX();

y2=e.getY();

repaint();

}

public void mouseMoved(MouseEvent e){}

}

extends Applet implements

第二篇:自考Java語言程序設(shè)計(jì)(一)第五章以后課后習(xí)題及答案

.........自考Java語言程序設(shè)計(jì)

(一)第五張課后習(xí)題及答案

自考Java語言程序設(shè)計(jì)

(一)第五章類的繼承課后習(xí)題

五、類的繼承

l.什么是繼承?什么是父類?什么是子類?繼承的特性可給面向?qū)ο缶幊處硎裁春锰?什么是單重繼承?什么是多重繼承?

2.觀察下面的程序片斷,指出其中的父類和子類,以及父類和子類的各個(gè)域和方法。

class SuperClass

{

int data;

voidsetData(intnewData)

{

data=newData~

}

intgetData()

{

return data~

}

}

class SubClass extends SuperClass

{

int suhData;

void setSubData(intnewData)

{

suhData=new Data;

}

intgetData()

{

return subData;

}

}

3.“子類的域和方法的數(shù)目一定大于等于父類的域和方法的數(shù)目”,這種說法是否正確?為什么?

4.在Java程序中,通過類的定義只能實(shí)現(xiàn)單重繼承()

5.下列哪些說法是正確的?

A、Java 語言只允許單一繼承

B、Java 語言只允許實(shí)現(xiàn)一個(gè)接口

C、Java 語言不允許同時(shí)繼承一個(gè)類并實(shí)現(xiàn)一個(gè)接口

D、Java 語言的單一繼承使得代碼更加可靠

6.Java中所有類都是類________的子類。

.........7.請寫出下面程序的運(yùn)行結(jié)果。

public class Test extends TT{

public void main(String args[]){

Test t = new Test(“Tom”);

}

public Test(String s){

super(s);

System.out.println(“How do you do?”);

}

public Test(){

this(“I am Tom”);

}

} www.tmdps.cnumber_2).toString());

System.out.println(cNumber_1.toString()+ “ 加 ”

.........+ d + “ 等于 ”

+ cNumber_1.complexAdd(d).toString());System.out.println(cNumber_1.toString()+ “ 減 ” + cNumber_2.toString()+ “ 等于 ” + cNumber_1.complexMinus(cNumber_2).toString());System.out.println(cNumber_1.toString()+ “ 減 ” + d + “ 等于 ” + cNumber_1.complexMinus(d).toString());System.out.println(cNumber_1.toString()+ “ 乘 ” + cNumber_2.toString()+ “ 等于 ” + cNumber_1.complexMulti(cNumber_2).toString());System.out.println(cNumber_1.toString()+ “ 乘 ” + d + “ 等于 ” + cNumber_1.complexMulti(d).toString());} } class ComplexNumber { //域

private double m_dRealPart;private double m_dImaginPart;//構(gòu)造方法

ComplexNumber(){ m_dRealPart = 0.0;m_dImaginPart = 0.0;} ComplexNumber(double r,double i){ m_dRealPart = r;m_dImaginPart = i;} ComplexNumber(ComplexNumber c){ m_dRealPart = c.getRealPart();m_dImaginPart = c.getImaginaryPart();} //get,set方法

double getRealPart(){ return m_dRealPart;} double getImaginaryPart(){

.........return m_dImaginPart;} void setRealPart(double d){ m_dRealPart = d;} void setImaginaryPart(double d){ m_dImaginPart = d;} //復(fù)數(shù)運(yùn)算方法

ComplexNumber complexAdd(ComplexNumber c){ return new ComplexNumber(this.m_dRealPart + c.getRealPart(), this.m_dImaginPart + c.getImaginaryPart());} ComplexNumber complexAdd(double c){ return new ComplexNumber(this.m_dRealPart + c, this.m_dImaginPart);} ComplexNumber complexMinus(ComplexNumber c){ return new ComplexNumber(this.m_dRealPartc.getImaginaryPart());} ComplexNumber complexMinus(double c){來源:www.tmdps.cn return new ComplexNumber(this.m_dRealPart-c, this.m_dImaginPart);} ComplexNumber complexMulti(ComplexNumber c){ return new ComplexNumber(this.m_dRealPart * c.getRealPart()

-this.m_dImaginPart * c.getImaginaryPart(), this.m_dRealPart * c.getImaginaryPart()+ this.m_dImaginPart * c.getRealPart());} ComplexNumber complexMulti(double c){ return new ComplexNumber(.........this.m_dRealPart * c, this.m_dImaginPart * c);

}

//toString()

public String toString()

{

return “(” + m_dRealPart + “ + ”

+ m_dImaginPart + “ i” + “)”;

}

}

8.答:接口是用來實(shí)現(xiàn)類間多重繼承功能的結(jié)構(gòu)。接口與類相似,但是接口中只能包括常量和抽象方法。定義接口相當(dāng)于定義了一組抽象的功能、屬性集合,可以使了ava程序的類層次結(jié)構(gòu)更加合理,并實(shí)現(xiàn)多重繼承。

9.答:使用關(guān)鍵字implements可以定義類實(shí)現(xiàn)某接口。實(shí)現(xiàn)某接口的類如果不是抽象類,則需要通過重載來實(shí)現(xiàn)該接口中的所有抽象方法;如果這個(gè)類是抽象類,則它可以不必實(shí)現(xiàn)該接口中的所有抽象方法。

10.答:接口可以被繼承。

SubInterface中的抽象方法有:public abstract int supMethod();和public abstract string subMethod();兩個(gè)。

自考Java語言程序設(shè)計(jì)

(一)第七章Java常用類庫介紹課后習(xí)題

七、Java 常用類庫介紹

1.指出下列陳述是對還是錯(cuò),并做出解釋。

(1)當(dāng)String對象用= = 比較時(shí),如果String包括相同的值則結(jié)果為true。

(2)一個(gè)String類的對象在其創(chuàng)建后可被修改。

2.對于下列描述,各寫出一條語句完成要求的任務(wù)

(1)比較s1中的串和s2中的串的內(nèi)容的相等性;

(2)用+=向串s1附加串;

(3)判斷s1中串的長度;來源:考試大

3.說明capacity()與length()用法上的差異?

4.如果ch為StringBuffer對象,ch=“Java Apple”,下列結(jié)果為何?

(1)ch.insert(3,’p’)(2)ch.append(“Basic”)

(3)ch.setlength(5)(4)ch.reverse()

5.Math類中提供用來常數(shù)π和e的靜態(tài)屬性分別是什么?

6.下面關(guān)于Vector類的說法正確的是()

(1)類Vector在java.util包中。

(2)一個(gè)向量(Vector)對象存放的是一組有序的對象。

(3)一個(gè)向量(Vector)對象大小可以根據(jù)存放的元素個(gè)數(shù)的增加而自動(dòng)增加。

(4)一個(gè)向量(Vector)對象中每個(gè)元素可以是不同類型的對象。

7.有三個(gè)字符串,編寫程序找出其中最大者。

8.編寫一個(gè)程序,設(shè)定一個(gè)有大小寫字母的字符串,先將字符串的大寫字符輸出,再將字符串中的小寫字符輸出。

.........9.設(shè)定5個(gè)字符串,要求只打印那些以字母“b”開頭的串,編寫程序完成。

10.設(shè)定一個(gè)有大小寫字母的字符串和一個(gè)查找字符,使用類 String方法IndexOf()來判斷在該字符串中該字符出現(xiàn)的次數(shù)。

參考答案

1.答:

(1)錯(cuò)。用= =操作符比較String對象實(shí)際上是判斷它們在內(nèi)存中是否為同一對象,并不是判斷它們的值是否相同。

(2)錯(cuò)。String類的對象是常量。它們被創(chuàng)建后不可被修改。

2.答:

(1)s1.equals(s1,s2);

(2)s1+=s2;

(3)s1.length();

3.答:capacity()返回字符串對象的當(dāng)前緩沖區(qū)的長度,length()返回字符串對象字符的長度。考試大收集整理

4.答:

(1)結(jié)果:Javpa Applet

(2)結(jié)果:Javpa AppletBasic

(3)結(jié)果:ch長度變?yōu)?

(4)結(jié)果:apvaJ

5.答:PI、E

6.答:(3)

7.public class max1

{

public static void main(String args[])

{

String s1= “Hello Java”;

String s2= “Java Applet”;

String s3= “Java”;

String s;

if(s1.compareTo(s2)<0)

s=s2;

else s=s1;

if(s.compareTo(s3)<0)

s=s3;

Systrm.out.println(“big=”+s);

}

}

8.public class out

{

public static void main(String args[])

{

String s1= “Hello Java”;

.........StringBuffer bufup=new StringBuffer();StringBuffer buflow=new StringBuffer();for(int I=0;I {if(s1.charAt(i)<97){bufup.append(s1.charAt(i));bufup.append(' ');} else { buflow.append(s1.charAt(i));buflow.append('');} } System.out.println(“s1= ”+s1);System.out.println(“ uppercase= ”+bufup);System.out.println(“ lowercase= ”+buflow);} } 9.

public class prin_b { public static void main(String args[]){ String s1=“hello”;String s2=“bee”;String s3=“java”;String s4=“brove”;String s5=“bag”;if(s1.indexOf('b')= =0)System.out.println(s1);if(s2.indexOf('b')= =0)System.out.println(s2);if(s3.indexOf('b')= =0)System.out.println(s3);if(s4.indexOf('b')= =0)System.out.println(s4);if(s5.indexOf('b')= =0)System.out.println(s5);} } 10.

public class ppp { public static void main(String args[]){ String s1=“abcdefghi”;

.........int num=0;

for(int i=0;i

{i=s1.indexof('e',i);

num++;

}

System.out.print(“ s1=”+s1+“e=”);

if(num= =0)

System.out.println(“ no found”);

else System.out.println(num);

}

}

自考Java語言程序設(shè)計(jì)

(一)第八章Java異常處理及輸入輸出流簡介課后習(xí)題

八、Java異常處理及輸入輸出流簡介

1.列出5個(gè)常見的異常。

2.寫出Java語言的異常處理機(jī)制的優(yōu)點(diǎn)。

3.為什么異常處理技術(shù)不應(yīng)該用于常規(guī)的程序控制?

4.引起異常產(chǎn)生的條件是什么?

5.異常沒有被捕獲將會(huì)發(fā)生什么?

6.編寫一個(gè)程序,以說明catch(Exception e)如何捕獲各種異常。

7.下面的代碼段中finally語句塊會(huì)被執(zhí)行嗎?

public class ExceptionExam3

{

public static void main(String [] args)

{

try

{

int [] a=new int[3];

System.exit(0);

}

catch(ArrayIndexOutOfBoundsException e)

{System.out.println(“發(fā)生了異常”);}

finally

{System.out.println(“Finally”);}

}

}

8.throws的作用是什么?

9.應(yīng)在程序的什么地方使用異常處理?

10.下面的代碼有什么錯(cuò)誤嗎?

class ExceptionExam{?}

throw new ExceptionExam();

11.異常類型匹配的處理方式。程序功能:首先輸出“這是一個(gè)異常處理的例子”,.........然后在你程序中主動(dòng)地產(chǎn)生一個(gè) ArithmeticException 類型被0 除而產(chǎn)生的異常,并用catch 語句捕獲這個(gè)異常。最后通過ArithmeticException類的對象e的方法getMessage 給出異常的具體類型并顯示出來。

12.根據(jù)所給創(chuàng)建自定義異常類的使用格式,編寫一個(gè)自定義異常的小程序。

13.什么叫流?流式輸入輸出有什么特點(diǎn)?

14.Java流被分為字節(jié)流、字符流兩大流類,兩者有什么區(qū)別?

15.File類有哪些構(gòu)造函數(shù)和常用方法?

16.利用文件輸入輸出流編寫一個(gè)實(shí)現(xiàn)文件拷貝的程序,源文件名和目標(biāo)文件名通過命令行參數(shù)傳入。

17.編寫一個(gè)程序,在當(dāng)前目錄下創(chuàng)建一個(gè)子目錄test,在這個(gè)新創(chuàng)建的子目錄下創(chuàng)建一個(gè)文件,并把這個(gè)文件設(shè)置成只讀。

18.位置指針的作用是什么?RandomAccessFile類提供了哪些方法實(shí)現(xiàn)對指針的控制?

19.編寫一個(gè)程序,從鍵盤輸入一串字符,統(tǒng)計(jì)這串字符中英文字母、數(shù)字、其他符號的字符數(shù)。

20.編寫一個(gè)程序,從鍵盤輸入一串字符,從屏幕輸出并將其存入a.txt文件中。采集者退散

21.編寫一個(gè)程序,從鍵盤輸入10個(gè)整數(shù),并將這些數(shù)據(jù)排序后在標(biāo)準(zhǔn)輸出上輸出。

參考答案

1.答:內(nèi)存耗盡、數(shù)組下標(biāo)超出邊界、被0除、非法的方法參數(shù)、算法溢出處。來源:考試大的美女編輯們

2.答:(1)Java通過面向?qū)ο蟮姆椒ㄟM(jìn)行異常處理,把各種異常事件進(jìn)行分類,體現(xiàn)了良好的層次性,提供了良好的接口,這種機(jī)制對于具有動(dòng)態(tài)特 性的復(fù)雜提供了強(qiáng)有力的控制方式。(2)Java的異常處理機(jī)制使得處理異常的代碼和“常規(guī)”代碼分開,減少了代碼的數(shù)量,增強(qiáng)了程序的可讀性。(3)Java的異常處理機(jī)制使得異常事件可以沿調(diào)用棧自動(dòng)向上傳播,而不是C語言中通過函數(shù)的返回值來傳播,這樣可以傳遞更多的信息,并且簡化了代碼的編寫。(4)由于把事件當(dāng)成事件處理,利用類的層次性我們可以把多個(gè)具有相同父類的異常統(tǒng)一處理,也可以區(qū)分不同的異常分別處理,使用非常靈活。

3.答:a.異常處理用于不經(jīng)常發(fā)生但通常導(dǎo)致程序終止的情況,因此要求編程人員為編譯器的優(yōu)化執(zhí)行實(shí)現(xiàn)異常處理。b.常規(guī)控制結(jié)構(gòu)的控制流程通常比異常的更為清晰、交流更高。c.在發(fā)生異常,并且沒有釋放異常發(fā)生之前分配的資源時(shí),堆棧是展開的,所以會(huì)出現(xiàn)一些問題。d.“額外的”異常會(huì)妨礙真正錯(cuò)誤類型的異常。這種使程序員更難 以跟蹤大量的異常。

4.答:異常產(chǎn)生的方式有3種。第一種是在某些內(nèi)部錯(cuò)誤時(shí),Java虛擬機(jī)可以產(chǎn)生異常,該異常不在你的程序控制范圍內(nèi),通常不作處理。第二種是由程序代碼中的錯(cuò)誤引起,這種異常需要你的程序處理。第三種是通過使用throw語句手動(dòng)生成的異常。

5.答:未捕獲的異常最終會(huì)導(dǎo)致程序非正常終止。

6.public class ExceptionExam

{

public static void main(String [] args)

{

try

{

.........int i=0;

i=3/i;//將產(chǎn)生算術(shù)異常。

}

catch(ArithmeticException e)//找到了匹配的異常,執(zhí)行該catch塊。

{

System.out.println(“發(fā)生了ArithmeticException異常”);

}

catch(AarryIndexOutOfBoundsException e)//不是匹配的異常,且不會(huì)再捕獲

//異常,如果發(fā)生數(shù)組索引超出范圍所產(chǎn)生的異常,將執(zhí)行該catch塊。

{

System.out.println(“發(fā)生了AarryIndexOutOfBoundsException異常”);

}

catch(Exception e)

//前兩個(gè)catch塊均無法捕獲try塊中發(fā)生的異常時(shí),才會(huì)執(zhí)行該catch塊。

{

System.out.println(“發(fā)生了異常”);

}

finally

{ System.out.println(“執(zhí)行d Finally”);}

}

}

7.答:無論是出于何種原因,只要執(zhí)行離開try/catch代碼塊,就會(huì)執(zhí)行finally代碼塊。即無論try是否正常結(jié)束,都會(huì)執(zhí)行 finally定義的最后的代碼。如果try代碼塊中的任何代碼或它的任何catch語句從方法返回,也會(huì)執(zhí)行finally代碼塊。但本題中在try代 碼塊中執(zhí)行了“System.exit(0);”語句,執(zhí)行了這一語句后,Java虛擬機(jī)(JVM)將被終止。那么finally語句塊一定不會(huì)被執(zhí)行。

8.答:在某些情況下,如果一個(gè)方法產(chǎn)生自己不處理或無法處理的異常,它就必須在throws子句中聲明該異常。

9.答:通常,可以采用兩種方式來報(bào)告錯(cuò)誤:返回值和異常。在Java中異常處理很常用,雖然返回錯(cuò)誤代碼在某些情況下是一種有效的方式,但是異常處理可以提供強(qiáng)大的結(jié)構(gòu)化方法來處理異常。所以需要處理代碼中的錯(cuò)誤時(shí)就可以采用異常的方法進(jìn)行處理。

10.答:ExceptionExam不是繼承(擴(kuò)展)Throwable的子類,只有Throwable的子類可以由throw拋出。所以,這一段代碼會(huì)出錯(cuò)。

11.public class ExceptionExam1

{

public static void main(String [] args)

{

try

{int i=0;

i=3/i;

}

catch(ArithmeticException e)

{

.........System.out.println(“異常是:”+e.getMessage());

}

finally

{

System.out.println(“finally 語句被執(zhí)行”);

}

}

}

注意:如果在catch 語句中聲明的異常類是Exception,catch 語句也能正確地捕獲,這是因?yàn)镋xception 是ArithmeticException 的父類。如果不能確定會(huì)發(fā)生哪種情況的異常,那么最好指定catch的參數(shù)為Exception,即說明異常的類型為Exception。

12.class Excp1 extends Exception

{}

class Excp2 extends Excp1

{}

public class ExceptionExam7

{

public static void main(String [] args)throws Exception

{

try

{

throw new Excp2();

}

catch(Excp2 e)

{

System.out.println(“catch1”);

throw new Excp1();

}

catch(Excp1 e)

{

System.out.println(“catch2”);

throw new Exception();

}

catch(Exception e)

{

System.out.println(“catch3”);

}

finally

{

System.out.println(“finally”);

}

}

}

.........說明:自定義異常類,關(guān)鍵是選擇繼承的超類——必須是Exception或者其子類。用異常代表錯(cuò)誤,而不要再使用方法返回值。

13.答:所謂流是指同一臺計(jì)算機(jī)或網(wǎng)絡(luò)中不同計(jì)算機(jī)之間有序運(yùn)動(dòng)著的數(shù)據(jù)序列,Java把這些不同來源和目標(biāo)的數(shù)據(jù)都統(tǒng)一抽象為數(shù)據(jù)流。數(shù)據(jù)流可分為輸入流和輸出流,輸入流代表從其他設(shè)備流入計(jì)算機(jī)的數(shù)據(jù)序列,輸出流代表從計(jì)算機(jī)流向外部設(shè)備的數(shù)據(jù)序列。

流式輸入輸出的特點(diǎn)是數(shù)據(jù)的獲取和發(fā)送沿?cái)?shù)據(jù)序列的順序進(jìn)行,即每一個(gè)數(shù)據(jù)都必須等待排在它前面的數(shù)據(jù),等前面的數(shù)據(jù)讀入或送出之后才能被讀寫。所以流和隊(duì)列一樣,只能以“先進(jìn)先出”的方式對其中的數(shù)據(jù)進(jìn)行讀寫,而不能隨意選擇讀寫的位置。

14.答:兩者都作為Object類的直接子類,基本輸入流(無效Stream)和基本輸出流(OutputStream)是處理以8位字節(jié)為基本單位的字節(jié)流類;Reader和Writer類是專門處理16位字符流的類。

15.答:構(gòu)造函數(shù)有:

(1)public File(String pathname):創(chuàng)建一個(gè)對應(yīng)于參數(shù)pathname的File類對象。參數(shù)pathname是包含目錄和文件名的字符串。如果沒有文件名,則代表目錄。

(2)public File(String parent , String child):該構(gòu)造函數(shù)將pathname分成兩部分parent和child,參數(shù)parent表示目錄或文件所在路徑,參數(shù)child表示目錄或文件名稱。

(3)public File(File parent, String child):該構(gòu)造函數(shù)與上面一個(gè)不同在于將parent的參數(shù)類型由String變?yōu)镕ile,代表parent是一個(gè)已經(jīng)創(chuàng)建的File類文件對象(指向目錄)。

常用方法有:

(1)public boolean canWrite():返回文件是否可寫。

(2)public boolean canRead():返回文件是否可讀。

(3)public boolean createNewFile():當(dāng)文件不存在時(shí)創(chuàng)建文件。

16.import java.io.*;

class CopyFile{

public static void main(String[] args){

String file1,file2;

int ch = 0;

try {

file1=args[0];

file2=args[1];

File無效Stream fis = new File無效Stream(file1);

FileOutputStream fos=new FileOutputStream(file2);

while((ch=fis.read())!=-1)

fos.write(ch);

fis.close();

fos.close();

}

catch(FileNotFoundException e){

System.out.println(“源文件:未找到!”);

}catch(ArrayIndexOutOfBoundsException e){

System.out.println(“缺少運(yùn)行參數(shù)!”);

System.exit(-1);

}

.........catch(IOException e){

System.out.println(e.toString());

}

}

}

17.答:

import java.io.*;

public class NewFile{

public static void main(String args[]){

File f=new File(“test”);

if(f.exists()&&f.isDirectory())

System.err.println(“目錄:”+f.toString()+“已經(jīng)存在!”);

else{

if(f.mkdir()){

System.out.println(“目錄”+f.getAbsolutePath()+“創(chuàng)建結(jié)束!”);

File f2=new File(f,“my.txt”);

try{

f2.createNewFile();

f2.setReadOnly();

}catch(IOException e){

System.out.println(e.toString());

}

System.out.println(“文件:”+f2.getAbsoluteFile()+“創(chuàng)建結(jié)束!”);

}

else

System.out.println(“目錄”+f.getAbsoluteFile()+“創(chuàng)建失敗!”);

}

}

}

18.答:要實(shí)現(xiàn)對文件的隨機(jī)讀取,也就是在文件的任何位置執(zhí)行讀寫數(shù)據(jù)的操作,需要一個(gè)指針來指定讀寫的位置。在創(chuàng)建 RandomAccessFile類對象的同時(shí),系統(tǒng)自動(dòng)創(chuàng)建了一個(gè)指向這個(gè)文件開頭的指針,當(dāng)執(zhí)行讀寫操作后,指針自動(dòng)指向被讀寫數(shù)據(jù)之后的第一個(gè)字節(jié) 處。指針初始值是0,每讀/寫一個(gè)字節(jié),指針自動(dòng)增加1。RandomAccessFile類提供了一些控制指針移動(dòng)的方法。

public long getFilePointer();獲取當(dāng)前指針指向文件的位置。考試大論壇

pulbic void seek(long pos);將指針移動(dòng)到參數(shù)pos指定的位置。

public int skipBytes(int n);指針從當(dāng)前位置向后移動(dòng)n個(gè)字節(jié)位置,并返回指針實(shí)際移動(dòng)的字節(jié)數(shù)。

19.答:

import java.io.*;

public class Count{

public static void main(String[] args)

{

int x=0,y=0,z=0;

.........int ch;try{ while((ch=System.in.read())!='r'){ if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z')x++;else if(ch>='0'&&ch<='9')y++;else z++;} }catch(IOException e){ System.out.println(e.toString());} System.out.println(“英文字母:”+x);System.out.println(“數(shù)字字符:”+y);System.out.println(“其它字符:”+z);} } 20.答:

import java.io.*;public class InFile{ public static void main(String[] args){ int ch;try{ FileOutputStream out=new FileOutputStream(“a.txt”);while((ch=System.in.read())!='r'){ System.out.write(ch);out.write(ch);} out.close();System.out.write('n');}catch(IOException e){ System.out.println(e.toString());} System.out.println(“輸出至文件完畢!”);} } 21.答:

import java.io.*;public class Sort{ public static void main(String args[]){ int a[]=new int[10];

.........byte b[]=new byte[10];

int t;

String str;

System.out.println(“請輸入10個(gè)整數(shù):”);

try{

for(int i=0;i<10;i++)

{System.out.print(“No.”+(i+1)+“: ”);

System.in.read(b);

str=new String(b);

str=str.trim();

a[i]=Integer.parseInt(str);

}

}catch(IOException e){

System.out.println(e.toString());

}

catch(NumberFormatException e){

System.out.println(e.toString());

}

for(int i=0;i<9;i++)

for(int j=i+1;j<10;j++)

{

if(a[i]>a[j]){

t=a[i];

a[i]=a[j];

a[j]=t;

}

}

for(int i=0;i<10;i++)

System.out.println(a[i]+“t”);

}

}

自考Java語言程序設(shè)計(jì)

(一)第九章JavaApplet概述課后習(xí)題

九、Java Applet概述

1.下列方法中,哪一個(gè)不是Applet的基本方法()

A、init()B、run()C、stop()D、start()

2.在Java中判定Applet的來源的方法有()

A、getcodebase()B、get文檔base()

C、getCodeBase()D、get文檔Bade()

3.下面關(guān)于Applet的說法正確的是

A、Applet也需要main方法

B、Applet必須繼承自javawt.Applet

.........()

C、Applet能訪問本地文件 D、Applet程序不需要編譯

4.Applet類的直接父類是()A.Component類

B.Container類

C.Frame類

D.Panel類

5.判斷:一個(gè)Applet編譯后的類名是Test.class,運(yùn)行此小程序的命令是Java Test。

6.編寫同時(shí)具有Applet與Application的特征的程序。具體方法是:作為Application要定義main()方法,并且把 main()方法所在的類定義一個(gè)類。為使該程序成為一個(gè)Applet,main()方法所在的這個(gè)類必須繼承Applet類或JApplet類。www.tmdps.cn d.二者都沒有

7.下面的__________用戶界面組件不是容器。a.JScrollPane b.JFrame考試大-全國最大教育類網(wǎng)站(www.tmdps.cn)c.JWindows d.JScrollBar 8.創(chuàng)建下面的GUI,顏色列表框?yàn)榧t色、綠色和藍(lán)色(不必為各組件提供功能)。參考答案 1.false 2.true 3.標(biāo)簽 4.B D 5.B 6.C 7.D 8.參考程序如下: import javawt.*;public class Chp9_3_B extends Frame{ Choice ch;Checkbox bg,fg;Button btnOK,btnCancel;Panel p,p1,p2;public Chp9_3_B(){ p=new Panel();p.setLayout(new GridLayout(2,1));p1=new Panel();p2=new Panel();p1.setLayout(new FlowLayout());

.........p2.setLayout(new FlowLayout());ch=new Choice();ch.add(“紅色”);ch.add(“綠色”);ch.add(“藍(lán)色”);bg=new Checkbox(“背景”);fg=new Checkbox(“前景”);p1.add(bg);p1.add(fg);btnOK=new Button(“確定”);btnCancel=new Button(“取消”);p2.add(btnOK);p2.add(btnCancel);p.add(p1);p.add(p2);add(ch,BorderLayout.NORTH);add(p,BorderLayout.CENTER);setSize(400,300);} public static void main(String[] args){ new Chp9_3_B().setVisible(true);} }

自考Java語言程序設(shè)計(jì)

(一)第十三章課后習(xí)題

十三、常用組件之二 _______單行文本框與多行文本框,單選框和復(fù)選框

1.判斷:列表對象總包含滾動(dòng)條。()

2.判斷:面板的默認(rèn)管理器是BorderLayout。

3.____________類用于創(chuàng)建一組單選按鈕。來源:考試大

4.欲編寫如下圖的一個(gè)界面,用于顯示用戶指定的圖像: 如果在區(qū)域A中只能放置一個(gè)

AWT組件,從各組件的本來功能角度考慮,最好使用哪種組件:

A、TextArea

B、Panel

C、Applet

D、Canvas

5.Java應(yīng)用程序中的默認(rèn)外觀是_________。

A.Motif

B.Windows

C.METAl

.........6.創(chuàng)建下面的GUI,要求在文本框中輸入分?jǐn)?shù),單擊“求和”按鈕后在結(jié)果文本框中顯示總分。

7.編寫一個(gè)將華氏溫度轉(zhuǎn)換為攝氏溫度的程序。應(yīng)從鍵盤輸入華氏溫度,然后通過文本顯示轉(zhuǎn)換后的攝氏溫度。使用下面的公式進(jìn)行溫度轉(zhuǎn)換:

攝氏溫度=5/9Χ(華氏溫度-32)

8.編寫一個(gè)程序,使用戶能夠使用鼠標(biāo)在applet中繪制一個(gè)矩形。按住鼠標(biāo)左鍵,確定矩形的左上角,然后拖動(dòng)鼠標(biāo),在需要的位置(即矩形右下角)釋放鼠標(biāo)。另外,在狀態(tài)欄中顯示矩形面積。

參考答案

1.false

2.true

3.CheckboxGroup

4.D

5. C

6.參考程序如下:

import javawt.*;來源:考試大

import javawt.event.*;

public class Chp9_3_C extends Frame implements ActionListener{

TextField textField1,textField2,textField3;

Button button1=new Button(“求和”);

Panel panel1,panel2;

public Chp9_3_C(){

textField1=new TextField();

textField2=new TextField();

textField3=new TextField();

panel1=new Panel();

panel2=new Panel();

panel1.setLayout(new GridLayout(3,2));

panel2.setLayout(new FlowLayout());

panel1.add(new Label(“數(shù)學(xué): ”));

panel1.add(textField1);

panel1.add(new Label(“英語: ”));

panel1.add(textField2);

panel1.add(new Label(“總分: ”));

panel1.add(textField3);

panel2.add(button1);

add(panel1,BorderLayout.CENTER);

add(panel2,BorderLayout.SOUTH);

button1.addActionListener(this);

setSize(300,200);

setVisible(true);

}

public static void main(String[] args){

new Chp9_3_C();

.........} public void actionPerformed(ActionEvent e){ int n1,n2,sum;n1=Integer.parseInt(textField1.getText());n2=Integer.parseInt(textField2.getText());sum=n1+n2;textField3.setText(“"+sum);} } 6.參考程序如下: import javawt.*;import javawt.event.*;public class Chp9_3_D extends Frame{ TextField textField1,textField2;Button button1;public Chp9_3_D(){ textField1=new TextField(30);textField2=new TextField(30);button1=new Button(”轉(zhuǎn)換“);setLayout(new FlowLayout());add(new Label(”華氏溫度:“));add(textField1);add(new Label(”攝氏溫度:“));add(textField2);textField2.setEditable(false);add(button1);setSize(400,300);pack();button1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ button1_actionPerformed(e);} });addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0);} });} public static void main(String[] args){ new Chp9_3_D().setVisible(true);} private void button1_actionPerformed(ActionEvent e){ double d=Double.parseDouble(textField1.getText());

.........double h=5.0/9.0*(d-32);

textField2.setText(”“+h);

}

}

7.參考程序如下:

import javapplet.Applet;

import javawt.*;

import javawt.event.*;

public class Chp9_3_E MouseListener,MouseMotionListener{

int x1,y1,x2,y2;

public void init(){

addMouseListener(this);

addMouseMotionListener(this);

}

public void paint(Graphics g){

g.drawRect(x1,y1,x2,y2);

int area=Math.abs(x2-x1)*Math.abs(y2-y1);

showStatus(”矩形面積: "+area);

}

//implementation of MouseListener

public void mousePressed(MouseEvent e){

x1=e.getX();

y1=e.getY();

}

public void mouseClicked(MouseEvent e){}

public void mouseEntered(MouseEvent e){}

public void mouseExited(MouseEvent e){}

public void mouseReleased(MouseEvent e){}

//implementation of MouseMotionEvent

public void mouseDragged(MouseEvent e){

x2=e.getX();

y2=e.getY();

repaint();

}

public void mouseMoved(MouseEvent e){}

}

extends Applet implements

第三篇:C語言程序設(shè)計(jì)教程課后習(xí)題答案

C語言程序設(shè)計(jì)教程課后習(xí)題答案

第一章 C語言程序設(shè)計(jì)概述 -習(xí)題答案 算法的描述有哪些基本方法?

1、自然語言

2、專用工具C語言程序的基本結(jié)構(gòu)是怎樣的?舉一個(gè)例子說明。

1、C語言程序由函數(shù)構(gòu)成;

2、“/*”與“*/”之間的內(nèi)容構(gòu)成C語言程序的注釋部分;

3、用預(yù)處理命令#include、#define可以包含有關(guān)文件或預(yù)定義信息;

4、大小寫字母在C語言中是有區(qū)別的;

5、除main()函數(shù)和標(biāo)準(zhǔn)庫函數(shù)外,用戶也可以自己編寫函數(shù),應(yīng)用程序一般由多個(gè)函數(shù)組成,這些函數(shù)指定實(shí)際所需要做的工作。C語言有什么特點(diǎn)?

1、具有結(jié)構(gòu)語言的特點(diǎn),程序之間很容易實(shí)現(xiàn)段的共享;

2、主要結(jié)構(gòu)成分為函數(shù),函數(shù)可以在程序中被定義完成獨(dú)立的任務(wù),獨(dú)立地編譯代碼,以實(shí)現(xiàn)程序的模塊化;

3、運(yùn)算符豐富,包含的范圍很廣;

4、數(shù)據(jù)類型豐富;

5、允許直接訪問物理地址,即可直接對硬件進(jìn)行損傷,實(shí)現(xiàn)匯編語言的大部分功能;

6、限制不太嚴(yán)格,程序設(shè)計(jì)自由度大,這樣使C語言能夠減少對程序員的束縛;

7、生成的目標(biāo)代碼質(zhì)量,程序執(zhí)行效率高,同時(shí)C語言編寫的程序的可移植性好。★指出合法與不合法的標(biāo)識符命名。

AB12--√ leed_3--a*b2--× 8stu--× D.K.Jon--× EF3_3--√ PAS--√ if--× XYZ43K2--√ AVE#XY--× _762--√ #_DT5--× C.D--×說明下列Turbo C熱鍵的功能。

F2:源文件存盤 F10:調(diào)用主菜單 F4:程序運(yùn)行到光標(biāo)所在行(用于調(diào)試程序)Ctrl+F9:編譯并鏈接成可執(zhí)行文件 Alt+F5:將窗口切換到 DOS 下,查看程序運(yùn)行結(jié)果。說明下列Turbo C方式下輸入并運(yùn)行下列程序,記錄下運(yùn)行結(jié)果。

①main()

{printf(“********************n”);printf(“ welcome you n”);printf(“ very good n);printf(”********************n“);} ②main()

{ int a,b,c,t;printf(”please input three numbers;“);scanf(”%d,%d,%d“,&a,&b,&c);/*教材S是錯(cuò)誤的*/ t=max(max(a,b),c);printf(”max number is:%dn“,t);} int max(int x, int y){ int z;if(x>y)z=x;else z=y;return(z);} 答

運(yùn)行結(jié)果:

******************** welcome you very good ******************** 運(yùn)行結(jié)果:

please input three numbers;3,1,4 /*左側(cè)下劃線內(nèi)容為鍵盤輸入*/ max number is:4 7 一個(gè)C程序是由若干個(gè)函數(shù)構(gòu)成的,其中有且只能有一個(gè)___函數(shù)。

main()8 在Turbo C環(huán)境下進(jìn)行程序調(diào)試時(shí),可以使用Run下拉菜單的___命令或按___鍵轉(zhuǎn)到用戶屏幕查看程序運(yùn)行結(jié)果。

1、User screen

2、Alt+F5 9 ★C語言對標(biāo)識符與關(guān)鍵字有些什么規(guī)定?

1、標(biāo)識符用來表示函數(shù)、類型及變量的名稱,它是由字母、下劃線和數(shù)字組成,但必須用字母或下劃線開頭。

2、關(guān)鍵字是一種語言中規(guī)定具有特定含義的標(biāo)識符,其不能作為變量或函數(shù)名來使用,用戶只能根據(jù)系統(tǒng)的規(guī)定使用它們。C源程序輸入后是如何進(jìn)行保存的?

是以C為擴(kuò)展名保存的純文本文件。

第二章 C語言程序的基本數(shù)據(jù)類型與表達(dá)式 -習(xí)題答案 ★指出下列常數(shù)中哪些是符合C語法規(guī)定的。

''--× '101'--× ”“--× e3--× 019--√ 0x1e--√ ”abn“--√ 1.e5--×(2+3)e(4-2)--× 5.2e2.5--×請找出下列程序中的錯(cuò)誤,改正后寫出程序運(yùn)行結(jié)果。

①void main(){int x,y=z=5,aver;x=7 AVER=(x+y+z)/3 printf(”AVER=%dn“,aver);} ②void main()

{ char c1='a';c2='b';c3='c';int a=3.5,b='A' printf(”a=%db='“endn”,a,b);printf(“a%cb%cbc%ctabcn”,c1,c2,c3);} 答

main(){int x,y=5,z=5,aver;x=7;aver=(x+y+z)/3;printf(“AVER=%dn”,aver);}

運(yùn)行結(jié)果:AVER=5 ②main()

{ char c1='a', c2='b', c3='c';int a=3,b='A';printf(“a=%d,b='%c'”end“n”,a,b);printf(“a%cb%cbc%ctabcn”,c1,c2,c3);}

運(yùn)行結(jié)果:a=3,b='A'“end”

aabcc abc 3 寫出下列賦值的結(jié)果,表格中寫了數(shù)值的是要將它賦給其他類型的變量,將所有的空格填上賦值后的數(shù)據(jù)(實(shí)數(shù)保留到小數(shù)點(diǎn)后兩位)。int 99

-1 char 'h'

unsigned int

float

55.78

long int

答 int 99 104 66 55 68-1 char 'c' 'h' 'B' '7' 'D'

unsigned int 99 104 66 55 68 65535

float 99.00 104.00 66.00 55.78 68.00-1.00

long int 99 104 66 55 68-1

★寫出程序運(yùn)行結(jié)果。

①void main(){int i,j;i=8,j=10;printf(“%d,%d,%d,%dn”,i,j,++i,j++);} ②main()

{ int a=1,b=2,c=30;;printf(“%d,%d,%d,%dn”,a=b=c,a=b==c,a==(b=c),a==(b==c));} 注意:a=b=c,a=b==c之間應(yīng)為逗號,教材有誤 答

運(yùn)行結(jié)果: 9,11,9,10 運(yùn)行結(jié)果: 30,1,0,0

③void main()

{int a=10,b=20,c=30,d;d=++a<=10||b-->=20||c++;printf(“%d,%d,%d,%dn”,a,b,c,d);}

運(yùn)行結(jié)果: 11,19,30,1

★寫出下面表達(dá)式的值(設(shè)a=10,b=4,c=5,d=1,x=2.5,y=3.5)。⑴a%=(b%=3)

⑵n++,a+=a-=a*=a ⑶(float)(a+c)/2+(int)x%(int)y ⑷a*=b+c ⑸++a-c+b++ ⑹++a-c+++b ⑺a

⑼a+b,18+(b=4)*3,(a/b,a%b)

⑽x+a%3*(int)(x+y)%2/4+sizeof(int)⑾a

⑴0 ⑵0 ⑶9.500000 ⑷90 ⑸10 ⑹10 ⑺'A' ⑻2 ⑼4.5 ⑽1 ⑾0 ⑿20 ⒀0 下列每組表達(dá)式中,被執(zhí)行后結(jié)果完全等價(jià)的是哪些(設(shè)a、b、m是已被賦值的整型變量)?

①m=(a=4,4*5)與m=a=4,4*5 ②(float)(a/b)與(float)a/b ③(int)a+b與(int)(a+b)④m%=2+a*3與m=m%2+a*3 ⑤m=1+(a=2)+(b=3)與a=2,b=3,m=1+a+b 答

①前面是賦值表達(dá)式,而后面的是一個(gè)逗號表達(dá)式,所以一定不同;

②前面的表達(dá)式中a/b結(jié)果為一整數(shù),結(jié)果已經(jīng)取整,精度可能受到影響,之后強(qiáng)制float后才為浮點(diǎn)型,后面的是先將a轉(zhuǎn)換為float后再與b相除,其值保證了精度,所以不同。

③因?yàn)閍、b均為整數(shù),其前后兩個(gè)表達(dá)式的計(jì)算結(jié)果是一致的。

④前一表達(dá)式是一算術(shù)表達(dá)式,而后者為一賦值表達(dá)式,此為一點(diǎn)不同;另外,前一表達(dá)式的m只被賦過一次值,后一表達(dá)式中的m曾兩次被賦值,第一次賦值時(shí)與第一表達(dá)式中的值一致,第二次賦值后即不再相同。⑤前后表達(dá)式的計(jì)算結(jié)果應(yīng)該是一致的:a=2, b=3, m=6 7 條件表達(dá)式x>0?x:-x的功能是什么?

如果x的值是一正數(shù),則表達(dá)式的值為x值;如果x的值是一非正數(shù),則表達(dá)式的值為-x。其實(shí)該表達(dá)式的值即為x的絕對值,C語言中提供了一個(gè)函數(shù)fabs(x)即可完成此功能,該函數(shù)包含在math.h頭文件中。用一個(gè)條件表達(dá)式描述從a、b、c中找出最大都賦給max.答

max=a>(b>c?b:c)?a:(b>c?b:c);9 ★若x為int型變量,則執(zhí)行以下語句后x的值為()。x=6;x+=x-=x*x;A.36 B.-60 C.60 D.-24 答 B.10 ★若有以下類型說明語句: char w;int x;float y;double z;則表達(dá)式w*x+z-y的結(jié)果為()類型。A.float B.char C.int D.double 答 D.第三章 順序結(jié)構(gòu)程序設(shè)計(jì) -習(xí)題答案 變量k為float類型,調(diào)用函數(shù)scanf(“%d”,&k),不能使變量k得到正確數(shù)值的原因是___。

格式修飾符與變量類型不一致。因?yàn)?d輸入的數(shù)據(jù)類型應(yīng)該為十進(jìn)制整數(shù),而&k為占用4個(gè)字節(jié)的float類型變量的地址。★a=1234,b=12,c=34,則執(zhí)行“printf(“|%3d%3d%-3d|n”,a,b,c);”后的輸出是___。

|1234 1234 |

分析如下:

①%3d為右對齊輸出變量,且指定輸出變量的值寬度為3個(gè)字符位,如果變量實(shí)際位數(shù)小于3,則左端補(bǔ)空格,如果變量實(shí)際位數(shù)大于3,則按實(shí)際長度輸出,不受限制。

②%-3d為左對齊輸出變量,在輸出變量時(shí),如是變量實(shí)際位數(shù)小于3,則在右端補(bǔ)空格,否則按實(shí)際輸出。★設(shè)有“int a=255,b=8;”,則“printf(“%x,%on”,a,b);”輸出是___。答 ff,10 ①如果“printf(“%X,%on”,a,b);”則輸出為FF,10。說明在輸出十六進(jìn)制字母時(shí),其大小寫受格式修飾符的限制,如果是“%x”則輸出小寫,如果是“%X”則輸出大寫。

②如果希望在輸出十六進(jìn)制時(shí)輸出前導(dǎo)符0x或0X,則以上輸出語句應(yīng)改“printf(“%#x,%on”,a,b);”為或“printf(“%#X,%on”,a,b);”。本條解釋不必須掌握。★以下程序輸出的結(jié)果是___。main(){ int a1=1,a2=0,a3=2;printf(“%d,%d,%dn”,a1,a1+a2+a3,a3-a1);} 答 1,3,1 5 printf函數(shù)中用到格式符%5s,其中5表示輸出字符占用5列。如果字符串長度大于5,則按___輸出;如果字符串長度小于5,則按___輸出。

①實(shí)際 ②左端補(bǔ)空格 6 ★已定義變量如下: int a1,a2;char c1,c2;若要求輸入a1、a2、c1和c2的值,正確的輸入函數(shù)調(diào)用語句是___。

scanf(“%d,%d,%c,%c”,&a1,&a2,&c1,&c2);7 輸入兩個(gè)整型變量a、b的值,輸出下列算式以及運(yùn)算結(jié)果___。a+b、a-b、a*b、a/b、(float)a/b、a%b 每個(gè)算式占一行。如a=10,b=5,a+b輸出為:10+5=15 答

設(shè)int a=10,b=5;以下為輸出語句及結(jié)果: ①printf(“%d+%d=%dn”,a,b,a+b);10+5=15 ②printf(“%d-%d=%dn”,a,b,a-b);10-5=5 ③printf(“%d*%d=%dn”,a,b,a*b);10*5=50 ④printf(“%d/%d=%dn”,a,b,a/b);10/5=2 ⑤printf(“%(float)d/%d=%fn”,a,b,(float)a/b);(float)10/5=2.000000 ⑥printf(“%d%%%d=%dn”,a,b,a%b);10%5=0 8 ★輸入一個(gè)非負(fù)數(shù),計(jì)算以這個(gè)數(shù)為半徑的圓周長和面積。答

#define PI 3.1415926 main(){ float r,l,area;printf(“Input a positive:”);scanf(“%f”,&r);l=2*PI*r;area=PI*r*r;printf(“l(fā)=%ftarea=%fn”,l,area);} 9 輸入任意一個(gè)3位數(shù),將其各位數(shù)字反序輸出(例如輸入123,輸出321)。

main(){ int x,y;printf(“Input a number(100-999):”);scanf(“%d”,&x);y=100*(x%10)+10*(x/10%10)+x/100;/*注意分析此處算法*/

第四篇:c語言程序設(shè)計(jì)課后習(xí)題答案 第7章

/*練習(xí)7-1*/ #include main(){ int a[10],n,sum=0,i;float ave;printf(“enter n:n”);scanf(“%d”,&n);printf(“enter %d ge zheng shu:n”,n);for(i=0;i

scanf(“%d”,&a[i]);

sum=sum+a[i];

} ave=1.0*sum/n;printf(“ave=%.2fn”,ave);}

/*練習(xí)7-2*/ #include main(){

int a[10],n,i;printf(“enter n:n”);scanf(“%d”,&n);printf(“enter %d ge zheng shu:n”,n);for(i=0;i

printf(“第%d個(gè):n”,i+1);

scanf(“%d”,&a[i]);

printf(“倒序:n”);

while(a[i]!=0)

{

printf(“%d”,a[i]%10);

a[i]=a[i]/10;

}

printf(“n”);} } /*練習(xí)7-3*/ #include main(){

int a[5],x,i,k=0;printf(“enter 5 ge zheng shu:n”);for(i=0;i<5;i++)

scanf(“%d”,&a[i]);printf(“enter x:n”);scanf(“%d”,&x);

for(i=0;i<5;i++)

if(a[i]==x)

{

printf(“xia biao wei : %dn”,i);

k=1;

}

if(k==0)

printf(“Not Foundn”);}

/*練習(xí)7-4*/ #include main(){

int a[10],n,i,k=0,x,max;printf(“enter n:n”);scanf(“%d”,&n);printf(“enter %d ge zheng shu:n”,n);for(i=0;i

scanf(“%d”,&a[i]);max=a[0];for(i=1;i<=n-1;i++)

if(max

{

max=a[i];

k=i;

}

printf(“max=%d

xia biao=%d”,max,k);

x=a[n-1];

a[n-1]=a[k];

a[k]=x;

printf(“n”);

for(i=0;i

printf(“

%d

”,a[i]);

printf(“n”);}

/*練習(xí)7-11*/ #include main(){ char str[80];int i,j,count=0;printf(“輸入一個(gè)以回車符結(jié)束的字符串:n”);i=0;while((str[i]=getchar())!='n')

i++;str[i]='

主站蜘蛛池模板: 中文字幕av无码一区二区三区| 精品久久一区二区乱码| 国产手机精品一区二区| 中文精品久久久久人妻不卡| 亚无码乱人伦一区二区| 妓女爽爽爽爽爽妓女8888| 国产乱码一区二区三区免费| 狠狠久久精品中文字幕无码| 手机在线看永久av片免费| 扒开?让我???蜜桃视频| 日本护士毛茸茸| 亚洲线精品一区二区三八戒| 久久疯狂做爰xxxⅹ高潮直播| 另类内射国产在线| 国产麻豆一精品一av一免费软件| 97久久综合区小说区图片区| 少妇真人直播免费视频| 无码精品黑人一区二区三区| 永久免费精品精品永久-夜色| av夜夜躁狠狠躁日日躁| 成年日韩片av在线网站| 人妻乳哺乳无码一区二区| 久久久www成人免费看片| 无码人妻一区二区三区一| 中文字幕无码免费久久| 国产精品久久无码一区二区三区网| 伊人色综合一区二区三区影院视频| 亚洲妓女综合网99| 国产 国语对白 露脸| 国产福利视频一区二区| 大屁股大乳丰满人妻| av人摸人人人澡人人超碰妓女| 成人区精品一区二区不卡av免费| 久久中文字幕人妻丝袜系列| 久热这里只精品99国产6-99re视…| 夜夜爽日日澡人人添| 久久精品中文字幕免费| 国产亚洲精品线观看k频道| 亚洲精品v欧洲精品v日韩精品| gv天堂gv无码男同在线观看| 欧美日韩人妻精品一区二区在线|