《Java黑皮书基础篇第10版》 第1章【习题】

Java语言程序设计 习题

第一章

1.2习题
什么是硬件和软件?

计算机是由软件和硬件组成的,硬件是摸得到的部分,软件提供看不见的指令,这些指令控制硬件完成任务

列举计算机的5个主要硬件组件

中央处理器、内存、储存设备、输入/输出设备、通信设备

缩写 “CPU” 代表什么含义?

中央处理器(Central Processing Unit)

衡量CPU速度的单位是什么?

Hz

什么是比特?什么是字节?

1个比特是0或1的数字,1个字节由8个比特组成

内存是用来做什么的?RAM代表什么?为什么内存称为RAM?

内存用来给CPU执行储存数据,RAM是Random-Access Memory随机访问存储器,因为内存可以按照任意顺序存取字节,所以叫做RAM

用于衡量内存大小的单位是什么?

GB

用于衡量磁盘大小的单位是什么?

GB、TB

内存和永久存储设备的主要不同是什么?

内存是一种易失的数据保护形式,当计算机断电时,内存的数据就会清空,程序和数据会被永久存放在永久储存设备上,需要时再移入内存

1.3习题
CPU能理解什么语言?

CPU只能理解机器语言

什么是汇编语言?

汇编语言是机器语言的一个进步,用一些短小的英文单词(助记符,如add,sub)让人类可以方便高效的编写程序

什么是汇编器?

把汇编语言翻译成机器语言

什么是高级编程语言?

现代编程使用的语言,有很多种类,Java就是一种

什么是源程序?

用高级语言编写的代码就是源程序

什么是解释器?

解释器读取源文件中的1条语句,翻译成机器代码后立刻运行

什么是编译器?

编译器将整个源文件翻译成机器代码文件,然后由执行器执行

解释语言和编译语言之间的区别是什么?

编译型语言使用编译器生成可执行文件,如exe,再进入操作系统执行,可执行文件不可以跨平台,源代码也不可以跨平台,源代码无需开源

解释型语言通过解释器逐句翻译成机器代码直接执行,源代码可以跨平台,且需要开源

1.4习题
什么是操作系统?列出一些流行的操作系统

管理和控制计算机的活动,如Microsoft Windows,Mac OS,Linux

操作系统的主要任务是什么?

控制和监视系统的活动,如输入输出设备、文件管理、安全处理

分配和调配系统资源,如硬件

调度操作,如多道程序设计、多线程以及多处理

什么是多道程序设计、多线程以及多处理?

多道程序设计是计算机在同一时刻可以运行多个软件

多线程是运行1个软件时可以处理不同的命令

多处理是2个或多个处理器共同执行子任务并将结果整合得到总结果

1.5习题
Java是由谁发明的?哪个公司现在拥有Java?

詹姆斯·高斯林,现在甲骨文Oracle公司拥有Java

什么是Java applet?

是可以内嵌在html的图形用户界面Java小程序

安卓使用的是什么编程语言?

Java

1.6习题
什么是Java语言规范?

定义了Java的语法和语义

JDK代表什么?

包括了JRE和编译器等

IDE代表什么?

集成开发环境,用来将编辑、编译、链接、测试等都集中在一个图形用户界面中的程序

类似NetBeans和Eclipse的工具是和Java不同的语言吗?或者它们是Java的方言或者扩充?

他们只是IDE

1.7习题
什么是关键字? 列举一些Java关键字

对编译器有特殊含义的单词,如class,public,static,void

Java是大小写敏感的吗? Java关键字是大写还是小写?

Java是大小写敏感的,关键字小写

什么是注释? 编译器会忽略注释吗? 如何标识一行注释以及一段注释?

解释源代码的语句,注释不是程序设计语句,编译器会忽略注释

行注释用//表示

块注释用/*开头

*/结尾

在控制台上显示一个字符串的语句是什么?

System.out.print();

给出以下代码的输出:
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.8习题
什么是 Java 源程序的文件后缀名,什么是Java宇节码文件后缀?

