JAVA各章习题及答案

更新时间:2023-12-08 16:35:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

面向对象程序设计—Java 语言习题答案

第 1 章

一、选择题

1.下列选项中,不属于 Java 语言特点的一项是( C )。

(A)分布式 (B)安全性

(C)编译执行 (D)面向对象

【解析】Java 程序采用解释执行的方法。在系统编译运行 Java 程序时,Java 编译器将 Java 程序转化为字节码,在运行时,解释器将编译得到的字节码进行解释执行。 2.在 Java 语言中,( C )是最基本的元素?

(A)方法 (B)包 (C)对象 (D)接口

【解析】构成 Java 程序的基本元素类(抽象的对象)。3.编译一个定义了 3 个类和 10 个方法的 Java 源文件后,会产生( D )个字节码文件?扩展名是( D )?

(A)13 个字节码文件,扩展名为.class (B)1 个字节码文件,扩展名为.class (C)3 个字节码文件,扩展名为.java (D)3 个字节码文件,扩展名为.class 【解析】源文件中的每一个类编译后都会生成一个字节码文件,字节码文件的扩展名 是.class。

4.在创建 Applet 应用程序时,需要用户考虑问题是( B )。

(A)窗口如何创建 (B)绘制的图形在窗口中的位置 (C)程序的框架 (D)事件处理

【解析】创建 Applet 程序时必须继承系统类 Applet,而 Applet 类中已经包含了如何创建窗口以及事件处理等内容,这类程序的框架也都是固定的,而绘制图形在窗口中的位置则 需要由用户确定。

5.Java 语言属于( B )种语言?

(A)面向机器的语言 (B)面向对象的语言 (C)面向过程的语言 (D)面向操作系统的语言 【解析】Java 语言是一种纯面向对象的语言。

6.下列关于 Application 和 Applet 程序的说法中不正确的一项是( B )。

(A)Application 使用解释器 java.exe (B)Application 不使用独立的解释器 (C)Applet 在浏览器中运行 (D)Applet 必须继承 Java 的 Applet 类 【解析】Application 程序包含 main()方法,它是一种独立执行的程序,因此必须使用独立的解释器解释执行。

7.下列选项中,不属于 Java 核心包的一项是( A )。

(A)javax.swing (B)java.io (C)java.utile (D)java.lang

【解析】凡是以 java 开头的包都是 Java 核心包,以 javax 开头的包则属于 Java 扩展包。 8.下列描述中,不正确的是( A )。

(A)不支持多线程

(B)一个 Java 源文件不允许有多个公共类

1

(C)Java 通过接口支持多重继承 (D)Java 程序分为 Application 和 Applet 两类

【解析】Java 是支持多线程的语言。

9.阅读下列代码,选出该代码段正确的文件名( C )。

