「java上机笔试试卷」java上机题库

博主:adminadmin 2023-03-21 12:36:09 541

今天给各位分享java上机笔试试卷的知识,其中也会对java上机题库进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

求java考题,笔试题

Java面向对象

1. super()与this()的区别?

This():当前类的对象,super父类对象。

Super():在子类访问父类的成员和行为,必须受类继承规则的约束

而this他代表当前对象,当然所有的资源都可以访问.

在构造函数中,如果第一行没有写super(),编译器会自动插入.但是如果父类没有不带参数的构造函数,或这个函数被私有化了(用private修饰).此时你必须加入对父类的实例化构造.而this就没有这个要求,因为它本身就进行实例化的构造.

而在方法中super和this使用的方法就差不多了.只不过super 要考虑是否能访问其父类的资源.

2. 作用域public,protected,private,以及不写时的区别?

Public:不同包、 同一包、 类内都可用

Private: 类内

Protected:不同包的子类、同一包、 类内都可用

不写时: 同一包内、类内

3. 编程输出如下图形。

* * * * *

* * * *

* * *

* *

*

代码如下:

public class Print {

publicstatic void main(String[] args) {

for(int i = 0; i 5; i++) {

for(int j = 5; j i; j--) {

System.out.print("*");

}

System.out.println();

}

}

}

4. JAVA的事件委托机制和垃圾回收机制

Java事件委托机制的概念,一个源产生一个事件并将它送到一个或多个监听器那里。在这种方案中,监听器简单的等待,直到它收到一个事件。一旦事件被接受,监听器将处理这个事件,然后返回。

垃圾回收机制垃圾收集是将分配给对象但不再使用的内存回收或释放的过程。如果一个对象没有指向它的引用或者其赋值为null,则次对象适合进行垃圾回收

5. 在JAVA中,如何跳出当前的多重嵌套循环?

用break; return 方法。

6. 什么是java序列化,如何实现java序列化?(写一个实例)

序列化:处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。

序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implementsSerializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。

7. 一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?

可以。如果这个类的修饰符是public,其类名与文件名必须相同。

8. 排序都有哪几种方法?请列举。用JAVA实现一个快速排序?

排序的方法有:插入排序(直接插入排序、希尔排序),交换排序(冒泡排序、快速排序),选择排序(直接选择排序、堆排序),归并排序,分配排序(箱排序、基数排序)

快速排序的伪代码。

9. Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?

重写Override,子类覆盖父类的方法,将子类传与父类的引用调用的还是子类的方法。

重载Overloading 一个类多个方法,名称相同,参数个数类型不同。

两者都是Java多态性的不同表现。

Overloaded的方法是可以改变返回值的类型。

1, public class Ctest(){

Public static void main(){

System.out.prinln(8+8+”88”+8+8);

}

} 168888

(方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。

Overloaded的方法是可以改变返回值的类型。)

10. Final类有什么特点?

属性常量 方法不可以overridding 类不可以继承

11. 继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?

答:父类:

package test;

public class FatherClass {

public FatherClass() {

System.out.println("FatherClassCreate");

}

}

子类:

package test;

import test.FatherClass;

public class ChildClass extends FatherClass{

public ChildClass() {

System.out.println("ChildClassCreate");

}

public static void main(String[] args) {

FatherClass fc = new FatherClass();

ChildClass cc = new ChildClass();

}

}

输出结果:

C:java test.ChildClass

FatherClass Create

FatherClass Create

ChildClass Create

12. 内部类的实现方式?

package test;

public class OuterClass {

private class InterClass {

Public Interlass(){

System.out.println("InterClassCreate");

}

}

public OuterClass(){

InterClass ic = new InterClass();

System.out.println("OuterClassCreate");

}

public static void main(String[] args){

OuterClass oc = new OuterClass();

}

}

输出结果:

C:java test/OuterClass InterClass Create OuterClass Create

13. 用JAVA实现一种排序,JAVA类实现序列化的方法(二种)?

14. 如在COLLECTION框架中,实现比较要实现什么样的接口?

15. 用插入法进行排序代码如下

package test;

import java.util.*;