.java和.class

Java 编译器的输人和输出是什么?

输入是源文件,输出是字节码文件

编译 Java 程序的命令是什么?

javac class.java

运行 Java 程序的命令是什么?

java class

什么是 JVM ?

Java虚拟机,将字节码中单独的1步翻译解释成机器语言执行

Java 可以运行在任何机器上吗?在一台计算机上运行 Java 需要什么?

可以,需要JDK

如果运行程序的时候出现 NoClassDefFoundError 错误,是什么原因导致了这个错误?

没有定义这个class

如果运行程序的时候出现 NoSuchMethodError 错误,是什么原因导致了这个错误?

没有定义这个方法

1.9习题

使用行尾括号风格,将下面的程序根据程序设计风格和文档指南进行重新格式化。

public class Test
{// Main methodpublic static void main(String[] args) {
 	/** Display output */System.out.println("Welcome to Java");}
}
public class Test{// Main methodpublic static void main(String[] args) {
 	/** Display output */System.out.println("Welcome to Java");}
}
1.10习题
什么是语法错误(编译错误)、运行时错误以及逻辑错误?

在编译过程中出现的错误称为语法错误(syntax error)或编译错误(compile error)

运行应用程序时,当环境检测到一个不可能执行的操作时,就会出现运行时错误

当程序没有按预期的方式执行时就会发生逻辑错误(logic error)

给出语法错误、运行时错误以及逻辑错误的示例

语法错误:编译时忘记写括号

运行时错误:希望用户输入数字,但是用户输入了字符串

逻辑错误:希望计算5/3,但是/只返回商

如果忘记为字符串加引号了,将产生哪类错误?

语法错误

如果程序需要读取整数,而用户输人了字符串,运行该程序的时候将产生什么错误? 这是哪类错误

运行时错误

假设编写一个计算矩形周长的程序,但是错误地写成了计算矩形面积的程序。这属于哪类错误?

逻辑错误

指出和修改下面代码中的错误:
public class Welcome{public void Main(String[] args){System.out.println('Weicome to Java!);}
}

Main方法应该小写

没有定义static

字符串""残缺

编程练习题

(显示三条消息)编写程序,显示Welcome to Java、Welcome to Computer Science和 Programming is fun

public class Main{
	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");
	} 
}
Welcome to Java
Welcome to Computer Science
Programming is fun

(显示五条消息)编写程序,显示 Welcome to Java 五次。

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

(显示图案)编写一个程序,显示下面的图案:

public class Main{
	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");
	}
}
    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

(打印表格)编写程序,显示以下表格:

public class Main{
	public static void main(String[] args){
		System.out.println("a     a^2    a^3");
		System.out.println("1     1      1");
		System.out.println("2     4      8");
		System.out.println("3     9      27");
		System.out.println("4     16     64");
	}
}
a     a^2    a^3
1     1      1
2     4      8
3     9      27
4     16     64

(计算表达式)编写程序,显示以下公式的结果 9.5 × 4.5 − 2.5 × 3 45.5 − 3.5 \frac{9.5 \times 4.5 - 2.5 \times 3}{45.5-3.5} 45.53.59.5×4.52.5×3

public class Main{
	public static void main(String[] args){
    //除号前后都要有括号,保证是作为一个整体分子/分母进行运算
		System.out.println((9.5 * 4.5 - 2.5 * 3) / (45.5-3.5));
	}
}
0.8392857142857143

(数列求和)编写程序,显示 1+2+3+4+5+6+7+8+9的结果

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

(近似求 p)编写程序,显示 4 × ( 1 − 1 3 + 1 5 − 1 7 + 1 9 − 1 11 ) 4\times({1-\frac{1}{3}+\frac{1}{5}-\frac{1}{7}+\frac{1}{9}-\frac{1}{11}}) 4×(131+5171+91111) 4 × ( 1 − 1 3 + 1 5 − 1 7 + 1 9 − 1 11 + 1 13 ) 4\times({1-\frac{1}{3}+\frac{1}{5}-\frac{1}{7}+\frac{1}{9}-\frac{1}{11}+\frac{1}{13}}) 4×(131+5171+91111+131)的结果

