Java课后练习题(答案)091212

更新时间:2024-01-20 16:34:01 阅读量: 教育文库 文档下载

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

第一章

一、简答题

1.简述Java语言的特点。

参考教材P1【1.1 Java概述】 Java语言的特点:

(1)Java是完全面向对象的编程语言; (2)Java是编译解释型的编程语言; (2)Java是跨平台的编程语言;

(2)Java是适合在网络上运行的编程语言; (2)Java是支持多线程的编程语言。

2.简述在Windows 98和Windows NT/2000/XP操作系统中配置环境变量的方法。

参考教材P2【1.2.2 配置环境变量】

在Windows XP操作系统中配置环境变量的方法如下:参考附件文件:jdk1.6 环境配置.doc。

3.简述编写、编译、运行Application程序与Applet程序的方法及二者的区别。

参考教材P3【1.3 Application程序与Applet程序】

开发一个Java程序要经过编辑源程序,生成一个扩展名为java的源程序文件,然后,编译源文件,生成一个扩展名为class的文件,最后运行字节码文件三个步骤。

Java程序分为Application程序和Applet程序两类。Application程序是普通的应用程序,一般是在本地通过解释器java.exe解释执行的;Applet程序不是独立的程序,使用时必须把生成的class文件嵌入到html文件中,借助浏览器解释执行。

4.在编写Java程序时,对类名和源程序文件名的命名有什么要求?

参考教材P6【1.3.3 第一个Application程序(4)】

Java语言是大小写敏感的,文件名和属性为public的类名同名。类名是标识符,遵循标识符的命名规则。

5.举例说明类与对象之间的关系。

参考教材P13【1.6 初识类与对象】

在Java语言中,类实际上是一种复杂的数据类型,它是将数据和对数据的操作封装在一起的集合体。对象是类具体化的实例,类是同一种类型对象的抽象,在Java语言中总是先有类,然后才有对象。脱离类的对象是无法创建的,而脱离了对象的类毫无用处。

举例来说,如果把“人”看成是一个抽象的类,那么每一个具体的人就是“人”类中的一个实例,即一个对象。在“人”类中可以定义姓名、性别、年龄等称为成员变量的数据,可以定义说话、跑步等称为成员方法的行为。而对于一个由“人”类实例化而来的具体的“人”对象,也就具有了这些成员变量和成员方法。但是不同的“人”对象的成员变量和成员方法是不尽相同的,例如两个人的姓名就是互不相同的。 二、选择题:

1、 在Java中,负责对字节代码解释执行的是( B )。

A)垃圾回收站 B)虚拟机 C)编译器 D)多线程机制

2、 下列叙述中,正确的是(A )。

A) Java语言的标识符区分大小写 B)源文件中public类的数目不限 C) 源文件扩展名为jar D)源文件扩展名为class

3、 下列关于Java Application与Applet的说法中,正确的是(C )

A)都包含main方法 B)都通过java.exe解释器执行 C)都通过javac.exe命令编译 D)都嵌入在HTML文件中执行

4、 安装Java软件开发包后还要配置DOS环境变量PATH,其目的是(A )

A) 为了使用编译器javac.exe和解释器java.exe时正确地找到文件 B) 为了使Application程序运行时找到所需的数据文件 C) 为了使浏览器查找Applet程序 D) 为了能正确执行.class字节码文件 三、上机练习题

1.练习Java软件开发包的下载、安装,并配置PATH和CLASSPATH环境变量。

2.修改“第一个Application程序”,使程序能计算1~6的连乘积,并编译成字节码文件,运行通过。

3.修改“改进第一个Applet程序”,是程序能计算两个数的减法,编译成字节码文件后嵌入到Html文件,在浏览器中运行通过。

第二章

一、选择题:

1、 在下列标识符的命名中,正确的是( A )

A)MyName B)else C)2Time

D)My-Name

2、 以下给出的数据类型中,不属于Java语言的数据类型是(C )

