《Java語言程序設計(基礎篇)》第一章復習題和編程練習題

復習題

1.1 什么是硬件和軟件?

硬件包括計算機中可以看得見的物理部分,軟件是看不見的指令,這些指令可以控制硬件并且使得硬件完成特定的任務。

1.2 列舉計算機的5個主要硬件組件。

cpu,內存,硬盤,顯示器,鍵盤,鼠標等等。

1.3 縮寫“CPU”代表什么含義?

中央處理器,計算機的大腦。

1.4 衡量CPU速度的單位是什么?

赫茲。

1.5 什么是比特?什么是字節?

  • 比特(bit)是二進制數,0和1。
  • 字節(byte)是計算機中最小的存儲單元,每個字節由8個比特構成。

1.6 內存是用來做什么的?RAM代表什么?為什么內存稱為RAM?

  • 內存由一個有序的字節序列組成,用于存儲程序及程序需要的數據。
  • RAM是隨機訪問存儲器的縮寫(Random-Access Memory)。
  • 因為內存可以按任意順序存取字節,所以被稱為RAM。

1.7 用于衡量內存大小的單位是什么?

千字節。

1.8 用戶衡量磁盤大小的單位是什么?

兆字節。

1.9 內存和永久存儲設備的主要不同是什么?

斷電后是否能繼續保存數據。內存不能,永久存儲設備能。

1.10 CPU能理解什么語言。

機器語言。

1.11 什么是匯編語言?

匯編語言能用短的描述性單詞來表示每一條機器語言指令,是一種低級語言。

1.12 什么是匯編器?

匯編器可以將匯編語言轉換成機器語言。

1.13 什么是高級編程語言?

很像英語,易于學習和使用的編程語言稱為高級編程語言。

1.14 什么是源程序?

使用高級編程語言編寫的程序稱為源程序。

1.15 什么是解釋器?

解釋器會逐條讀取源代碼中的語言,并立刻翻譯成機器代碼或者虛擬機器代碼,然后立刻運行。

1.16 什么是編譯器?

編譯器是先將整個源代碼翻譯為機器代碼文件,然后再執行該機器代碼文件。

1.17 解釋語言和編譯語言之間的區別是什么?

  • 解釋語言是在運行的時候將程序翻譯成機器語言,效率比較低,但是夸平臺性好,比如java和python。
  • 編譯語言在程序執行之前,有一個單獨的編譯過程,將程序翻譯成機器語言就不再進行翻譯了,效率高,比如C和C++。

1.18 什么是操作系統?列出一些流行的操作系統。

  • 操作系統(Operating System, OS)是運行在計算機上最重要的程序,它可以管理和控制計算機的活動。
  • 比較流行的有windows,linux,macos

1.19 操作系統的主要任務是什么?

  • 控制和監控系統的活動
  • 分配和調配系統資源
  • 調度操作

1.20 什么是多道程序設計、多線程以及多處理。

  • 多道程序設計允許多個程序通過共享CPU同時運行
  • 多線程運行單個程序同時執行多個任務
  • 多處理(多進程)也成為并行處理(parallel processing),是指使用兩個或多個處理器共同并行執行子任務,然后將子任務的結果合并以得到整個任務的結果。

1.21 Java是由誰發明的?哪個公司現在擁有Java?

  • Java是由James Grosling在Sun公司領導的小組開發的。
  • Oracle擁有Java。

1.22 什么是Java applet?

能在Web瀏覽器中運行的Java程序稱為Java applet。

1.23 安卓使用的是什么編程語言?

java,kotlin

1.24 什么是Java語言規范?

Java語言規范(Java language specification)是對語言的技術定義,包括Java程序設計語言的語法和語義。

1.25 JDK代表什么?

Java開發工具包(Java Development Toolkit),是由一套獨立程序構成的集合,每個程序都是從命令行調用的,用于開發和測試java程序。

1.26 IDE代表什么?