class InsertSort {

ArrayList al;

public InsertSort(int num,int mod) {

al = new ArrayList(num);

Random rand = new Random();

System.out.println("The ArrayList SortBefore:");

for (int i=0;inum ;i++ ){

al.add(new Integer(Math.abs(rand.nextInt())% mod + 1));

System.out.println("al["+i+"]="+al.get(i));

}

}

public void SortIt(){

Integer tempInt;

int MaxSize=1;

for(int i=1;ial.size();i++){

tempInt = (Integer)al.remove(i);

if(tempInt.intValue()=((Integer)al.get(MaxSize-1)).intValue()){

al.add(MaxSize,tempInt);

MaxSize++;

System.out.println(al.toString());

} else {

for (int j=0;jMaxSize ;j++ ){

if(((Integer)al.get(j)).intValue()=tempInt.intValue()){

al.add(j,tempInt);

MaxSize++;

System.out.println(al.toString());

break;

}

}

}

}

System.out.println("The ArrayList SortAfter:");

for(int i=0;ial.size();i++) {

System.out.println("al["+i+"]="+al.get(i));

}

}

public static void main(String[] args) {

InsertSort is = new InsertSort(10,100);

is.SortIt();

}

}

JAVA类实现序例化的方法是实现java.io.Serializable接口

Collection框架中实现比较要实现Comparable 接口和 Comparator 接口

16. 编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF",6,应该输出为"我ABC"而不是"我ABC+汉的半个"。

public static void split(String source,intnum) throws Exception{

intk=0;

Stringtemp="";

for(int i = 0; i source.length(); i++){

byte[]b=(source.charAt(i)+"").getBytes();

k=k+b.length;

if(knum){

break;

}

temp=temp+source.charAt(i);

}

System.out.println(temp);

}

15、Java编程,打印昨天的当前时刻

public class YesterdayCurrent{

public void main(String[] args){

Calendar cal = Calendar.getInstance();

cal.add(Calendar.DATE, -1);

System.out.println(cal.getTime());

}

}

16、文件读写,实现一个计数器

public int getNum(){

int i = -1;

try{

String stri="";

BufferedReader in = new BufferedReader(newFileReader(f));

while((stri=in.readLine())!=null){

i = Integer.parseInt(stri.trim());

}

in.close();

}catch(Exception e){

e.printStackTrace();

}

return i;

}

public void setNum(){

int i = getNum();

i++;

try{

PrintWriter out=new PrintWriter(newBufferedWriter(new FileWriter(f,false)));

out.write(String.valueOf(i)); //可能是编码的原因,如果直接写入int的话,将出现java编码和windows编码的混乱,因此此处写入的是String

out.close() ;

}catch(Exception e){

e.printStackTrace();

}

}

17、指出下面程序的运行结果。

class A{

static{

System.out.print("1");

}

public A(){

System.out.print("2");

}

}

class B extends A{

static{

System.out.print("a");

}

public B(){

System.out.print("b");

}

}

public class Hello{

public static void main(String[] ars){

A ab = new B(); //执行到此处,结果: 1a2b

ab = new B(); //执行到此处,结果: 1a2b2b

}

}注:类的static 代码段,可以看作是类首次加载(被虚拟机加载)执行的代码,而对于类的加载,首先要执行其基类的构造,再执行其本身的构造

18、抽象类和接口的区别?

(1)接口可以被多重implements,抽象类只能被单一extends(2)接口只有定义,抽象类可以有定义和实现(3)接口的字段定义默认为:publicstatic final, 抽象类字段默认是"friendly"(本包可见)

当功能需要累积时用抽象类,不需要累积时用接口。

19、什么是类的反射机制?

通过类(Class对象),可以得出当前类的fields、method、construtor、interface、superClass、modified等,同是可以通过类实例化一个实例、设置属性、唤醒方法。Spring中一切都是返射、struts、hibernate都是通过类的返射进行开发的。

20、类的返射机制中的包及核心类?

①java.lang.Class②java.lang.refrection.Method③java.lang.refrection.Field

④java.lang.refrection.Constructor⑤java.lang.refrection.Modifier⑥java.lang.refrection.Interface

21、得到Class的三个过程是什么?

①对象.getClass()②类.class或Integer.type(int) Integer.class(java.lang.Integer)③Class.forName();

22、如何唤起类中的一个方法?

①产生一个Class数组,说明方法的参数②通过Class对象及方法参数得到Method③通过method.invoke(实例,参数值数组)唤醒方法

23、如何将数值型字符转换为数字(Integer,Double)?

Integer.parseInt(“1234”) Double.parseDouble(“123.2”)

24、如何将数字转换为字符?

1+”” 1.0+””

25、如何去小数点前两位,并四舍五入。

double d=1256.22d; d=d/100; System.out.println(Math.round(d)*100);

26、如何取得年月日,小时分秒?

Calendar c=Calendar.getInstance();

c.set(Calendar.YEAR,2004);

c.set(Calendar.MONTH,0);

c.set(Calendar.DAY_OF_MONTH,31);

System.out.println(c.get(Calendar.YEAR)+" "+(c.get(Calendar.MONTH)+1)+" "+c.get(Calendar.DAY_OF_MONTH));