A)byte B)short C)integer D)char

3、 下列语句执行后,变量a,c的值分别是(A )

int x=182; int a,c; c=x/100; a=x; A)1,2 B)2,1 C)1.82,2 D)100,82

4、 下面( B )表达式可以得到x和y中的最大值。

A)x>y?y:x B)xy?(x+y):(x-y) D)x==y?y:x

5、 下面的程序段执行后的输出结果是(A )。

StringBuffer buf=new StringBuffer(“Beijing2008”); Buf.insert(7,”@”);

System.out.println(buf.toString()); A)Beijing@2008 B)@Beijing2008 C)Beijing2008@

D)Beijing#2008

填空题:

1、在Java的内部字符采用的是 Unicode 编码。 2、下列程序段执行后的结果是 aceg 。 String s=new String(“abcdefg”);

for(int i=0;i

3、运行以下程序片段,则输出地结果是 12.5 和 0.512 。 String sl=”0.5”, s2=”12”;

double x=Double.parseInt(s1); int y=Integer.parseInt(s2); System.out.println(x+y); System.out.println(“”+x+y);

4、编译和运行下面的程序,并在命令行输入12345,则回车后屏幕输出的结果是 123 。 public class A

{

public static void main(String args[]) throws IOException {

BufferedReader buf=BufferedReader(new InputStreamReader(System.in)); String str=buf.readLine(); Int x=Interger.parseInt(str); System.out.println(x/100); } }

5、运行下面的程序,程序的输出结果共有 2 行。 public class Output1

{ public static void main(String args[]) { int i=0; for(char ch = 97; ch<113; ch++,i++) { if( i % 8 == 0) System.out.println(“ “); System.out.println(“\\t”+ch);

} }

}

6、如果运行下面的程序,其结果是 abs class length size 。 import java.util.Arrays; public class SortArray

{ public static void main(String args[])

{ String []str = {“size”, “abs”, “length”, “class”}; Arrays.sort(str); for(int i=0; i

第三章 选择题:

1、 如果把某人看作是一个对象,那么(B )

A)“体重”是这个对象的成员方法 B)“身高”是这个对象的成员变量

C)“学历”是这个对象的final成员变量 D)“性别”不是这个对象的final成员变量

2、 如果声明一个类时使用abstract修饰符,则表明该类(B )。

A) 抽象类,可以不用继承直接使用 B) 抽象类,必须被继承后才能使用 C) 共有类,在本包与其他包内均可访问 D) 最终类,不能被其他类继承

3、 如果声明一个类时使用final修饰符,则表明该类为(D )。

A)抽象类,可以不用继承直接使用 B)抽象类,必须被继承后才能使用 C)共有类,在本包与其他包内均可访问 D)最终类,不能被其他类继承

4、 java.awt包是构建图形用户界面的类库,在该包可为用户提供的功能中(C )。

A)有对位图image的处理 B)有对视频vedio的处理

C)有对图形界面组件和布局的管理 D)没有对用户交互事件的处理

5、 在类体中可以定义构造方法,构造方法与其他方法相比,其特点有( C )。

A) 构造方法的方法名不必与包含它的类同名 B) 构造方法可以有或没有返回值

C) 使用构造方法可以在对象建立时为对象的成员变量赋初值 D) 构造方法可以由程序显式地调用

填空题:

1、声明类使用的关键字是 class 。

2、在声明类的同时,可以使用 implements 关键字实现接口。 3、构造方法的方法名与包含它的 类 同名。 4、类的成员包括 和 。

5、要使用Java的系统类库,必须先使用 import 关键字引入所用的系统类或系统类所在的包。

6、编程时一般把对象的声明和实例化合并在一个语句中,例如在 Date a = new Date(); 中,a是 对象名 ,Date是 类名 ,Date()是 构造方法 。

第四章 选择题:

1、 在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数,类型或顺

序各不相同,传回的值也可以不相同。这种面向对象程序的特性成为(C )。 A)隐藏 B)覆盖 C)重载 D)Java不支持此特性