集成開發環境(Integrated Development Environment)。

1.27 類似NetBeans和Eclipse的工具是和Java是不同的語言嗎?或者它們是Java的方言或者擴充?

  • 不是
  • 這些是方便進行java開發的開發工具,IDE。

1.28 什么是關鍵字?列舉一些java關鍵字。

  • java本身有特殊含義的單詞,不能再程序中用于其他目的。
  • class, static, void

1.29 java是大小寫敏感的嗎?java關鍵字是大寫還是小寫?

  • 大小寫敏感
  • 小寫

1.30 什么是注釋? 編譯器會忽略注釋嗎?如何標識一行注釋以及一段注釋?

  • 主要用于說明程序是干什么的
  • 會忽略
  • // 以及 /* */

1.31 在控制臺顯示一個字符串的語句是什么?

System.out.println()

1.32 給出以下代碼的輸出

public class Test {
    public static void main(String[] args) {
        System.out.println("3.5 * 4 / 2 - 2.5 is ");
        System.out.println(3.5 * 4 / 2 - 2.5);
    }
}

輸出:
3.5 * 4 / 2 - 2.5 is
4.5

1.33 什么是java源程序的文件后綴名,什么是java字節碼文件后綴?

  • .java
  • .class

1.34 java編譯器的輸入和輸出是什么?

  • 源代碼
  • 字節碼

1.35 編譯java程序的命令是什么?

javac ****.java

1.36 運行java程序的命令是什么?

java ****

1.37 什么是JVM?

java虛擬機,可以解釋java字節碼的程序

1.38 java可以運行在任何機器上嗎?在一臺計算機上運行java需要什么?

  • 可以,只要裝有java虛擬機
  • 需要java虛擬機

1.39 如果運行程序的時候出現NoClassDefFoundError錯誤,是什么原因導致了這個錯誤?

需要執行的類名不存在

1.40 如果運行程序的時候出現NoSuchMethodError錯誤,是什么原因導致了這個錯誤?

沒有main方法或者敲錯了main方法

1.41 使用行尾括號風格,將下面的程序根據程序設計風格和文檔指南進行重新格式化。

public class Test
{
    // Main method
    public static void main(String[] args) {
    /** Display output */
    System.out.println("Welcome to Java");
    }
}
/** Display output */
public class Test {
    // Main method
    public static void main(String[] args) {
        System.out.println("Welcome to Java");
    }
}

1.42 什么是語法錯誤(編譯錯誤)、運行時錯誤以及邏輯錯誤?

  • 在編譯過程中出現的錯誤稱為語法錯誤(syntax error)或編譯錯誤(compile error)。
  • 引起程序非正常中斷的錯誤叫運行時錯誤(runtime error)。
  • 當程序沒有按預期的方式執行時就會產生邏輯錯誤(logic error)。

1.43 給出語法錯誤、運行時錯誤以及邏輯錯誤的示例。

  • 少關鍵字
  • 1除以0的場景
  • 小數點計算中給的都是整形數字導致計算結果不正確

1.44 如果忘記為字符串加引號了,將產生哪類錯誤?

語法錯誤

1.45 如果程序需要讀取整數,而用戶輸入了字符串,運行該程序的時候將產生什么錯誤?這是哪類錯誤?

  • 類型不符錯誤。
  • 運行時錯誤。

1.46 假設編寫一個計算矩形周長的程序,但是錯誤地攜程了計算矩形面積的程序。這屬于哪類錯誤?

邏輯錯誤。

1.47 指出和修改下面代碼中的錯誤:

public class Welcome {
    public void Main(String[] args) {
        System.out.println("Welcome to Java!);
    }
}

錯誤有缺少關鍵字static,main首字母不應該大寫,缺少雙引號。
修改后:

public class Welcome {
    public static void main(String[] args) {
        System.out.println("Welcome to Java!");
    }
}

編程練習題

分為容易(沒有星號)、適中(一顆星)、難(兩顆星)以及具有挑戰性(三顆星)

1.1 (顯示三條消息)編寫程序,顯示Welcome to Java、Welcome to Computer Science 和 Programming is fun。

package com.levelksk.chapter_1.training;
public class Training1_1 {
    public static void main(String[] args) {
        System.out.println("Welcome to Java");
        System.out.println("Welcome to Computer Science");
        System.out.println("Programming is fun");
    }
}

1.2 (顯示五條信息)編寫程序,顯示Welcome to Java 五次。

package com.levelksk.chapter_1.training;
public class Training1_2 {
    public static void main(String[] args) {
        System.out.println("Welcome to Java");
        System.out.println("Welcome to Java");
        System.out.println("Welcome to Java");
        System.out.println("Welcome to Java");
        System.out.println("Welcome to Java");
    }
}

*1.3 (顯示圖案)編寫一個程序,顯示下面的圖案:

     J     A     V     V     A
     J    A A     V   V     A A
J    J   AAAAA     V V     AAAAA
 J  J   A     A     V     A     A
package com.levelksk.chapter_1.training;
public class Training1_3 {
    public static void main(String[] args) {
        System.out.println("    J    A    V     V    A");
        System.out.println("    J   A A    V   V    A A");
        System.out.println("J   J  AAAAA    V V    AAAAA");
        System.out.println(" J J  A     A    V    A     A");
    }
}

1.4 (打印表格)編寫程序,顯示以下表格:

a     a^2    a^3
1     1      1
2     4      4
3     9      27
4     16     64
package com.levelksk.chapter_1.training;
public class Training1_4 {
    public static void main(String[] args) {
        System.out.println("a     a^2   a^3");
        System.out.println(1 + "     " + (1 * 1) + "     " + (1 * 1 * 1));
        System.out.println(2 + "     " + (2 * 2) + "     " + (2 * 2 * 2));
        System.out.println(3 + "     " + (3 * 3) + "     " + (3 * 3 * 3));
        System.out.println(4 + "     " + (4 * 4) + "     " + (4 * 4 * 4));
    }
}

1.5 (計算表達式)編寫程序,顯示以下公式的結果。

(9.5 x 4.5 - 2.5 x 3)÷(45.5 - 3.5)

package com.levelksk.chapter_1.training;

public class Training1_5 {
    public static void main(String[] args) {
        System.out.println((9.5 * 4.5 - 2.5 * 3) / (45.5 - 3.5));
    }
}

0.8392857142857143

1.6 (數列求和)編寫程序,顯示1+2+3+4+5+6+7+8+9的結果。

package com.levelksk.chapter_1.training;

public class Training1_6 {
    public static void main(String[] args) {
        System.out.println(1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9);
    }
}

45

1.7 (近似求p)可以使用以下公式計算p:π=4(1-1/3+1/5-1/7+1/9-1/11+...),編寫程序,顯示4(1-1/3+1/5-1/7+1/9-1/11)和4x(1-1/3+1/5-1/7+1/9-1/11+1/13)的結果。在程序中用1.0代替1。

package com.levelksk.chapter_1.training;

public class Training1_7 {
    public static void main(String[] args) {
        System.out.println(4 * (1.0 - 1.0 / 3 + 1.0 / 5 - 1.0 / 7 + 1.0 / 9 - 1.0 / 11));
        System.out.println(4 * (1.0 - 1.0 / 3 + 1.0 / 5 - 1.0 / 7 + 1.0 / 9 - 1.0 / 11 + 1.0 / 13));
    }
}

2.9760461760461765
3.2837384837384844

1.8 (圓的面積和周長)編寫程序,使用以下公式計算并顯示半徑為5.5的圓的面積和周長。