27、如何取得从1970年到现在的毫秒数

Java.util.Date dat=new Date(); long now=dat.getTime();

或System.currentTimeMillis()

28、如何获取某个日期是当月的最后一天?

当前日期加一天,若当前日期与结果的月份不相同,就是最后一天。

取下一个月的第一天,下一个月的第一天-1

public static void main(String[] args){

Calendarc=Calendar.getInstance();

c.set(Calendar.YEAR,2004);

c.set(Calendar.MONTH,0);

c.set(Calendar.DAY_OF_MONTH,30);

Calendarc1=(Calendar)c.clone();

System.out.println(c.get(Calendar.YEAR)+""+(c.get(Calendar.MONTH)+1)+" "+c.get(Calendar.DAY_OF_MONTH));

c.add(Calendar.DAY_OF_MONTH,1);

if(c.get(Calendar.MONTH)!=c1.get(Calendar.MONTH)){

System.out.println("是最后一天");

}else{

System.out.println("不是取后一天");

}

}

29、如何格式化日期?

Import java.text. SimpleDateFormat;

SimpleDateFormat sdf=newSimpleDateFormat("yyyy-MM-dd hh:mm:ss");

Date dat=new Date();

String str=sdf.format(dat); //把日期转化为字符串

System.out.println(str);

Java.util.Date d1=sdf.parse(“yyyy-mm-dd”); //将字符串转化为日期

30、编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串。

String a=new String("中".getBytes("gb2312"),"iso-8859-1");

String a=new String("中".getBytes("iso-8859-1"));

应该是String a=new String("中".getBytes("gb2312"),"iso-8859-1");

String a1=newString(a.getBytes("iso-8859-1"));

2011年全国计算机二级java上机试题的答案

2011年3月计算机等级考试二级VFP笔试:

一、选择题

(1)下列关于栈叙述正确的是

A) 栈顶元素最先能被删除

B)栈顶元素最后才能被删除

C)栈底元素永远不能被删除

D)以上三种说法都不对

(2)下列叙述中正确的是

A)有一个以上根结点的数据结构不一定是非线性结构

B)只有一个根结点的数据结构不一定是线性结构

C)循环链表是非线性结构

D)双向链表是非线性结构

(3)某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)

A)3

B)4

C)6

D)7

(4)在软件开发中,需求分析阶段产生的主要文档是

A)软件集成测试计划

B)软件详细设计说明书

C) 用户手册

D)软件需求规格说明书

(5)结构化程序所要求的基本结构不包括

A)顺序结构

B)GOTO跳转

C)选择(分支)结构

D)重复(循环)结构

(6)下面描述中错误的是

A) 系统总体结构图支持软件系统的详细设计

B)软件设计是将软件需求转换为软件表示的过程

C)数据结构与数据库设计是软件设计的任务之一

D)PAD图是软件详细设计的表示工具

(7)负责数据库中查询操作的数据库语言是

A)数据定义语言

B)数据管理语言

C)数据操纵语言

D)数据控制语言

(8)一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是

A)1:1联系

B)1:m联系

C) m:1联系

D) m:n联系

(9)有三个关系R、S和T如下:

则由关系R和S得到关系T的操作是

A)自然连接

B)交

C)除

D)并

(10)定义无符号整数类为UInt,下面可以作为类T实例化值的是

A)-369

B)369

C)0.369

D)整数集合{1,2,3,4,5}

(11)在建立数据库表时给该表指定了主索引,该索引实现了数据完整性中的

A)参照完整性

B)实体完整性

C)域完整性

D)用户定义完整性

(12)执行如下命令的输出结果是

?15%4,15%-4

A)3 -1

B)3 3

C)1 1

D)1 -1

(13)在数据库表中,要求指定字段或表达式不出现重复值,应该建立的索引是

A)惟一索引

B)惟一索引和候选索引

C)惟一索引和主索引

D)主索引和候选索引

(14)给student表增加一个“平均戍绩”字段(数值型,总宽度6} 2位小数)的SQL命令是

A)ALTER TABLE studeni ADD平均成绩N(b,2)

B)ALTER TABLE student ADD平均成绩D(6,2)

C)ALTER TABLE student ADD平均成绩E(6,2)

D)ALTER TABLE student ADD平均成绩Y(6,2)

(15)在Visual FoxPro中,执行SQL的DELETE命令和传统的FoxPro DELETE命令都可以删除数据库表中的记录,下面正确的描述是

A)SQL的DELETE命令删除数据库表中的记录之前,不需要先用USE命令打开表

B)SQL的DELETE命令和传统的FoxPro DELETE命令删除数据库表中的记录之前, 都需要先用命令USE打开表