class A{

void method1(){

System.out.println(\} }

public class B{

void method2(){

System.out.println(\}

public static void main(String[]

args){ System.out.println(\class B\} }

(A)A.java (B)A.class

(C)B.java (D)B.class

【解析】Java 源文件名必须和公共类的名字完全一样,源文件的扩展名为.java。 10.编译下面源程序会得到哪些文件( D )?

class A1{ }

class A2{ }

public class B{

public static void main(String[] args){ } }

(A)只有 B.class 文件

(B)只有 A1.class 和 A2.class 文件

(C)编译不成功 (D)A1.class、A2.class 和 B.class 文件

【解析】由于该程序包含 3 个类,每个类编译后都会生成 1 个字节码文件,因此编译后 会生成以这 3 个类名命名的字节码文件。 二、填空题

1.Java 程序的编译和执行模式包括 2 点,是 半编译 和 半 解释 。 2.Java 语言支持 TCP/IP 协议,从而使得 Java 程序在分布式环境中能够很方便地访问处于不同地点的 对象 。 3.开发 Java 程序的一般步骤是:源程序编辑、 生成字节码 和 解释执行 。

4.每个 Java Application 程序可以包括许多方法,但是必须有且只能有一个 main() 方法, 统一格式为 public static void main(String[] args) ,它是程序执行的入口。 5.JVM 把字节码程序与各种不同的 操作系统 和 硬件 分开,使得 Java 程序独立于平台。 6.在 Java 程序中,能在 WWW 浏览器上运行的是 Applet 程序。 7.Java 源程序文件和字节码文件的扩展名分别为 .java 和 .class 。

8.如果在 Java 程序中需要使用 java.utile 包中的所有类,则应该在程序开始处加上 import java.utitle.* 语句。

2

三、编程题

1.编写一个 Java Application 类型的程序,输出“This is my first Java Application!”。 【编程分析】 要编写 Java Application 类型的程序, 需要在 JCreator 中创建一个 Java

Application 类型的工程,这时 JCreator 会自动创建程序框架,该框架包含一个公共类,其中包含一个 main()方法。删除 main()方法中自动生成的代码,编写自己的代码即可。由于该程序要求输出一句话,因此在 main()方法中直接调用 System.out.println()或 System.out.print() 方法即可实现。

【参考程序】

public class X3_1 {

public static void main(String

args[]){ System.out.println(\Application!\} } 【运行结果】

This is my first Java Application!

2.编写一个 Java Applet 类型的程序,输出“这是我的第一个 Java Applet 类型的程序”。 【编程分析】 要编写一个 Java Applet 类型的程序,首先利用 JCreator 创建一个 Java Applet 类型的工程,该工程自动创建两个文件,一个源文件(.java 文件)和一个 HTML 文件(.html 文件),源文件中包含一个公共类,其中包含两个方法,即 init()方法和 paint()方法,由于该程序只是要求输出一句话,因此只要将 paint()方法中 g.drawString()方法的第一个参数修改为要输出的内容即可。如果不是利用 JCreator 开发工具,而是利用 J2SDK,则用户需要自己编写 HTML 文件。

【参考程序】

import java.awt.*; import java.applet.*;

public class X3_2 extends Applet

{ public void paint(Graphics g) {

g.drawString(\这是我的第一个 Java Applet 类型的程序\} }

【运行结果】

3

第 2 章

一、选择题

1.下列( D )是合法的标识符?

(A)12class (B)void (C)-5 (D)_blank 【解析】根据 Java 标识符的构成规则确定。 2.下列( B )不是 Java 中的保留字?

(A)if (B)sizeof (C)private (D)null 【解析】根据 Java 保留字表进行选择。 3.下列( C )不是合法的标识符?

(A)$million (B)$_million (C)2$_million (D)$2_million 【解析】根据 Java 标识符的构成规则确定。 4.下列选项中,( B )不属于 Java 语言的基本数据类型?

(A)整数型 (B)数组 (C)浮点型 (D)字符型 【解析】根据 Java 语言的基本数据类型包含的类别选取。 5.下列关于基本数据类型的说法中,不正确的一项是( D )。

(A) boolean 类型变量的值只能取真或假 (B) float 是带符号的 32 位浮点数 (C) double 是带符号的 64 位浮点数 (D) char 是 8 位 Unicode 字符

【解析】Java 中的字符采用的是 16 位的 Unicode 字符。

6.下列关于基本数据类型的取值范围的描述中,正确的一个是( B )。

(A)byte 类型的取值范围是-128~128 (B)boolean 类型的取值范围是真或假 (C)char 类型的取值范围是 0~65536 ( D ) short 类型的取值范围是-32767 ~ 32767

【解析】根据每种类型占几个字节即可推算出其取值范围,如 byte 类型占 1 个字节, 即共包含 28 个数值,其取值范围范围应为-128~127,其他类型也是如此。7.下列关于 Java 语言简单数据类型的说法中,正确的一项是( A )。

(A)以 0 开头的整数代表 8 进制整型常量

(B)以 0x 或 0X 开头的整数代表 8 进制整型常量 (C) boolean 类型的数据作为类成员变量的时候,相同默认的初始值为 true (D) double 类型的数据占计算机存储的 32 位 【解析】根据每种数据类型的特性进行判断。 8.下列 Java 语句中,不正确的一项是( C )。

(A)$e, a, b = 10; (B)char c, d = ‘a’; (C)float e = 0.0d; (D)double c = 0.0f; 【解析】不能将 double 类型的常量赋值给 float 类型的变量。

9.在编写 Java 程序时,如果不为类的成员变量定义初始值,Java 会给出它们的默认值,下列说法中不正确的一个是( D )。

(A)byte 的默认值是 0 (B)boolean 的默认值是 false (C)char 类型的默认值是’\\0’ (D)long 类型的默认值是 0.0L 【解析】long 类型的默认值是 0L,而不是 0.0L。 10.下列语句中不正确的一个是( B )。

4

(A)float f = 1.1f; (B)byte b = 128;

(C)double d = 1.1/0.0; (D)char c = (char)1.1f; 【解析】bytel 类型变量的取值范围是-128~127。 11.下列表达式 1+2+ \的值是( B )。

(A)\(B)\(C)\(D)\

【解析】整数和整数相加得到两个整数的和,而整数和字符串相加得到的是字符串。 12.已知 y=2, z=3, n=4,则经过 n=n+ -y*z/n 运算后 n 的值为( A )。

(A)3 (B)-1 (C)-12 (D)-3

【解析】根据运算符的优先级,该表达式相当于 n=n+ ((-y)*z)/n。 13.已知 a=2, b=3,则表达式 a%b*4%b 的值为( A )。

(A)2 (B)1 (C)-1 (D)-2

【解析】根据运算符的优先级,该表达式相当于((a%b)*4)%b。 14.已知 x=2, y=3, z=4,则经过 z- = --y – x--运算后,z 的值为( D )。

(A)1 (B)2 (C)3 (D)4

【解析】在表达式运算过程中,--y 的值变为 2,x—的值还是 2,等号右侧运算后的值为 0,因此 z 的值没有变化。

15.表达式(12==0) && (1/0 < 1)的值为( B )。

(A)true (B)false (C)0 (D)运行时抛出异常

【解析】由于(12==0)的值为 false,因此整个表达式发生短路运算,即(1/0 < 1)就没有参与运算,整个表达式的值为 false。

16.设有类型定义 short i=32; long j=64; 下面赋值语句中不正确的一个是( B )

(A)j=i; (B)i=j; (C)i=(short)j; (D)j=(long)i;

【解析】long 类型的数据不能自动转变为 short 类型,因此不能将 long 类型的变量直接赋值给 short 类型。

17.现有 1 个 char 类型的变量 c1=66 和 1 个整型变量 i=2,当执行 c1=c1+(char)i;语句后,c1 的值为( D )。

(A)'d' (B)'D' (C)68 (D)语句在编译时出错

【解析】两个字符型的数据相加,得到的是一个整数,而如果把整数再赋值给一个字符 型变量则会在编译时出错。

18.下列说法中,正确的一项是( D )。

(A)字符串\的长度为 6 (B)False 是 Java 的保留字 (C)123.45L 代表单精度浮点型 (D)False 是合法的 Java 标识符

【解析】Java 语言对字符的大小写是敏感的,False 不是 false,因此 False 是合法的 Java 标识符。

19.以下的变量定义语句中,合法的是( D )

(A)float _*5 = 123.456F; (B)byte $_b1 = 12345; (C)int _long_ = 123456L; (D)double d = Double.MAX_VALUE; 【解析】(A)中_*5 不是合法的标识符,(B)中 12345 超出 byte 范围,(C)中不能将 long 类型的常量赋值给 int 型的变量。

20.下列关于运算符优先级的说法中,不正确的一个是( C )

(A)运算符按照优先级顺序表进行运算

(B)同一优先级的运算符在表达式中都是按照从左到右的顺序进行运算的 (C)同一优先级的运算符在表达式中都是按照从右到左的顺序进行运算的

(D)括号可以改变运算的优先次序

5

本文来源:https://www.bwwdw.com/article/isut.html

Top