2、 若在某一个类定义中定义有如下的方法:

abstract void performDial(){}; 则该方法属于( D )。 A)本地方法 B)最终方法 C)静态方法

D)抽象方法

3、 以下选项中循环结构合法的是( C )

A) while(int i<7)

{i++;

System.out.println(“i is”+i); }

B) int j=3;

while(j)

{System.out.println(“j is”+j); }

C) int j=0;

for(int k=0; j + k !=10; j++,k++)

{System.out.println(“j is”+j+ “k is”+k); }

D) int j=0;

do{

System.out.println(“j is”+j++); if(j == 3){continue loop;} }while (j<10);

4、 以下关于方法覆盖的叙述正确的是( C )。

A) 子类覆盖父类的方法时,子类对父类同名的方法将不能再做访问 B) 子类覆盖父类的方法时,可以覆盖父类中的final方法和static方法

C) 子类覆盖父类的方法时,子类方法的声明必须与其父类中的声明完全一样 D) 子类覆盖父类的方法时,子类方法的声明只需与其父类中声明的方法名一样

5、 下列构造方法的调用方法中,正确的是( C )。

A) 按照一般方法调用 B) 由用户直接调用 C) 只能通过new自动调用 D) 被系统调用

6、 在Java中,能实现多重继承效果的方式是(C )。

A)内部类 B)适配器 C)接口 D)继承

7、 分析下面的程序,运行显示的结果为(B )。

public class X {

public static void main(String args[]) { X a=new Y(); a .test(); }

void test() {

System.out.println(“X”); } }

class Y extends X {

void test() { super.test(); System.out.println(“Y”); } }

A) “YX” B) “XY” C) “X” D) “Y”

填空题:

1、接口声明的关键字是 interface 。

2、如果一个类引用了某个接口,就必须在类体中重写接口中定义的所有 抽象 方法。

3、Java的源代码中定义了几个类,编译结果就生成几个以 class 为后缀的字节码文件。

4、Java规定,当局部变量与成员变量的同名时,局部变量会 屏蔽 成员变量。 5、在Java中,this用来代表 当前正在操作的 对象。

6、Java规定,如果子类中定义的成员方法与父类中定义的成员方法同名,并且 参数 的个数和和类型以及 返回值 的类型也相同,则父类中的同名成员方法被屏蔽。

7、当父类的成员被屏蔽时,如果要引用父类中的成员变量或成员方法,就必须使用 super

来引用。

8、静态成员变量(或称类变量)是通过 类名 来访问的。

第五章 选择题:

1、在Java中,所有类的根类是( A )。 A)java.lang.Object B)java.lang.Class C)java.applet.Applet D)java.awt.Frame

2、在Java中,由Java编译器自动导入,而无须在程序中用import导入的包是( D )。 A) java.applet B) java.awt C) java.util D) java.lang

3、给出下面的代码: public class Person { static int arr[] = new int[10]; public static void main(String a[])

{ System.out.println(arr[1]); } }

以下判断正确的是( C )。

A) 编译时将产生错误 B) 编译时正确,运行时将产生错误 C) 输出零 D) 输出空

4、当启动Applet程序时,首先调用的方法是( B )。

A) stop方法 B) init方法 C) start方法 D) destroy方法

5、当浏览器重新返回Applet所在页面时,将调用Applet类的方法是( A )。 A) start方法 B) init方法 C) stop方法 D) destroy方法

填空题:

1、每个Applet程序必须有一个类是 Applet 类的子类。

2、Java语言不支持多维数组,但可以使用 数组的数组 ,即数组的每一个元素也是数组。

3、Container类的 Add 方法用来把组件添加到容器中。

4、设置文本字段的字体应使用Component类的 setFont 方法。 5、Java类的根是 Object 类,其他所有类都是由该类派生出来的。

6、使用字符串的compareTo方法能比较两个字符串的大小,而使用字符串的 equals 方法只能得知两个字符串是否相同。