C)SQL的DELETE命令可以物理地删除数据库表中的记录,而传统的FoxPro DELETE 命令只能逻辑删除数据库表中的记录

D)传统的FoxPro DELETE命令还可以删除其它工作区中打开的数据库表中的记录

(16)在Visual FoxPro中,如果希望跳出SCAN…ENDSCAN循环语句、执行ENDSCAN后面的语句,应使用

A)LOOP语句

B)EXIT语句

C)BREAK语句

D)RETURN语句

(17)在Visual FoxPro中,“表”通常是指

A)表单

B)报表

C)关系数据库中的关系

D)以上都不对

(18)删除student表的“平均成绩”字段的正确SQL命令是

A)DELETE TABLE student DELETE COLUMN平均成绩

B)ALTER TABLE student DELETE COLUMN平均成绩

C)ALTER TABLE student DROP COLUMN平均成绩

D)DELETE TABLE student DROP COLUMN平均成绩

(19)在Visual FoxPro中,关于视图的正确描述是

A)视图也称作窗口

B)视图是一个预先定义好的SQL SELECT语句文件

C)视图是一种用SQL SELECT语句定义的虚拟表

D)视图是一个存储数据的特殊表

(20)从student表删除年龄大于30的记录的正确SQL命令是

A)DELETE FOR年龄30

B)DELETE FROM student WHERE年龄30

C)DEL ETE student FOP年龄30

D)DELETE student WF IERE年龄>30

(21)在Vaual FoxPro中,使用LOCATL FOR }expL命令按条件查找记录,当查找到满足条件的第一条记录后,如果还需要查找下一条满足条件的记录,应该

A)再次使用LOCATE命令重新查询

B)使用SKIP命令

C)使用CONTINUE命令

D)使用GO命令

(22)为了在报表中打印当前时间,应该插入的控件是

A)文本框控件

B)表达式

C)标签控件

D)域控件

(23)在Visual FoxPro中,假设student表中有40条记录,执行下面的命令后,屏幕显示的结果是

?RECCOUNT()

A)0

B)1

C)40

D)出错

(24)向student表插入一条新记录的正确SQL语句是

A)APPEND INTO student VALUES(’0401’,’王芳’,’女’,18)

B)APPEND student VALUES(’0401’,’王芳’,’女’,18):

C)INSERT INTO student VALUES(’0401’,’王芳’,’女’,18)

D)INSERT student VALUES(’0401’,’王芳’,’女’,18)

(25)在一个空的表单中添加一个选项按钮组控件,该控件可能的默认名称是

A)Optiongroup 1

B)Checkl

C)Spinnerl

D)Listl

(26)恢复系统默认菜单的命令是

A)SET MENU TO DEFAULT

B)SET SYSMENU TO DEFAULT

C)SET SYSTEM MENU TO DEFAULT

D)SET SYSTEM TO DEFAULT

(27)在Visual F’oxPro中,用于设置表单标题的属性是

A)Text

B)Title

C)Lable

D)Caption

(28)消除SQL SELECT查询结果中的重复记录,可采取的方法是

A)通过指定主关键字

B)通过指定惟一索引

C)使用DISTINCT短语

D)使用UNIQUE短语

(29)在设计界面时,为提供多选功能,通常使用的控件是

A)选项按钮组

B)一组复选框

C)编辑框

D)命令按钮组

(30)为了使表单界面中的控件不可用,需将控件的某个属性设置为假,该属性是

A)Default

B)Enabled

C)Use

D)Enuse

第(31)-(35)题使用如下三个数据库表:

学生表:student(学号,姓名,性别,出生日期,院系)

课程表:course(课程号,课程名,学时)

选课成绩表:score(学号,课程号,成绩)

其中出生日期的数据类型为日期型,学时和成绩为数值型,其它均为字符型。

(31)查询“计算机系”学生的学号、姓名、学生所选课程的课程名和成绩,正确的命令是

A)SELECT s.学号,姓名,课程名,成绩

FROM student s, score sc, course c

WHERE s.学号= sc.学号,sc.课程号=c.课程号,院系=’计算机系’

B)SELECT学号,姓名,课程名,成绩

FROM student s, score sc, course c

WHERE s.学号=sc.学号AND sc.课程号=c.课程号AND院系=’计算机系’

C)SELECT s.学号,姓名,课程名,成绩

FROM(student s JOIN score sc ON s.学号=sc.学号).

JOIN course cON sc.课程号=c.课程号

WHERE院系=’计算机系’

D)SELECT学号,姓名,课程名,成绩

FROM(student s JOIN score sc ON s.学号=sc.学号)

