復(fù)習(xí)題
1.1 什么是硬件和軟件袱贮?
硬件包括計(jì)算機(jī)中可以看得見的物理部分鸠真,軟件是看不見的指令呼巷,這些指令可以控制硬件并且使得硬件完成特定的任務(wù)掷豺。
1.2 列舉計(jì)算機(jī)的5個(gè)主要硬件組件捞烟。
cpu,內(nèi)存当船,硬盤坷襟,顯示器,鍵盤生年,鼠標(biāo)等等婴程。
1.3 縮寫“CPU”代表什么含義?
中央處理器抱婉,計(jì)算機(jī)的大腦档叔。
1.4 衡量CPU速度的單位是什么?
赫茲蒸绩。
1.5 什么是比特衙四?什么是字節(jié)?
- 比特(bit)是二進(jìn)制數(shù)患亿,0和1传蹈。
- 字節(jié)(byte)是計(jì)算機(jī)中最小的存儲(chǔ)單元,每個(gè)字節(jié)由8個(gè)比特構(gòu)成步藕。
1.6 內(nèi)存是用來做什么的惦界?RAM代表什么?為什么內(nèi)存稱為RAM咙冗?
- 內(nèi)存由一個(gè)有序的字節(jié)序列組成沾歪,用于存儲(chǔ)程序及程序需要的數(shù)據(jù)。
- RAM是隨機(jī)訪問存儲(chǔ)器的縮寫(Random-Access Memory)雾消。
- 因?yàn)閮?nèi)存可以按任意順序存取字節(jié)灾搏,所以被稱為RAM挫望。
1.7 用于衡量?jī)?nèi)存大小的單位是什么?
千字節(jié)狂窑。
1.8 用戶衡量磁盤大小的單位是什么媳板?
兆字節(jié)。
1.9 內(nèi)存和永久存儲(chǔ)設(shè)備的主要不同是什么泉哈?
斷電后是否能繼續(xù)保存數(shù)據(jù)拷肌。內(nèi)存不能,永久存儲(chǔ)設(shè)備能旨巷。
1.10 CPU能理解什么語言巨缘。
機(jī)器語言。
1.11 什么是匯編語言采呐?
匯編語言能用短的描述性單詞來表示每一條機(jī)器語言指令若锁,是一種低級(jí)語言。
1.12 什么是匯編器斧吐?
匯編器可以將匯編語言轉(zhuǎn)換成機(jī)器語言又固。
1.13 什么是高級(jí)編程語言?
很像英語煤率,易于學(xué)習(xí)和使用的編程語言稱為高級(jí)編程語言仰冠。
1.14 什么是源程序?
使用高級(jí)編程語言編寫的程序稱為源程序蝶糯。
1.15 什么是解釋器洋只?
解釋器會(huì)逐條讀取源代碼中的語言,并立刻翻譯成機(jī)器代碼或者虛擬機(jī)器代碼昼捍,然后立刻運(yùn)行识虚。
1.16 什么是編譯器?
編譯器是先將整個(gè)源代碼翻譯為機(jī)器代碼文件妒茬,然后再執(zhí)行該機(jī)器代碼文件担锤。
1.17 解釋語言和編譯語言之間的區(qū)別是什么?
- 解釋語言是在運(yùn)行的時(shí)候?qū)⒊绦蚍g成機(jī)器語言乍钻,效率比較低肛循,但是夸平臺(tái)性好,比如java和python银择。
- 編譯語言在程序執(zhí)行之前多糠,有一個(gè)單獨(dú)的編譯過程,將程序翻譯成機(jī)器語言就不再進(jìn)行翻譯了欢摄,效率高熬丧,比如C和C++笋粟。
1.18 什么是操作系統(tǒng)怀挠?列出一些流行的操作系統(tǒng)析蝴。
- 操作系統(tǒng)(Operating System, OS)是運(yùn)行在計(jì)算機(jī)上最重要的程序,它可以管理和控制計(jì)算機(jī)的活動(dòng)绿淋。
- 比較流行的有windows闷畸,linux,macos
1.19 操作系統(tǒng)的主要任務(wù)是什么吞滞?
- 控制和監(jiān)控系統(tǒng)的活動(dòng)
- 分配和調(diào)配系統(tǒng)資源
- 調(diào)度操作
1.20 什么是多道程序設(shè)計(jì)佑菩、多線程以及多處理。
- 多道程序設(shè)計(jì)允許多個(gè)程序通過共享CPU同時(shí)運(yùn)行
- 多線程運(yùn)行單個(gè)程序同時(shí)執(zhí)行多個(gè)任務(wù)
- 多處理(多進(jìn)程)也成為并行處理(parallel processing)裁赠,是指使用兩個(gè)或多個(gè)處理器共同并行執(zhí)行子任務(wù)殿漠,然后將子任務(wù)的結(jié)果合并以得到整個(gè)任務(wù)的結(jié)果。
1.21 Java是由誰發(fā)明的佩捞?哪個(gè)公司現(xiàn)在擁有Java绞幌?
- Java是由James Grosling在Sun公司領(lǐng)導(dǎo)的小組開發(fā)的。
- Oracle擁有Java一忱。
1.22 什么是Java applet莲蜘?
能在Web瀏覽器中運(yùn)行的Java程序稱為Java applet。
1.23 安卓使用的是什么編程語言帘营?
java票渠,kotlin
1.24 什么是Java語言規(guī)范?
Java語言規(guī)范(Java language specification)是對(duì)語言的技術(shù)定義芬迄,包括Java程序設(shè)計(jì)語言的語法和語義问顷。
1.25 JDK代表什么?
Java開發(fā)工具包(Java Development Toolkit)禀梳,是由一套獨(dú)立程序構(gòu)成的集合择诈,每個(gè)程序都是從命令行調(diào)用的,用于開發(fā)和測(cè)試java程序出皇。
1.26 IDE代表什么羞芍?
集成開發(fā)環(huán)境(Integrated Development Environment)。
1.27 類似NetBeans和Eclipse的工具是和Java是不同的語言嗎郊艘?或者它們是Java的方言或者擴(kuò)充荷科?
- 不是
- 這些是方便進(jìn)行java開發(fā)的開發(fā)工具,IDE纱注。
1.28 什么是關(guān)鍵字畏浆?列舉一些java關(guān)鍵字。
- java本身有特殊含義的單詞狞贱,不能再程序中用于其他目的刻获。
- class, static, void
1.29 java是大小寫敏感的嗎?java關(guān)鍵字是大寫還是小寫瞎嬉?
- 大小寫敏感
- 小寫
1.30 什么是注釋蝎毡? 編譯器會(huì)忽略注釋嗎厚柳?如何標(biāo)識(shí)一行注釋以及一段注釋?
- 主要用于說明程序是干什么的
- 會(huì)忽略
- // 以及 /* */
1.31 在控制臺(tái)顯示一個(gè)字符串的語句是什么沐兵?
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 運(yùn)行java程序的命令是什么?
java ****
1.37 什么是JVM毁靶?
java虛擬機(jī)胧奔,可以解釋java字節(jié)碼的程序
1.38 java可以運(yùn)行在任何機(jī)器上嗎?在一臺(tái)計(jì)算機(jī)上運(yùn)行java需要什么预吆?
- 可以葡盗,只要裝有java虛擬機(jī)
- 需要java虛擬機(jī)
1.39 如果運(yùn)行程序的時(shí)候出現(xiàn)NoClassDefFoundError錯(cuò)誤,是什么原因?qū)е铝诉@個(gè)錯(cuò)誤啡浊?
需要執(zhí)行的類名不存在
1.40 如果運(yùn)行程序的時(shí)候出現(xiàn)NoSuchMethodError錯(cuò)誤觅够,是什么原因?qū)е铝诉@個(gè)錯(cuò)誤?
沒有main方法或者敲錯(cuò)了main方法
1.41 使用行尾括號(hào)風(fēng)格巷嚣,將下面的程序根據(jù)程序設(shè)計(jì)風(fēng)格和文檔指南進(jìn)行重新格式化喘先。
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 什么是語法錯(cuò)誤(編譯錯(cuò)誤)、運(yùn)行時(shí)錯(cuò)誤以及邏輯錯(cuò)誤廷粒?
- 在編譯過程中出現(xiàn)的錯(cuò)誤稱為語法錯(cuò)誤(syntax error)或編譯錯(cuò)誤(compile error)窘拯。
- 引起程序非正常中斷的錯(cuò)誤叫運(yùn)行時(shí)錯(cuò)誤(runtime error)。
- 當(dāng)程序沒有按預(yù)期的方式執(zhí)行時(shí)就會(huì)產(chǎn)生邏輯錯(cuò)誤(logic error)坝茎。
1.43 給出語法錯(cuò)誤涤姊、運(yùn)行時(shí)錯(cuò)誤以及邏輯錯(cuò)誤的示例。
- 少關(guān)鍵字
- 1除以0的場(chǎng)景
- 小數(shù)點(diǎn)計(jì)算中給的都是整形數(shù)字導(dǎo)致計(jì)算結(jié)果不正確
1.44 如果忘記為字符串加引號(hào)了嗤放,將產(chǎn)生哪類錯(cuò)誤思喊?
語法錯(cuò)誤
1.45 如果程序需要讀取整數(shù),而用戶輸入了字符串次酌,運(yùn)行該程序的時(shí)候?qū)a(chǎn)生什么錯(cuò)誤恨课?這是哪類錯(cuò)誤?
- 類型不符錯(cuò)誤岳服。
- 運(yùn)行時(shí)錯(cuò)誤剂公。
1.46 假設(shè)編寫一個(gè)計(jì)算矩形周長(zhǎng)的程序,但是錯(cuò)誤地?cái)y程了計(jì)算矩形面積的程序吊宋。這屬于哪類錯(cuò)誤纲辽?
邏輯錯(cuò)誤。
1.47 指出和修改下面代碼中的錯(cuò)誤:
public class Welcome {
public void Main(String[] args) {
System.out.println("Welcome to Java!);
}
}
錯(cuò)誤有缺少關(guān)鍵字static,main首字母不應(yīng)該大寫拖吼,缺少雙引號(hào)鳞上。
修改后:
public class Welcome {
public static void main(String[] args) {
System.out.println("Welcome to Java!");
}
}
編程練習(xí)題
分為容易(沒有星號(hào))、適中(一顆星)绿贞、難(兩顆星)以及具有挑戰(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 (顯示圖案)編寫一個(gè)程序拒名,顯示下面的圖案:
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 (計(jì)算表達(dá)式)編寫程序芋酌,顯示以下公式的結(jié)果增显。
(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的結(jié)果脐帝。
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)可以使用以下公式計(jì)算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)的結(jié)果堵腹。在程序中用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 (圓的面積和周長(zhǎng))編寫程序,使用以下公式計(jì)算并顯示半徑為5.5的圓的面積和周長(zhǎng)疚顷。
- 周長(zhǎng) = 2 x 半徑 x π
- 面積 = 半徑 x 半徑 x π
package com.levelksk.chapter_1.training;
public class Training1_8 {
public static void main(String[] args) {
System.out.println("周長(zhǎng) = " + (2 * 5.5 * 3.14));
System.out.println("面積 = " + (5.5 * 5.5 * 3.14));
}
}
周長(zhǎng) = 34.54
面積 = 94.985
1.9 (矩形的面積和周長(zhǎng))編寫程序旱易,使用以下公式計(jì)算并顯示寬度為4.5,高度為7.9的矩形的面積和周長(zhǎng)腿堤。
- 面積 = 寬 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("周長(zhǎng) = " + (4.5 * 2 + 7.9 * 2));
}
}
面積 = 35.550000000000004
周長(zhǎng) = 24.8
1.10 (以英里計(jì)的平均速度)假設(shè)一個(gè)跑步者45分鐘30秒內(nèi)跑了14公里阀坏。便攜儀個(gè)程序顯示以每小時(shí)多少英里為單位的平均速度值。(注意笆檀,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)) + "英里每小時(shí)");
}
}
平均速度值為11.538461538461538英里每小時(shí)
*1.11 (人口估算)美國(guó)人口調(diào)查局基于以下假設(shè)進(jìn)行人口估算:
- 每7秒有一個(gè)人誕生
- 每13秒有一個(gè)人死亡
- 每45秒有一個(gè)移民遷入
編寫一個(gè)程序,顯示未來5年的每年的人口數(shù)酗洒。假設(shè)當(dāng)前的人口是312032486浸船,每年有365天。提示:java中寝蹈,兩個(gè)證書相除李命,結(jié)果還是整數(shù),小樹部分被去掉箫老。例如封字,5/4等于1(而不是1.25),10/4等于2(而不是2.5)。如果想得到有小樹部分的精確結(jié)果阔籽,進(jìn)行處罰運(yùn)算的兩個(gè)值之一必須是一個(gè)具有小數(shù)點(diǎn)的數(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 (以公里計(jì)的平均速度)假設(shè)一個(gè)跑步者1小時(shí)40分鐘35秒內(nèi)跑了24英里。編寫一個(gè)程序顯示以每小時(shí)多少公里為單位的平均速度值在辆。(注意证薇,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) + "公里每小時(shí)");
}
}
平均速度值為22.906379453189732公里每小時(shí)
*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