第六章 选择题:

1、容器被重新设置大小后,以下( B )布局管理器的容器中的组件大小不随容器大小的

变化而改变。 A) CardLayout C) BorderLayout

B) FlowLayout D) GridLayout

2、容器Panel和Applet默认使用的布局编辑策略是( B )。 A) BorderLayout B) FlowLayout C) GridLayout D) CardLayout

3、如果希望所有的控件在界面上均匀排列,应使用下列( B )布局管理器。 A) BoxLayout B)GridLayout C) BorderLayout D) FlowLayout

4、使用滚动条组件时,如果用户单击滚动条滑块两侧的空白处将(B ) A) 引起一个小的改变量UnitIncrement B) 引起一个大的改变量BlockIncrement C) 引发改变时间Change D) 不会引发调整事件adjustmentValueChanged

5、使用颜色类Color的构造方法时,若要用整型参数r、g、b指定的红绿蓝成分类创建颜色类,应当使用的构造方法是( C ) A) public Color(float r, float g, float b) B) public Color(int rgb) C) public Color(int r, int g, int b) D)public Color(int r, int g, int b, int a)

6、在以下给出的java类中不是容器类的Container的子类的是( D ) A) 框架类Frame B) 面板类Panel C) 对话框类Dialog D) 文本域类TextArea

填空题:

1、要在Java中实现图形用户界面就必须导入 java.awt 包。

2、根据Java对接口的规定,实现接口时必须重写接口中所有的 抽象方法 ,如果并不需要某一个方法,也要为该方法建立一个方法体为空的方法。 3、事件适配器是一种特殊的类,都具有 Adapter 后缀。

4、文本行组件TextField是单行的文本组件,要输入或显示多行的文本应当使用 TextArea 组件。

5、单选按钮的构造方法比复选框的构造方法多一个 CheckboxGroup类型 参数,有这个参数,创建的是单选按钮,没有这个参数,创建的是复选框。

第七章

一、选择题

1. 在Graphics类中,绘制一个矩形的方法是(B )

A) clearRect

2.

3.

4.

5.

B) drawRect

C) drawRoundRect D) drawPolygon

使用Graphics类的deawImage方法绘制位图时(D ) A) 不允许对位图进行修改

B) 对位图进行缩放时必须保持宽高比百变 C) 只能先绘制然后缩放

D) 对位图进行缩放时宽、高可以分别以不同的比例缩放 关于绘图类Graphics错误的说法是(C ) A) Graphics类是一个抽象类

B) Graphics类无需实例化可以直接使用

C) 使用Graphics类绘图只能在Applet和Canvas上进行 D) 程序运行时自动调用paint方法完成绘图

关于repaint和paint绘图方法正确的说法是(D ) A) repaint和paint方法都必须由程序显式的调用 B) repaint和paint方法都有系统自动调用

C) repaint方法由系统自动调用,paint方法必须由程序显式地调用 D) paint方法由系统自动调用,repaint方法必须由程序显式地调用 关于画布类错误的说法是(D )

A) 画布就是屏幕上用于绘图的空白矩形区域

B) 程序不仅可以再画布上绘图,也可以捕获画布上的事件 C) 画布类Canvas是组件类Component的子类

D) 画布类上只能绘制几何图形,不能绘制字符长或图片

二、填空题

Java的屏幕坐标以 像素 为长度单位,容器的 左上角 定义为坐标系的原点,x轴水平向 右 ,y轴竖直向 下 。 对象Color(255,0,0)表示 红色 。

对于Java的Application程序,通常使用 Canvas 作为绘图容器。对于Applet程序,通常使用 Applet 作为绘图容器。

使用绘图类Graphics时,如果声明的类是组件类的子类,可以通过重写 paint(Graphics g) 方法进行绘图。如果声明的类不是组件类,则必须使用 getGraphics() 方法获取一个Graphics对象,然后利用这个对象绘图。 在Graphics类中绘制字符串的方法是 drawString() 。 在Graphics类中绘制位图的方法是 drawInage 。