JOIN course c ON sc.课程号=c.课程号

WHERE院系=’计算机系’

(32)查询所修课程成绩都大于等于85分的学生的学号和姓名,正确的命令是

A)SELECT学号,姓名FROM student s WHERE NOT EXISTS

(SELECT*FROM score sc WHERE sc.学号=s.学号AND成绩<85)

B)SELECT学号,姓名FROM student s WHERE NOT EXISTS

(SELECT * FROM score sc WHERE sc.学号=s.学号AND成绩= 85)

C)SELECT学号,姓名FROM student s,score sc

WHERE s.学号=sc.学号AND成绩= 85

D)SELECT学号,姓名FROM student s,score sc

WHEkE s.学号=sc.学号AND ALL成绩=85

(33)查询选修课程在5门以上(含5门)的学生的学号、姓名和平均成绩,并按平均成

绩降序排序,正确的命令是

A)SELECT s.学号,姓名,平均成绩FROM student s,score sc

WHEREs.学号=sc.学号

GROUP BY s.学号HAVING COUNT(*)>=5 ORDER BY平均成绩DESC

B)SELECT学号,姓名,AVG(成绩)FROM student s,score sc

WHERE s.学号=sc.学号AND COUNT(*)=5

GROUP BY学号ORDER BY 3 DESC

C)SELECT s.学号,姓名,AVG(成绩)平均成绩FROM student s,score sc

WHERE s.学号=sc.学号AND COUNT(*)= 5

GROUP BY s.学号ORDER BY平均成绩DESC

D)SELECT s.学号,姓名,AVG(成绩)平均成绩FROM student s,score sc

WHERE s.学号=sc.学号

GROUP BY s.学号HAVING COUNT(*)=5 ORDER BY 3 DESC

(34)查询同时选修课程号为C1和C5课程的学生的学号,正确的命令是

A)SELECT学号FROM score sc WHERE课程号=’C 1’AND学号IN

(SELECT学号FROM score sc WHERE课程号=’C5’)

B)SELECT学号FROM score sc WHERE课程号=’C1’AND学号=

(SELECT学号FROM score sc WHERE课程号=’C5’}

C)SELECT学号FROM score sc WHERE课程号=’C 1’ AND课程号=’C5’

D)SELECT学号FROM score sc WHERE课程号=’C 1’OR ’C5’

(35)删除学号为“20091001”且课程号为“C1”的选课记录,正确命令是

A)DELETE FROM score WHERE课程号=’C 1’AND学号=’20091001’

B)DELETE FROM score WHERE课程号=’C 1’OR学号=’20091001’

C)DELETE FORM score WHERE课程号=’C 1’AND学号=’20091001’

D)DELETE score WHERE课程号=’C 1’AND学号=’20091001’

二、填空题

(1)有序线性表能进行二分查找的前提是该线性表必须是存储的。

(2)一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF则后序遍历结果为。

(3)对软件设计的最小单位(模块或程序单元)进行的测试通常称为测试。

(4)实体完整性约束要求关系数据库中元组的属性值不能为空。

(5)在关系A(S, SN, D)和关系B(D,CN, NM)中,A的主关键字是S, B的主关键字是D,则称是关系A的外码。

(6)表达式EMPTY(.NULL.)的值是。

(7)假设当前表、当前记录的“科目”字段值为“计算机”(字符型),在命令窗口输入如下命令将显示结果。

m=科目-“考试”

?m

(8)在Visual FoxPro中假设有查询文件queryl.qpr,要执行该文件应使用命令。

(9)SQL语句“SELECT TOP 10 PERCENT*FROM订单ORDER BY金额DESC”的查询结果是订单中金额的10%的订单信息。

(10)在表单设计中,关键字表示当前对象所在的表单。

(11)使用SQL的CREATE TABLE语句建立数据库表时,为了说明主关键字应该使用关键词KEY。

(12)在Visual FoxPro中,要想将日期型或日期时间型数据中的年份用4位数字显示,应当使用SET CENTURY命令进行设置。

(13)在建立表间一对多的永久联系时,主表的索引类型必须是。

(14)为将一个表单定义为顶层表单,需要设置的属性是。

(15)在使用报表向导创建报表时,如果数据源包括父表和子表,应该选取报表向导。

简单的java笔试题一条

纠正一下楼上某位的回答,接口中的属性默认是static final的,所以如果TestImpl类中没有定义frood属性,则++frood应该会报错(final不可被改变),TestImpl定义了frood相当于覆盖了frood,此时main中使用frood相当于使用本类的frood,没有赋值默认是0,++frood相当于先加1再输出,所以结果是1

