一、单项选择题
1.开发出Java程序语言的公司是(A)。
A)SUN B)IBM C)Microsoft D)Borland
2.由Java写的Applet是(A)。
A)一组由支持Java的浏览器来运行的程序B)一种能独立执行的应用程序
C)不同于Java的另外一种程序设计语言D)一种辅助设计工具
3.Java程序从编译到执行的整个过程为(B)。
A)Java源程序--编译成机器码---运行
B)Java源程序--编译成ByteCode(字节码,class)--解释执行
C)Java源程序--直接解释执行
D)Java源程序--优化--运行
4.Java程序的执行过程中用到一套JDK工具,其中java.exe是指(B)。
A)Java文档生成器B)Java解释器
C)Java编译器D)Java类分解器
5.下列表达式中正确的是(D)。
A)2++B)(a-b)++C)++(a-b)D)++x
6.Java所使用的字符集为(C)。
A)ASCII B)BCD C)Unicode D)ISD-Latin
7.Java中定义数组名为s,下面(B)可以获得数组元素的个数。
A)s.length()B)s.length C)len(s)D)ubound(s)
8.下面说法正确的是(C)
A)Java程序的源文件名称与主类(公共类)的名称相同,后缀可以是java或txt等。
B)JDK的编译命令是java。
C)一个Java源程序编译后可能产生几个字节码文件。
D)在命令行运行编译好的字节码文件,只需在命令行直接键入程序名即可。
9.以下变量定义语句不正确的是(D)。
A)char c=’中’;B)byte b=112;C)double d=35.6;D)float f=8.6(float=8.6f);
10.以下变量定义中正确的是(D)。
A)int i=123a;B)byte b=512;
C)boolean bl=1;D)String str=null;
11.以下字符变量定义语句中错误的是(B)。
A)char c1=’\”’;B)char c4=”;C)char c3=’x’;D)char c5=(char)65;
12.以下语句输出的结果是(A)。
String str=”123”;
int x=4,y=5;
Str=str+x+y;
System.out.println(str);
A)12345B)会产生编译错误
C)1239D)123+4+5
13.表达式(short)8/9.2*5的值的类型为(C)。
A)short B)int C)double D)float
14.设有定义int a=3,b=4,c=5,则以下表达式中,值为false的是(D)。
A)a
15.下面的程序段输出的变量b的值是(B)。
int a=0xFFFFFFFE;
//16进制赋值0xFFFFFFFE开头为F的必为负数取其补码为00000002
所以a=-2
十六进制负数的补码是它本身的值每位求反,最后再加1
如:-3,3的十六进制为0003,-3的十六进制就是FFFD(3求反之后是C,再加1,成D)
希望能帮到你。(来至百度)
已知a=-2二进制负数也是以其补码方式存储的
-2原码为10000000000000000000000000000010
然后取反取反时符号位不变之后再加1得补码为(1)
或者如下求a的补码(a=14+15x16^1+15x16^2+...+15x16^7
=2^32-2,二进制存储时至少需要5个字节为0000000011111111111111111111111111111110(这是当a为正数时a的值)//开头的黄色的表示符号位,为0表示正数,为1标示负数,其后的位才是数值位而java中int型只有4个字节一个8位二进制存储只取上面后32位,应为11111111111111111111111111111110(符号位为1所以a是负数)(1)
int b=~a;
//取反后b00000000000000000000000000000001
System.out.println(“b=”+b);
A)0xFFFFFFFE B)1C)14D)-2
16.假设以下选项中变量均已正确定义,合法的赋值语句是(A)。
A)++i;B)a==1;C)a=a+1=5;D)y=int(i);
17.设x为int型变量,则执行以下程序段后x的值为(B)。
int x=10;
x+=x-=x-x;
A)10B)20C)30D)40
18.Java Application源程序的主类是指包含有(C)方法的类。
A、main方法
B、toString方法
C、init方法
D、actionPerfromed方法
19下列哪个选项的java源文件代码片段是不正确的?(B)
A、package testpackage;
public class Test{}
B、import java.io.*;
package testpackage;
public class Test{}
C、import java.io.*;
class Person{}
public class Test{}
D、import java.io.*;
import java.awt.*;
public class Test{}
20.System.out.print(12+3);的输出结果是(A)。
A)15B)123C)”123”D)”15”
21.System.out.print(”12”+3);的输出结果是(B)。//括号内的运算从左向右,
A)15B)123C)”123”D)”15”
22.下列语句序列执行后,k的值是(C)。
int j=5,k=15;
for(int i=2;i!=j;i++)
k=k-i;
A)18B)15C)6D)11
23.执行完下面的程序段后,输出的结果是(D)。
char c='\0';
for(c='a';c<'g';c+=4);//有冒号
System.out.println("\'"+c+"\'");
A)’h’B)’g’C)’e’D)’i’
24.转义字符’\102’和’\u0042’都代表字符(C)。
//‘\102’八进制转义=2*8^0+0*8^1+1*8^2=66
//’‘\u0042’十六进制转义=2+4*16^1=66
//ASCII中66就是用B表示
A)’a’B)’A’C)’B’D)’b’
25.语句System.out.println(012);的输出结果是(C)。
012:0开头的表示它是8进制数,012=2x8^0+2x8^1=10
A)012B)12C)10D)14
26.对于下面的代码片断,m为哪些值将导致"default"输出。(C)
switch(m)
{case0:System.out.println("case0");
case1:System.out.println("case1");break;
case2:
default:System.out.println("default");
}
A)0和1B)1和2
C)2和3D)没有合适的取值
27.变量"result"是一个boolean型的值,下面的哪些表达式是合法的。(B)
A)result=0;
B)if(result){//do something...}
C)if(result!=0){//so something...}
D)result=1
28.编译Java Application源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(B)。
A).java B).class C).html D).exe
29.设int x=1,y=2,z=3,则表达式y+=z--/++x的值是(A)。
A)3B)3.5C)4D)5
30.以下定义有4个整数数组,则以下选项中正确的是(D)
int[]array1,array2[];
int[]array3[][];
int[][]array4;//int[]a等价与int a[]
A、array1与array3同为一维数组
B、array3=array4同为二维数组
C、array1与array2同为一维数组
D、array2与array4同为二维数组
31.下面定义一维数组的示例中,正确的是(C)。
A)int array[5];B)int array=new int[5];
C)int[]array=new int[5];D)int array[5]=new int[5];
32.下列关于数组的定义和使用,错误的是(D)。
A)int a[]={1,2,3};B)int[]a=new int[3];
C)int[]a;a=new int[10];D)int a[];a={1,2,3};int a[];a[]={1,2,.3}
33.下面定义二维数组的示例中,正确的是(B)。
A)int s[5][5];B)int[][]s=new int[5][];
C)int[][]s=new int[][5];D)int s[5]=new int[5][5];
34.创建对象时,编译器不会完成什么事情?(A)
A)自动调用对象的方法B)自动调用类的构造方法
C)初始化对象中的实例变量的值D)为对象分配内存空间
35.下列关于构造方法的叙述中,错误的是(C)。
A)构造方法名与类名必须相同
B)构造方法没有返回值,但不用void声明
C)构造方法不可以重载
D)构造方法只能通过new自动调用
36.下列哪个类的声明是正确的?(D)
A)abstract final class HI{}B)abstract private move(){}
C)protected private number;D)public abstract class Car{}
//A选项类不能同时为抽象和终态
37.关于被私有访问控制符private修饰的成员变量,以下说法正确的是(C)。
A)可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的
子类
B)可以被两种类访问和引用:该类本身、该类的所有子类
C)只能被该类自身所访问和修改
D)只能被同一个包中的类访问
38.对于类成员变量及类成员方法访问控制符叙述正确的是(D)。
A)控制符为public,表示只能被自己的类和它的子类访问
B)控制符为private,表示可以被它的子类访问
C)控制符缺省时,表示只能由自己的类中访问
D)控制符为protected表示可由类所在包的其它类访问
/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
39.下面的代码,哪行将导致错误(C)。//题目不好
(1)final class Parent{
(2)protected String name;
(3)public Parent(){};
(4)}
(5)public class Child extends Parent{//fianl类不能继承错
(6)private String name;
(7)public Test(){};//这句肯定错没有返回类型又不是构造方法
(8)public String getValue(){return https://www.doczj.com/doc/3b3093085.html,;}//还是final问题
(9)public static void main(String arg[]){
(10)Parent p=new Parent();//对的但没什么用
}
}
A)line1B)line2C)line8D)line10
40.给定如下所示的Java代码,要使这段代码能够编译成功,横线处应该填入(D):public_______count(int i,double d)
{return i*d*2.0;}
A)int B)void C)char D)double
41.下列方法method()的定义中正确的是(A)。
A)int method(){char ch=’a’;return(int)ch;}
B)void method(){int a=8;return a;}
C)int method(){return(double)(i+10);}
D)void method(int a){return a;}
42.main()是应用程序执行的入口点,其方法头的写法,(ABC)是合法的。
A)public static void main()
B)public static int main(String[]args)
C)public static void main(String arg[])
D)public void main(String arg[])
43.若有以下类声明:
public class A extends B implements C,D{}
下面的说法最完整的是(B)。
A)类A继承自父类B B)类A继承了父类B,且实现接口C的D
C)C和D是接口,类头的定义表明类A实现接口C和D
D)关键字extends指明类的继承关系
44.下面关于子类和父类构造方法的描述中正确的是(A)。
A)子类必须通过super关键字调用父类有参数的构造方法
B)子类必须通过this关键字调用父类的构造方法
C)子类无条件地继承父类不含参数的构造方法
D)如果子类定义了自己的含参数的构造方法,就不能再调用父类的构造方法
45.设类B和类C都不是抽象类,且类B是类C的父类。下列声明对象x1的语句中不正确的是(D)。
//父亲有的儿子就有,儿子有的父不一定有
A)B x1=new B();B)B x1=new C();C)C x1=new C();D)C x1=new B(); 46.当需要调用父类的同名方法或使用父类的同名变量时,在子类中可用关键字(B)作前缀来指明父类的成员变量和方法。
A)this B)super C)static D)import
47.调用构造方法是在(B)。
A)类定义时B)创建对象时
C)调用对象方法时D)使用对象的变量时
48.下列说法错误的是()。//构造函数就是构造方法一个意思
A)类中的构造函数不可省略,必须显式定义
B)一个类中可以定义多个构造函数
C)构造函数在对象被创建时执行
D)构造函数必须与类名相同
49.下列是类Myclass的构造方法的是(C)。
A)public void Myclass(){}B)public static Myclass(){}
C)public Myclass(){}D)public static void Myclass(){}
50.用于修饰类的访问修饰符是(A)。//修饰类的修饰符只有public abstract final
A)public B)private C)protected D)static
51.在某个类A中存在一个方法:void getSort(int x),以下能作为这个方法重载的声明是(AC)。
A)void getSort(float x);B)int getSort(int y);
C)double getSort(int x,int y);D)void GetSort(int x,int y);
/*A肯定是对的,B和C选项对于返回类型是否要相同?
*书写是上:方法重载时,方法返回值的类型不能作为区分方法重载的标志,等于没说*见下面大师解答:
1 2 3 4Overloaded(重载)的方法是可以改变返回值的类型。
这句话是正确的,唯一区分方法重载的是方法的参数列表不同,当参数列表不同时就可改变其返回类型package alltest;
public class OverLoadTest{
5 6 7 8 9 10 11 12 13 14
public void m1(int x){}
public int m1(int x,int y){return12;}
//public String m1(int x){return"12";}//error!Duplicate method m1(int)
//in type OverLoadTest public String m1(int x,int y,int z){return"abc";}
public int m1(String x,int y){return12;};
}
当参数列表不同时,能达到区分重载时,就可以改变方法的返回类型
*所以B选项就不行了,C可以
*/
52.如果希望方法不能在子类中被覆盖,定义方法时要使用的修饰符是(B)。
A)static B)final C)abstract D)native
53.如果类中没有定义构造方法,系统会提供一个默认的构造方法。默认构造方法的特点是(C)。
A)无参数有操作B)有参数无操作
C)既无参数也无任何操作D)有参数有操作
54.有一个类Myclass,以下为其构造函数的声明,其中正确的是(B)。
A)void Myclass(int x){…}B)Myclass(int y){…}
C)myclass(int x){…}D)void myclass(int x){…}
55.为类定义多个名称相同,但参数不同的方法的做法称为(A)。
A)方法重载B)方法覆盖C)方法继承D)方法重用
56.在子类中重新编写父类方法的做法称为(B)。
A)方法重载B)方法覆盖C)方法继承D)方法重用
57.下列关于抽象类说法错误的是(C)。
A)抽象类不能被初始化
B)抽象类的声明是在类说明中使用abstract修饰词
C)抽象类中的抽象方法包含方法体
D)抽象类是指没有具体对象的一种概念类
58.下列关于Applet的说法中,错误的是(C)。
A)Applet自身不能运行,必须嵌入到其它应用程序(如浏览器)中运行
B)可以在安全策略的控制下读写本地磁盘文件
C)Java中不支持向Applet传递参数
D)Applet的主类要定义为java.applet.Applet类的子类
59.通过HTML文件向applet传递参数时,在HTML文件中要加入标记(B)。
A)
60.在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的(D)方法来完成一些画图操作。
A)start()B)stop()C)init()D)paint()
61.paint()方法使用哪种类型的参数?(A)
A)Graphics B)Graphics2D C)String D)Color
62.下列说法正确的是(D)
A)编译后的Java源程序的后缀名都是.class,是可执行的文件
B)无须定义类,就能创建对象
C)一个文件中可以有多个访问权限为public的类
D)含义main()方法的类可以不加public类修饰符
63.以下哪个特点是Java语言所不具备的?(B)。
A)多线程B)多重继承C)跨平台D)面向对象
64.关于Applet与Application程序说法错误的是(D)。
A)Application以main()方法作为入口
B)运行Applet必须借助浏览器文件
C)Applet必须继承Applet类或JApplet类
D)Applet通过main()方法开始执行
65.黑色是图形的默认背景颜色。要设置图形颜色,应使用的方法是()。
A)setFont()B)getFont()
C)setColor()D)getColor()
66.下列说法错误的是(D)。
A)同一个包中的类相互访问,不用指定包名
B)一个包中的类访问另一个包中的类,使用包名与类名的组合或import语句
C)分布在不同源文件中的类也可以放在同一个包下
D)若省略package语句,则一个源文件中的所有类不在一个包下
67.所有的异常类皆继承子类下列中的(B)。
A)java.io.Exception B)https://www.doczj.com/doc/3b3093085.html,ng.Throwable
C)https://www.doczj.com/doc/3b3093085.html,ng.Exception D)https://www.doczj.com/doc/3b3093085.html,ng.Error
68.Throwable有两个直接子类,分别是(B)。
A)Exception和Object B)Exception和Error
C)Object和Error D)LinkageError和Error
69.(A)用于找不到类或接口所产生的异常。
A)ClassNotFoundException B)CloneNotSupportedException
C)IllegaAccessException D)InstantiationException
70.在Java程序中,异常对象是依靠(C)语句来捕获和处理的。
A)try/throw B)throw/final C)try/catch D)catch/final
71.直接抛出异常的格式为(D)。
A)try{}B)catch(ExceptionObject e)
C)throws newExceptionObject D)throw new ExceptionObject
72.下列不属于Swing中构件的是(C)
A)JPanel B)JTable C)Menu D)JFrame
73.按钮可以产生ActionEvent事件,实现(D)接口可处理此事件。
A)FocusListener B)ComponentListener
C)WindowListener D)ActionListener
74.下列(B)不属于容器组件。
A)JFrame B)JButton C)JPanel D)JApplet
75.如果要生成一个窗口,用(B)类来进行实例化。它的外观就像在Windows系统中见到的窗口一样,具有标题、边框和菜单等。
A)JButton B)JFrame C)JPanel D)Graphics
76.(A)是JPanel容器的默认布局管理器,其组件的放置规律是从上到下,从左到右。
A)FlowLayout B)BorderLayout C)GridLayout D)CardLayout
77.(B)的功能是设定边界布局。
A)setLayout(null)B)setLayout(new BorderLayout())
C)setLayout(new CardLayout())D)setLayout(new GridLayout())
78.图形界面中产生事件的组件称为(A)。
A)事件源B)容器C)窗口D)按钮
79.ActionListener接口中定义的方法是(C)。
A)action()B)actionperformed()
C)actionPerformed()D)actionFormed()
80.将实现ActionListener接口的类对象注册为按钮监听器,应使用方法(D)。
A)getSource()B)getActionCommand()
C)addListener()D)addActionListener()
81.要获得产生事件的组件名称,应使用方法(A)。
A)getSource()B)getActionCommand()
C)getCommand()D)getsource()
82.要获得产生事件的组件标签,应使用方法(B)。
A)getSource()B)getActionCommand()
C)getCommand()D)getsource()
83.如何在一个容器的底部放3个组件?(C)
A)设置容器的布局管理器为BorderLayout,并添加每个组件到容器的南部。
B)设置容器的布局管理器为FlowLayout,并添加每个组件到容器。
C)设置容器的布局管理器为BorderLayout,并添加每个组件到使用的另一容器,然后将该容器添加到第一个容器的南部。
D)设置容器的布局为GridLayout,并添加每个组件到容器
84.在Java图形用户界面编程中,若显示一些不需要修改的文本信息,一般是使用(A)类的对象来实现。
A、JLabel
B、JButton
C、JTextArea
D、JTextField
85.在Java中,开发图形用户界面的程序需要使用一个系统提供的类库,这个类库就是(B)包。
A、java.io
B、java.awt
C、java.applet
D、java.awt.event
86.输入字符流和输出字符流的两个顶层的抽象类分别是(B)。
A)FileInputStream和FileOutputStream B)Reader和Writer
C)FileReader和FileWriter D)InputStream和OutputStream//这个是字节流
87.线程生命周期中正确的状态是(B)。
A)新建状态、运行状态和终止状态
B)新建状态、运行状态、阻塞状态和终止状态
C)新建状态、就绪状态、运行状态、阻塞状态和终止状态
D)新建状态、就绪状态、运行状态、恢复状态和终止状态
88.有关线程的哪些叙述是对的。(C)
A)一旦一个线程被创建,它就立即开始运行.
B)使用start()方法可以使一个线程成为可运行的.
C)当一个线程因为抢先机制而停止运行,它被放在可运行队列的前面.
D)一个线程可能因为休眠的原因停止而进入消亡状态.
89.以下哪个方法用于定义线程的执行体?(C)
A)start()B)init()C)run()D)main()
90.在Applet的关键方法中,下列方法(D)是关闭浏览器以释放Applet占用的所有资源?
A)init()B)start()C)paint()D)destroy()
91.建立文件"file.txt"的字节输入流的语句是:(B)
A.InputStream in=new FileInputStream("file.txt");
B.FileInputStream in=new FileInputStream(new File("file.txt"));
C.InputStream in=new FileReader("file.txt");
D.DataInput in=new DataInputStream("file.txt");
92.创建一个DataOutputStream的语句是:(C)
A.new DataOutputStream(new File("out.txt"));
B.new DataOutputStream(new Writer("out.txt"));
C.new DataOutputStream(new OutputStream("out.txt"));
D.new DataOutputStream(new FileWriter("out.txt"));
93.下面语句正确的是:(A)
A.RandomAccessFile raf=new RandomAccesssFile(“myfile.txt”,”rw”);
B.RandomAccessFile raf=new RandomAccesssFile(new DataInputStream());
C.RandomAccessFile raf=new RandomAccesssFile(“myfile.txt”);
D.RandomAccessFile raf=new RandomAccesssFile(new File(“myfile.txt”));
94.下列创建InputStreamReader对象的方法中正确的方法是:(D)
A.new InputStreamReader(new FileInputStream(“data”));
B.new InputStreamReader(new FileReader(“data”));
C.new InputStreamReader(new BufferedReader(“data”));
D.new InputStreamReader(System.in)
95.以下不属于接口的是(D)
A)Statement
B)prepareStatement
C)Driver
D)DriverManager是类
96.关于ResultSetMetaDate API描述错误的是(D)
A)getColumnCount()返回列的数目
B)getColumnTypeName(int index)返回指定列的类型的名称
C)getColumnType(int index)返回字符串表示形式的指定列的类型
D)isNullable指定列是否为空
97.下面关于ResultSet说法错误的是(A)
A)查询结束后,所有的结果数据将一次性被存储在ResultSet对象中
B)Statement对象colse后,由其创建的ResultSet对象将自动close
C)查询结束后,ResultSet中的游标指向第一条记录之前,因此要先调用一次next才能取得记录
D)ResultSet的方法getString(...)意为取得该列的数据以字符串形式返回98.Java利用JDBC连接数据库的一般步骤(C)
A)加载驱动,实现Connection接口,建立ResultSet,实现Statement接口,关闭数据库相应资源
B)加载驱动,实现ResultSet接口,实现Connection接口,实现Statement接口,关闭数据库相应资源
C)加载驱动,实现Connection接口,实现Statement接口,建立ResultSet,关闭数据库相应资源
D)加载驱动,建立ResultSet,实现Statement接口,实现Connection接口,关闭数据库相应资源
99.在Java中,与数据库连接的技术是(B)。
A)ODBC B)JDBC
C)数据库厂家驱动程序D)数据库厂家的连接协议
100.下列(B)方法不是Statement对象所具有的方法。
A)executeUpdate()B)createStatement()
C)execute()D)executeQuery()
二、读程序写结果:
1.下列程序的输出结果为:___i=1002_______
public class Apple{
int i=0;
Apple(int i){
this.i=i;
}
Apple increament(){
i++;
return this;
}
void print(){
System.out.println("i="+i);
}
public static void main(String[]args){
Apple redapple=new Apple(1000);
redapple.increament().increament().print();
}
}
2.下列程序的输出结果为:___FatherClass.value=100_____
class FatherClass{
public int value=100;
public void f(){
System.out.println("FatherClass.value="+value);
}
}
class ChildClass extends FatherClass{
public int value=200;
public void f(){
super.f();
}
}
public class TestInherit{
public static void main(String[]args){
ChildClass cc=new ChildClass();
cc.f();
}
}
3.下面的程序的输出信息是____Total is91______________
public class Mystery{
public static void main(String[]args){
int y,x=1,total=0;
while(x<=6){
y=x*x++;//先执行黄色部分后再x++
total+=y;
}
System.out.println("Total is"+total);
}
}
4.下面的程序的输出信息是____27.0_____________
public class Test{
public static void main(String arg[]){
double sum=0.0;
for(int i=1;i<=100;i++)
sum+=10/i;
System.out.println("sum="+sum);
}
}
5.下面的程序的输出信息是___8;12;67;23;98;55;56;124;99;100;_____________ public class Test{
public static void main(String[]args){
int temp;
int a[]={12,67,8,98,23,56,124,55,99,100};