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

復習題

1.1 什么是硬件和軟件?

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

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

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

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

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

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

赫茲。

1.5 什么是比特?什么是字節(jié)?

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

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

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

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

千字節(jié)。

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

兆字節(jié)。

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

斷電后是否能繼續(xù)保存數(shù)據(jù)。內存不能,永久存儲設備能。

1.10 CPU能理解什么語言。

機器語言。

1.11 什么是匯編語言?

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

1.12 什么是匯編器?

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

1.13 什么是高級編程語言?

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

1.14 什么是源程序?

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

1.15 什么是解釋器?

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

1.16 什么是編譯器?

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

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

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

1.18 什么是操作系統(tǒng)?列出一些流行的操作系統(tǒng)。

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

1.19 操作系統(tǒng)的主要任務是什么?

  • 控制和監(jiān)控系統(tǒng)的活動
  • 分配和調配系統(tǒng)資源
  • 調度操作

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

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

1.21 Java是由誰發(fā)明的?哪個公司現(xiàn)在擁有Java?

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

1.22 什么是Java applet?

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

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

java,kotlin

1.24 什么是Java語言規(guī)范?

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

1.25 JDK代表什么?

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

1.26 IDE代表什么?

集成開發(fā)環(huán)境(Integrated Development Environment)。

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

  • 不是
  • 這些是方便進行java開發(fā)的開發(fā)工具,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字節(jié)碼文件后綴?

  • .java
  • .class

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

  • 源代碼
  • 字節(jié)碼

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

javac ****.java

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

java ****

1.37 什么是JVM?

java虛擬機,可以解釋java字節(jié)碼的程序

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

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

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

需要執(zhí)行的類名不存在

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

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

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

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 什么是語法錯誤(編譯錯誤)、運行時錯誤以及邏輯錯誤?

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

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

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

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

語法錯誤

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

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

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!");
    }
}

編程練習題

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

1.1 (顯示三條消息)編寫程序,顯示W(wǎng)elcome 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 (顯示五條信息)編寫程序,顯示W(wǎng)elcome 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 (數(shù)列求和)編寫程序,顯示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年的每年的人口數(shù)。假設當前的人口是312032486,每年有365天。提示:java中,兩個證書相除,結果還是整數(shù),小樹部分被去掉。例如,5/4等于1(而不是1.25),10/4等于2(而不是2.5)。如果想得到有小樹部分的精確結果,進行處罰運算的兩個值之一必須是一個具有小數(shù)點的數(shù)值。例如,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 (代數(shù):求解2 x 2線性方程)可以使用Cramer規(guī)則解下面的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
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容