谁能发个全国计算机考试的JAVA真题给我?笔试题

Java是一个很好的面向对象语言,这是08年的试题。你可以在网上下更全套的试题练习。

全国2008年10月考试Java 语言程序设计(一)试题

课程代码:04747

一、单项选择题(本大题共10小题,每小题1分,共10分)

在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。

1.下述字符组合不能作为Java程序标识符的是( )

A.Aa12 B.大x

C.y小 D.5x

2.以下程序代码的输出的结果是( )

int x=53;

System. out. println(1.0+x/2);

A.27.0 B.27.5

C.1.026 D.1.026.5

3.参照以下Java代码,以下四个叙述中最确切的是( )

class A{

int x; static int y;

void fac(String s){Syatem. out. println(”字符串:”+s);}

}

A.x、y和s都是成员变量

B.x是实例变量、y是类变量、s是局部变量

C.x和y是实例变量、s是参数

D.x、y和s都是实例变量

4.需要分析字符串,并将字符串分解成可被独立使用的单词,可使用java. util包中的类是

( )

A.String B.StringBuffer

C.StringTokenizer D.stringTokenizer

5.要为程序的子窗口设定一个由字符串s指定的名字,可以采用的代码是( )

A.JFrame(s) B.window(s)

C.new JFrame(s) D.super(s)

6.以下关于菜单的叙述中,正确的是( )

A.菜单分三级定义,最高一级的是菜单条,菜单条中放菜单,菜单中放菜单项

B.菜单分三级定义,最高一级的是菜单,菜单中放菜单条,菜单条中放菜单项

C.菜单分两级定义,最高一级的是菜单,菜单中放菜单项

D.菜单分两级定义,最高一级的是菜单条,菜单条中放菜单项

7.以下所述内容全部是字型要素的是( )

A.字体、字形和大小 B.字体、风格和字号

C.字形、风格和字号 D.字形、颜色和字号

8.用Thread子类实现多线程的步骤顺序是( )

A.声明Thread类的子类,创建Thread子类的实例,让线程调用start()方法

B.声明Thread类的子类,在子类中重新定义run()方法,创建Thread子类的实例

C.创建Thread子类的实例,让线程调用start()方法

D.声明Thread类的子类,在子类中重新定义run()方法,创建Thread子类的实例,让线程调用start()方法

9.为16位Unicode字符流提供读和写操作支持的类分别是( )

A.FileInputStream类和FileOutputStream类

B.InputStream类和OutputStream类

C.FileReader类和FileWriter类

D.File_Reader类和File_Writer类

10.能利用对象提供的方法获得流对象和实现网络连接的是( )

A.URLConnection对象 B.URL对象

C.InetAddress对象 D.TCP/IP对象

二、填空题(本大题共10小题,每小题2分,共20分)

请在每小题的空格中填上正确答案。错填、不填均无分。

11.一个小应用程序必须定义成一个_________。

12.用条件运算符构造一个表达式:goal等于10时,表达式的值为“对了!”,否则,表达式的值为“错了!”。这个表达式是_________。

13.类是对一组相同对象的描述,类概括了同类对象的共有性质:_________。

14.设有数组a和b的定义如下:

int[]a={1,2,3};int[]b={4,5,6}

……

执行以下代码“a=b;”,除了完成赋值操作之外,引起系统额外要做的工作是_________。

15. _________布局使容器的多个组件拥有同一个显示空间,某一时刻只能显示一个组件。

16.Java语言为处理鼠标事件提供两个接口:_________接口和MouseMotionListener接口。

17.某个绘图方法设置成“异或模式”绘图,并用黄色作为异或模式设定的绘图颜色。如果当时背景色为红色,并用红色绘制线段,则线段的实际颜色是_________。

18.程序员用Java语言编写多线程应用程序,程序员能控制的关键性工作有两个方面:一是编写线程的_________方法;二是建立线程实例。

19.BufferedWriter类是提供缓冲式输出的类。程序需要先创建_________对象,再利用这个对象创建BufferedWriter对象。

20.在Java语言中,客户端使用的套接字类是_________。

三、简答题(本大题共6小题,每小题3分,共18分)

21.请写出表示条件“x=2与y=3有且只有一个成立”的Java表达式”。

22.如果类Student是类Person的子类,类Undergraduate是类Student的子类,请指出以下代码行中哪些是不合法的。

Person p1=new Student();

Person p2=new Undergraduate();

Student s1=new Person();

Student s2=new Undergraduate();

Undergraduate ug1=new Person();

Undergraduate ug2=new Student();

Object ob=new Student();

23.请写出程序处理文本框输入结束事件(回车)添加监视器的方法,以及监视器类必须实现的接口方法。

