Java程序设计课后练习答案

  • 格式:doc
  • 大小:217.50 KB
  • 文档页数:27

来源于网络 《Java程序设计》课后练习答案

第一章 Java概述

一、选择题

1. ( A )是在Dos命令提示符下编译Java程序的命令,( B )是运行Java程序的命令。

A. javac

B. java

C. javadoc

D. javaw

2. ( D )不是Java程序中有效的注释符号。

A. //

B. /* */

C. /** */

D. */ */

3. ( B )不是Java语言的特点。

A. 面向对象

B. 自动检查语法错误

C. 跨平台

D. 解释执行

4. Java编译器会将Java程序转换为( C )

A. 可执行代码

B. 目标代码

C. 字节码

D. 机器代码

5. Java源文件的扩展名是( D )

A. .class B. .jar C. .jav D. .java

二、简答题

1、 Java的跨平台的含义是什么?为什么Java可以跨平台?

Java语言的一个非常重要的特点就是平台无关性。它是指用Java编写的应用程序编译后不用修改就可在不同的操作系统平台上运行。Java之所以能平台无关,主要是依靠Java虚拟机(JVM)来实现的。JVM是一种抽象机器,它附着在具体操作系统之上,本身具有一套虚机器指令,并有自己的栈、寄存器组等。

Java编程人员在编写完Java程序后,Java编译器将Java源代码文件编译后生成字节码文件(一种与操作系统无关的二进制文件)。字节码文件通过Java虚拟机(JVM)里的类加载器加载后,经过字节码校验,由解释器解释成当前电脑的操作系统能够识别的目标代码并最终运行。以下图展示了Java程序从编译到最后运行的完整过程。

2、 简述Java语言的特点

Java具有以下特点:

1)、 简单性

Java语言的语法规则和C语言非常相似,只有很少一部分不同于C语言,并且Java还舍弃了C语言中复杂的数据类型(如:指针和结构体),因此很容易入门和掌握。

2)、 可靠性和安全性

来源于网络 Java从源代码到最终运行经历了一次编译和一次解释,每次都有进行检查,比其它只进行一次编译检查的编程语言具有更高的可靠性和安全性。

3)、 面向对象

Java是一种完全面向的编程语言,因此它具有面向对象编程语言都拥有的封装、继承和多态三大特点。

4)、 平台无关和解释执行

Java语言的一个非常重要的特点就是平台无关性。它是指用Java编写的应用程序编译后不用修改就可在不同的操作系统平台上运行。Java之所以能平台无关,主要是依靠Java虚拟机(JVM)来实现的。Java编译器将Java源代码文件编译后生成字节码文件(一种与操作系统无关的二进制文件)。字节码文件通过Java虚拟机(JVM)里的类加载器加载后,经过字节码校验,由解释器解释成当前电脑的操作系统能够识别的目标代码并最终运行。下图展示了Java程序从编译到最后运行的完整过程。

5)、 分布式

分布式包括数据分布和操作分布,而Java支持WWW客户机/服务器计算模式,因此也支持这两种分布式。

6)、 多线程

Java在两方面支持多线程。一方面,Java环境本身就是多线程的。若干个系统线程运行负责必要的无用单元回收,系统维护等系统级操作;另一方面,Java语言内置多线程控制,可以大大简化多线程应用程序开发。如果操作系统本身不支持多线程,Java的多线程特性可能就表现不出来。

三、综合编程题

1、 请编写一个简单的Java程序能够输出“这是我的第一个Java程序”。(注意为程序添加合适的注释和文档注释)。

/**

* 第一个java程序

*/

public class Demo {

/**

* main方法,程序的起点

*/

public static void main (String[] args) {

//向控制台输出

这是我的第一个Java程序");

}

}

第二章 Java语法基础

一、选择题

1. 下面哪个单词是Java语言的关键字( B )?

A. Double B. this C. string D. bool

2. 下面属于Java关键字的是( D )。

A. NULL B. IF C. Do D. goto

来源于网络 3. 在启动Java应用程序时可以通过main( )方法一次性地传递多个参数。如果传递的参数有多个,可以用空格将这些参数分割;如果某一个参数本身包含空格,可以使用( B )把整个参数引起来。

A. 单引号 B. 双引号

4. 下面哪个是Java语言中正确的标识符( BD )。

A. 5x B. $x C. abc@ D. com

5. Java语言中,下列标识符错误的是( D )。

A. _abc B. abc C. ABC D. 5abc

6. 在Java中,整型常量不可以是( A )。