1. 2. 3. 4.

5. 6.

第八章

一、选择题

1. 异常包含下列(B )内容

A) 程序中的语法错误

B) 程序执行过程中遇到的事先没有预料到得情况 C) 程序的编译错误

D) 程序事先定义好的可能出现的意外情况

2. 使用处理异常的try-catch-finall结构拥有多个catch程序段是,(A )

A) 当匹配了某异常后,执行完本catch程序段后直接执行finally程序段 B) 当匹配了某异常后,执行完本catch程序段后推出try-catch-finally结构 C) 当匹配了某异常后,继续检测后面的catch是否匹配

D) 如果某异常没有对应的catch 程序段,当该异常发生时不会得到任何处理和信息 3. 以下关于错误和异常的说法正确的是(B )

A) 死循环不是致命性的错误 B) 除数为0不是致命性的错误 C) 内存溢出不是致命性的错误 D) 递归无法结束不是致命性的错误 4. 以下(C )情况会发生异常

A) 把整型数与浮点数相加

B) 在未越界的情况下引用数组时下标使用变量 C) 在Applet程序中写文件

D) 把汉字字符串与英文字符串连接

二、 填空题

1. Error类是Throwable类的子类,而Error累的子类都有后缀 Error ,这些类处理

的是系统内部错误。

2. 处理异常的基本方法是使用try-catch-finally结构,在try-catch-finally结构中, try

程序段是必须的, finally 程序段可以没有, catch 程序段至少要有一个。

3. 除了由系统跑出异常外,程序员也可以主动抛出异常,主动抛出异常要使用 throw

语句。

4. 处理异常更灵活的方法是使用自定义的异常类。自定义的异常类通常都继承

Exception 类或其子类。

5. 为了正确地捕获错误和异常,在编程时安排各个catch的排列顺序应当遵循由特殊到

一般 、先子类后 父类 的原则。

第九章

一、选择题

1. 下列可以用来创建一个新线程的方法是(B ) A) 实现java.lang.Runnable接口并重写start方法 B) 实现java.lang.Runnable接口并重写run方法 C) 实现java.lang.Thread类并重写run方法 D) 实现java.lang.Thread类并重写strat方法 2. 下列关于线程优先级的说法中,正确的是( D)

A) 线程的优先级是不能改变的

B) 线程的优先级是在创建线程时设置的 C) 在创建线程后的任何时候都可以设置 D) B和C

3. 关于进程和线程,以下说法错误的是(D )

A) 各进程分别拥有数据控件、占用系统资源

B) 同一进程中的多个线程共享同一个数据空间和所占用的系统资源 C) 如果一个进程使用多线程的方式,就能顺序运行多个线程 D) 每一个程序自动拥有一个主线程 4. Java的线程共有10个优先级,用数字1~10表示,关于线程的优先级,正确的说法是(B )

A) 创建一个新线程时,默认的优先级是1 B) 优先级1为优先级最高

C) 创建一个新线程时,默认的优先级是10 D) 优先级10为优先级最高

二、填空题

1. 在一台计算机中,可能有多个程序同时运行,一个正在运行的程序称为一个 进程 。

2. 把进行划分成更小的运行单位,让每个运行单位作为一个顺序控制流,这就是 线程 。

3. 在Java程序中创建多线程主要是用 Runable 接口建立线程和继承 Thread

类建立线程两个途径。

4. 线程在生命期中要经历五种状态:新建状态、可运行状态、运行状态、 阻塞

状态和终止状态。

第十章

一、选择题

1. 要从file.dat文件读出第10个字节到变量c中,下列(D )做法是正确的。

FileInputStream in=new FileInputStream(“file.dat”); in.skip(9); int c=in.read(); FileInputStream in=new FileInputStream(“file.dat”); in.skip(10); int c=in.read(); FileInputStream in=new FileInputStream(“file.dat”); int c=in.read(); RandomaccessFile in=new RandomAccessFile(“file.dat”); in.skip(9);