24.请写出一条语句,能够绘制一条从点(20,30)开始,长为100像素的水平线段。设调用的对象是类型为Graphics的g。

25.某Java程序要使用文件输入输出流,请写出该程序所需要的import语句。

26.JDBC是Java程序与数据库连接的API,请写出JDBC能做的三件事情。

四、程序填空题(本大题共5小题,每空2分,共20分)

27.方法int maxDigit(int n)的功能是找出十进制整数n各位中最大的一位数字。例如,n=23765,该方法的返回值是7。

static int maxDigit(int n){

int c=0,d;

while(n>0){

d=_______;

if(d>c) c=d;

n/=10;

}

________;

}

28.某程序的界面包含一个文本区text1、一个文本框text2和一个按钮button。实现在文本区中输入整数序列后,点击按钮,程序响应按钮事件,累计文本区输入的整数序列,并将总和输出在文本框中。这里给出的是其中相应按钮事件的方法。

public void actionPerformed(ActionEvent e){

int sum;

if(e.getSource()==button){

String s=text1.________;//获取text1中的信息

StringTokenizer fenxi=new StringTokenizer(s,”,,,\n”);

int n=fenxi.countTokens();

double a[]=new double[n];

for(int i=0;i<n;i++){

String temp=fenxi.nextToken();

a[i]=Double.valueOf(temp).doubleValue();

}

sum=0;

for(int i=0;i<n;i++){

__________;

}

text2.setText(””+sum);//刷新显示。

}

}

29.以下是生成菜单项对象,以及菜单项选择事件处理方法的部分代码。要求当菜单项singingItem被选中时,在文本框text中输出“唱歌菜单项被选中!”的字样。

……

singingItem=new________(”唱歌”);//生成菜单项对象

……

public void actionPerformed(ActionEvent e){

if(e.getSource()==singingItem)

text.setText(e.________()+ ”菜单项被选中!”);

}

30.某小应用程序实现幻灯片放映。小应用程序的init()方法将幻灯片读入数组中存储和注册鼠标监视器。程序运行时,单击鼠标,就顺序变换放映幻灯片的序号。这里给出的是其中的paint()方法和mousePressed()方法。

final int number=30;//假定幻灯片有30张

int count=0;

Image[]pic=new Image[number];

public void paint(______gc){

if((pic[count])!=null)

gc.drawImage(pic[count],10,10,pic[count].getWidth(this),

pic[count].getHeight(this),this);

}

public void mousePressed(MouseEvent e){

count=(count+1)% number;//循环逐张显示

__________;

}

31.以下定义的类shareDataManager用于管理多个线程共享数据data。一些线程要减少data,另一些线程要增加data。由于data不可以是负值,修改data的方法对这些线程来说不仅要互斥,还要同步。类提供一个方法modiData()供修改data的线程调用,该方法在data修改结束后,应通知其它等待进入这个方法的线程。

class ShareDataManager{

int data=0;

________void modiData(int delta){

if(delta>=0){

data+=delta;

}else {

while(data <delta){

try{System.out.println(”发生等待!”);

wait();

}catch(InterruptedException e){ }

}

data-=delta;

}

_________;

}

ShareDataManager(int ititData){data=initData;}

}

五、程序分析题(本大题共5小题,每小题4分,共20分)

32.阅读下列程序,请写出该程序的输出结果。

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

class Point{

int x,y;

Point(int xx,int yy){ x=xx;y=yy;}

Point(Point p){x=p.x;y=p.y; }

void m(int dx,int dy){x+=dx;y+=dy;}

}

class Circle extends Point{

int r;

Circle(Point p, int rr){ super(p); r=rr; }

float c(){ return 3.14f*2.0f*r; }

float a(){ return 3.14f*r*r;}

}

public class sample extends Applet{

Circle yuan; Point d;

public void init() {d=new Point(2,5);yuan=new Circle(d,10);}

public void paint(Graphics g){

g.drawString(”yuan Circle”+(int)(yuan.c()*100.0)/100.0,5,20);

g.drawString(”yuan Area”+(int)(yuan.a()*100.0)/100.0,5,40);

}

}

33.阅读下列程序,请写出该程序的功能。

import java. util.*;

public class Class1{

public static void main(Srting args[]){

Date date1=new Date();

System. out. println (datel);

String t=datel.toString();

int endPos=t.indexOf(‘C’);

t=t.substring(11,endPos);

System. out println(t);

}

}

34.阅读下列程序,请写出该程序的功能。

import java.applet.*;import javax.swing.*;import java.awt.event.*;