A. double B. Long C. int D. byte

7. 在Java中,不属于整数常量的是( D )。

A. 100 B. 100L C. 0x100A D. 6.0f

8. 下面哪个语句能定义一个字符变量chr( B )。

A. char chr=’abcd’; B. char chr=’\uabcd’;

C. char chr=”abcd”; D. char chr=\uabcd;

9. 下面哪个是对字符串s1的不正确定义( CD )。

A. String s1=”abcd”; B. String s1;

C. String s1=‘abcd\0’; D. String s1=”\abcd”;

10. 下面哪个范围是char型的取值范围( C )。

A. -256 ~ 255 B. - (2^15) ~ (2^15)-1 C. \u0000’ ~ ‘\uffff’ D. 0~32767

11. 下面哪条语句不能定义一个float型的变量f1( ABD )。

A. float f1= 3.1415E10 B. float f1=3.14 C. float f1=3.1415F D. f1=3.14F

12. 下列运算结果为float的是( C )。

A. 100/10 B. 100*10 C. 100.0+10 D. 100-10

13. 数组中可以包含什么类型的元素( D )。

A. int型 B. string型 C. 数组 D. 以上都可以

14. Java中定义数组名为xyz,下面哪项可以得到数组元素的个数( B )。

A. xyz.length( ) B. xyz.length C. len(xyz) D. ubound(xyz)

15. 下面哪条语句定义了3个元素的数组( A )。

A. int [ ] a={20,30,40}; B. int a [ ]=new int(3); C. int [3] array; D. int [ ] arr;

二、简答题

1、 Java有哪些基本的数据类型?写出这些基本数据类型所占用的最大空间(用字节描述)。

(1)数字型 (number),具体又分为:

a.整型 (integers),整型又包括:

①字节整数 (byte, 8 bits)

②短整数 (short, 16 bits)

③整数 (int, 32 bits)

④长整数 (long, 64 bits)

b.实型 (real numbers),具体又分为:

①单精度(float, 32 bits)

②双精度(double, 64 bits)

(2)字符型 (char, 16-bit Unicode字符)

(3)布尔型 (boolean)。

2、 说明Java字符编码的类型与特点。

Java字符编码的类型为Unicode,具有以下特点:

(1)Unicode是16比特的字符编码,其支持当前世界上绝大多数的语言;

来源于网络 (2)Unicode给每个字符提供了一个唯一的编码表示,不论是什么平台、程序或语言;

(3)Windows系统(Windows 2000版本)、Java、XML、LDAP等已支持Unicode;

(4)Unicode实现了ISO/IEC 10646标准;

3、 写出Java中六个常用的转义字符。

\b 退格

\t 制表符

\n 换行 (Newline)

\r 回车 (Carriage return)

\' 单引号

4、 下面的几个标示符哪些是正确的,哪些是错误的,如果是错误的,请说明原因。

MyClass, _isHis, 3JavaProgram, _$asdf, Java-Visual-Machine

MyClass:正确,符合标识符的组成规则。

_isHis:正确,符合标识符的组成规则。

3JavaProgram:错误,因为第1个符号不能为数字。

_$asdf:正确,符合标识符的组成规则。

Java-Visual-Machine:错误,标识符不能为保留字。

5、 说出常量与变量的定义并举例说明。

常量是指程序执行过程中,值保持不变的量,类型划分如下:

 整型常量

 实型常量

 布尔型常量

 字符型常量

 字符串常量

如整型常量:

起 始 最大整数(正) 最大长整数(正) 举 例

十进制 0,1~9 23, +567,

-12,0,1234

八进制 0 034,0175,

-0777L

十六进制 0x 0x7FFFFFFF 0x7FFFFFFFFFFFFFFFL 0xFF, 0x45L

变量是指在程序执行过程中,值可以改变的量,类型划分为:整型变量、实型变量、字符型变量、字符串变量、布尔变量等。如:int x=2,就定义了一个整型变量x并且赋值为2。

6、 什么是强制类型转换?并说明其运用场合。

显型类型转换是强制类型转换,它是一种窄化转换 (narrowing conversion),如:

double a = 1.5;

float b = a;

编译: "possible loss of precision"

数据精度丢失,数据丢失。

强制类型转换一般运用在

二元运算符的二个操作数类型不同

表达式值的类型与变量的类型不同

7、 描述Java程序的构成。如何判断Java程序的主类?下面的程序有哪些错误并改正,该程序的源代码应当保存为什么名字的文件?