  • 周長 = 2 x 半徑 x π
  • 面積 = 半徑 x 半徑 x π
package com.levelksk.chapter_1.training;

public class Training1_8 {
    public static void main(String[] args) {
        System.out.println("周長 = " + (2 * 5.5 * 3.14));
        System.out.println("面積 = " + (5.5 * 5.5 * 3.14));
    }
}

周長 = 34.54
面積 = 94.985

1.9 (矩形的面積和周長)編寫程序,使用以下公式計算并顯示寬度為4.5,高度為7.9的矩形的面積和周長。

  • 面積 = 寬 x 高
package com.levelksk.chapter_1.training;

public class Training1_9 {
    public static void main(String[] args) {
        System.out.println("面積 = " + (4.5 * 7.9));
        System.out.println("周長 = " + (4.5 * 2 + 7.9 * 2));
    }
}

面積 = 35.550000000000004
周長 = 24.8

1.10 (以英里計的平均速度)假設一個跑步者45分鐘30秒內跑了14公里。便攜儀個程序顯示以每小時多少英里為單位的平均速度值。(注意,1英里等于1.6公里)。

package com.levelksk.chapter_1.training;

public class Training1_10 {
    public static void main(String[] args) {
        System.out.println("平均速度值為" + (14.0 / 1.6) / ((45.0 * 60 + 30) / (60 * 60)) + "英里每小時");
    }
}

平均速度值為11.538461538461538英里每小時

*1.11 (人口估算)美國人口調查局基于以下假設進行人口估算:

  • 每7秒有一個人誕生
  • 每13秒有一個人死亡
  • 每45秒有一個移民遷入

編寫一個程序,顯示未來5年的每年的人口數。假設當前的人口是312032486,每年有365天。提示:java中,兩個證書相除,結果還是整數,小樹部分被去掉。例如,5/4等于1(而不是1.25),10/4等于2(而不是2.5)。如果想得到有小樹部分的精確結果,進行處罰運算的兩個值之一必須是一個具有小數點的數值。例如,5.0/4等于1.25,10/4.0等于2.5。

package com.levelksk.chapter_1.training;

public class Training1_11 {
    public static void main(String[] args) {
        System.out.println(312032486 + (5 * 365 * 24 * 60 * 60 / 7) - (5 * 365 * 24 * 60 * 60 / 13) + (5 * 365 * 24 * 60 * 60 / 45));
    }
}

325932970

1.12 (以公里計的平均速度)假設一個跑步者1小時40分鐘35秒內跑了24英里。編寫一個程序顯示以每小時多少公里為單位的平均速度值。(注意,1英里等于1.6公里)。

package com.levelksk.chapter_1.training;

public class Training1_12 {
    public static void main(String[] args) {
        System.out.println("平均速度值為" + (24 * 1.6) * (60 * 60) / (60 * 60 + 40 * 60 + 35) + "公里每小時");
    }
}

平均速度值為22.906379453189732公里每小時

*1.13 (代數:求解2 x 2線性方程)可以使用Cramer規則解下面的2 x 2線性方程組:

  • ax + by =e
  • cx + dy = f
  • x = (ed-bf)/(ad-bc)
  • y = (af-ef)/(ad-bc)

編寫程序,求解以下方程組并顯示x和y的值。

  • 3.4x + 50.2y = 44.5
  • 21.x + 0.55y = 5.9
package com.levelksk.chapter_1.training;

public class Training1_13 {
    public static void main(String[] args) {
        double a = 3.4;
        double b = 50.2;
        double e = 44.5;
        double c = 2.1;
        double d = 0.55;
        double f = 5.9;
        System.out.println("x = " + (e * d - b * f) / (a * d - b * c));
        System.out.println("y = " + (a * f - e * c) / (a * d - b * c));
    }
}

x = 2.623901496861419
y = 0.7087397392563978
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,428評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,024評論 3 413
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,285評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,548評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,328評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,878評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,971評論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,098評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,616評論 1 331
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,554評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,725評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,243評論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,971評論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,361評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,613評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,339評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,695評論 2 370

推薦閱讀更多精彩內容