public class Class l extends Applet implements ActionListener{

JTextField text1,text2;

public void init(){

text1=new JTextField(10); text2=new JTextField(10);

setSize(200,100); add(text1); add(text2);

text1.addActionListener(this);

}

public void actionPerformed(Action Event e){

long n;

if(e.getSource()==text1){

n=Long.parseLong(text1.getText());

text2.setText(String.valueOf(n*n));

}

}

}

35.阅读以下程序,请写出该程序的功能。

import javax.swing.*; import java.awt.*;import java.awt.event.*;

class MyScrollBar extends JscrollBar{

public MyScrollBar(int init, int len, int low, int high){

super(JScrollBar. HORIZONTAL, init,len,low,high);

}

}

class MyWindow extends JFrame implements AdjustmentListener{

private JTextField text;

MyWindow(String s){

super(s);

MyScrollBar myBar=new MyScrollBar(10,10,0,255);

Container con=this. getContentPane();

con. setLayout(new GridLayout(2,1));

this. setSize(200,100);

this. setLocation(100,100);

myBar.addAdjustmentListener(this);

text=new JTextField(””,20);

con. add(text);con.add(myBar);

this.setVisible(true);

}

public void adjustmentValueChanged(AdjustmentEvent e){

MyScrollBar myBar=(MyScrollBar)e.getAdjustable();

text.setText(””+myBar.getValue());

}

}

public class Class1{

public static void main(String[]args){

MyWindow myWindow=new MyWindow(”text5_4”);

}

}

36.小应用程序创建一个线程。例子使用容器类方法getGraphics()获得Graphics对象,给线程作为画笔使用。请写出该程序中这个线程的工作内容。

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

public class Class1 extends java.applet.Applet implements Runnable{

Thread redBall;Graphics redPen;

int rx=0,ry=0;

public void init(){

setSize(250,200);

redBall =new Thread(this);

redPen=getGraphics();

redPen. setColor(Color.red);

setBackground(Color.gray);

}

public void start(){ redBall.start(); }

public void run(){

while(true){

if(Thread.currentThread()==redBall){

rx=(int)(80*Math.random());

ry=(int)(80*Math.random());

red Pen.setColor(Color.red);

red Pen.fillOval(100+rx,100+ry,10,10);

try{redBall.sleep(500);}

catch(InterruptedException e){}

redPen.setColor(Color.gray);

redPen.fillOval(100+rx,100+ry,10,10);

}

}

}

}

六、程序设计题(本大题共2小题,每小题6分,共12分)

37.编写一个方法halfArray(),要求该方法有一个元素类型为int的数组参数,方法返回一个新数组,新数组的长度与参数数组的长度相同,而新数组元素的值是参数数组各元素的一半。

38.一个Java小应用程序,界面有三个文本框和两个按钮,前两个文本框用于输入整数,第三个文本框用于输出结果。两个按钮分别表示加和减运算。当前两个文本框输入整数后,点击相应按钮,程序就将计算结果输出在第三个文本框中。以下是程序的大部分,其中监视按钮事件的方法未给出,试编写处理按钮事件的方法。

注:这里是给定部分的程序,你要编写的是actionPerformed(ActionEvent e)方法。

import java.applet.*;import javax.swing.*;

import java.awt.*; import java.awt.event.*;

class Panel1 extends JPanel{

JTextField text1, text2, text3;JButton addButton,subButton;

Panel1(){

text1=new JTextField(10);text2=new JTextField(10);

text3=new JTextField(10);setLayout(new GridLayout(5,1));

addButton=new JButton(”加”);subButton=new JButton(”减”);

add(text1); add(text2);

add(text3); add(addButton); add(subButton);

}

}

public class Classl extends Applet implements ActionListener{

Pane1 panel;

public void init(){

setSize(100,200); panel=new Panel1();add(panel);

(panel.addButton).addActionListener(this);

(panel.subButton). addActionListener(this);

}

public void actionPerformed(ActionEvent e){

一道JAVA面试笔试题,很经典的!

因为A继承了B,所以先调用父类的无参构造,又因为子类重写了父类中的draw()方法所以在父类中构造器调用的draw()方法实际是子类的,但由于子类中的实例参数还没有初始化,所以输出的就是radius = 0,而不是5或者是10;

在线急等,Java面试笔试题

Integer[] merge(Integer[] arr1, Integer[] arr2) {

java.util.CollectionInteger aCollection=new TreeSetInteger();

aCollection.addAll(Arrays.asList(arr1));

aCollection.addAll(Arrays.asList(arr2));

Integer[] arr3 = new Integer[aCollection.size()];

aCollection.toArray(arr3);

return arr3;

}

关于java上机笔试试卷和java上机题库的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。