public class Main{
	public static void main(String[] args){
		//每一次除法运算都要使用1.0,因为整数相除默认取余数
		System.out.println(4 * (1 - 1.0/3 + 1.0/5 - 1.0/7 + 1.0/9 - 1.0/11));
		System.out.println(4 * (1 - 1.0/3 + 1.0/5 - 1.0/7 + 1.0/9 - 1.0/11 + 1.0/13));
	}
}
2.9760461760461765
3.2837384837384844

(圆的面积和周长)编写程序,使用以下公式计算并显示半径为5.5的圆的面积和周长

public class Main{
	public static void main(String[] args){
		double r = 5.5;
		System.out.println(Math.PI * 2 * r);
		System.out.println(Math.PI * r * r);
	}
}
34.55751918948772
95.03317777109123

(矩形的面积和周长)编写程序,使用以下公式计算并显示宽度为4.5、高度为7.9的矩形的面积和周长。

public class Main{
	public static void main(String[] args){
		System.out.println(4.5 + 4.5 + 7.9 + 7.9);
		System.out.println(4.5 * 7.9);
	}
}
24.799999999999997
35.550000000000004

(以英里计的平均速度)假设一个跑步者45分钟30秒内跑了14公里,编写一个程序显示以每小时多少英里为单位的平均速度值。(注意,1英里等于1.6 公里。)

public class Main{
	public static void main(String[] args){
		System.out.println((14 / 1.6) / (45.5 / 60));
	}
}
11.538461538461538
(人口估算)美国人口调査局基于以下假设进行人口估算:
• 每 7 秒有一个人诞生
• 每13 秒有一个人死亡

• 每 45 秒有一个移民迁人

编写一个程序,显示未来 5 年的每年的人口数。假设当前的人口是 312 032 486, 每年有 365 天
public class Main{
	public static void main(String[] args){
    //不可以使用小数相乘/除,因为人口没有小数,只能取整
		System.out.println("第一年: " + 365 * (86400/7 - 86400/13 + 86400/45));
		System.out.println("第二年: " + 365 * 2 * (86400/7 - 86400/13 + 86400/45));
		System.out.println("第三年: " + 365 * 3 * (86400/7 - 86400/13 + 86400/45));
		System.out.println("第四年: " + 365 * 4 * (86400/7 - 86400/13 + 86400/45));
		System.out.println("第五年: " + 365 * 5 * (86400/7 - 86400/13 + 86400/45));
	}
}
第一年: 2779840
第二年: 5559680
第三年: 8339520
第四年: 11119360
第五年: 13899200

(以公里计的平均速度)假设一个跑步者1小时40分钟35秒内跑了24英里。编写一个程序显示以每小时多少公里为单位的平均速度值。(注意,1 英里等于 1.6 公里 )

public class Main{
	public static void main(String[] args){
		double hour = (40 * 60 + 35) / 3600.0;
		System.out.println((24 * 1.6) / hour);
	}
}
56.772073921971256

(代数: 求解 2 x 2线性方程)可以使用 Cramer 规则解下面的 2 x 2 线性方程组

ax + by = e e e

cx + dy = f f f

x x x = e d − b f a d − b c \frac{ed - bf}{ad-bc} adbcedbf y y y = a f − e c a d − b c \frac{af - ec}{ad-bc} adbcafec

编写程序,求解以下方程组并显示x和y的值。

public class Main{
   public static void main(String[] args){
   	double x = (44.5 * 0.55 - 50.2 * 5.9) / (3.4 * 0.55 - 50.2 * 2.1);
   	double y = (3.4 * 5.9 - 44.5 * 2.1) / (3.4 * 0.55 - 50.2 * 2.1);
   	System.out.print("x is " + x + ", and y is " + y);
   }
}
x is 2.623901496861419, and y is 0.7087397392563978
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值