int c=in.readByte();

2. 在读文本文件Employee.dat时,使用该文件作为参数的类是(D )。

A) BufferReader B) DataInputStream C) DataOutpuStream D) FileInputStream

3. 下面的程序段常见了BufferedReader类的对象in,以便读取本机d盘my文件夹下的文

件1.txt。程序第一行括号中应该填写的是(D )。 A) File f=new File( ); B) file =new FileReader(f);

C) in=new BufferedReader(file);

D) “1.txt” “d:\\\\my\\1” “d:\\\\my\\\\1.txt” “d:\\my\\1.txt”

4. 当使用打开文件对话框选择了一个文件并单击对话框中的“打开”按钮时,(D )。

A) 会使用Javac.exe程序打开选定的文件 B) 会使用Java.exe程序打开选定的文件 C) 会使用默认的关联程序打开选定的文件

D) 不会打开任何文件,只是得到了选定文件的文件名

5. 当使用文件对话框选择了一个文件时,可以使用FileDialog类的(B )方法获取所选择

的文件名。 A) setFileName B) getFile

C) getFileName D) getDirectory 6. 判断一个文件对象是不是只读文件,应当使用File类的(C)方法

A) canRead B) canWrite C) onlyRead D) readOnly

二、填空题

1. 所有程序都离不开输入和输出,在Java语言中输入输出都是通过 数据流

来实现的。

2. 标准输入输出是在字符方式下程序与系统设备进行交互的方式。标准输入的对象是

键盘 ,标准输出和标准错误输出的对象是 显示器 。

3. 字节流和字符流的区别是,字符流用于传输 纯文本 ,而字节流可以传输 各种数据 。

4. 要在文件的任意位置进行既读又写的操作,应当使用 RandomAccessFile 类。 5. 使用SimpleDataFormat类的public SimpleDataFormat(String pattern)构造方法时,若要设

置日期时间的现实格式,应当在构造方法的 pattern 参数中设置。

第十一章

一、选择题

1. 以下IP地址的写法中正确的是(D )

A) 202.114.105.93.93 B) 265.113.105.93 C) 265.113_105.93 D) 202.113.105.93

2. 以下关于URL的说法错误的是(D )

A) URL地址唯一标识了计算机中资源的位置 B) URL中的端口号的取值范围为0~65535

C) 在http协议中,如果省略了文件名,就使用默认的文件名index.html D) 在URL中如果省略了传输协议,默认为ftp

3. 以下关于SocketServer和Socket的论述中错误的是(B )

A) AppletContext接口的showDocument 方法能够显示URL路径中的文件 B) Socket使用的是浏览器/服务器(B/S)通信模式

C) ServerSocket类的accept方法的功能是接受客户端的连接请求 D) java.applet包实现了AppletContext接口

4. 以下关于服务器端和客户端使用ServerSocket和Scoket的论述中错误的是(D )

A) 服务器端套接字用ServerSocket类 B) 客户端套接字使用的是Socket类

C) 两台计算机进行双向通信时,每台计算机都必须同时使用ServerSocket和Socket D) 两台计算机进行双向通信时,每台计算机必须分别使用ServerSocket和Socket

二、填空题

1. Java的网络操作功能主要包括在 java.net 包中,该包中包含了访问各种标准网

络协议的类库。

2. 统一资源定位器URL由传输协议、主机名、端口号、文件路径和文件名、引用共五部

分组成,在这五部分中只有 主机名 是不能省略的。

3. 每一台连接在Internet上的计算机都有称为IP地址的唯一的标识,IP地址用 4 个字节共 32 位二进制数组成。

4. 用URLConnection类读取网络上的文件是基于 http 协议的,其方法只能用于该

协议。

5. Socket是建立在稳定连接基础上的 客户/服务器 通信模式。

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

Top