JAVA-基础选择题(期末自测试题)

 

  1. 编译Java  Application源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(  B )

    A..java              B. .class               C.  .html               D..exe

  2. 不允许作为类及类成员的访问控制符是(   C   )。

    A.public             B.private                         C.static               D.protected

  3. 设x=1,y=2,z=3,则表达式y+=z--/++x值是(  A    )。

    A.3                   B.3.5                  C.4                    D.5

  4. 关于下面程序片段,结论正确的是(  B    )。

    String a =”Java”;

    String b=”Java”;

    String x=”Ja”;

    String y=”va”;

    String c=x+y;

A.a和b指向同一个实例对象,a和c指向同一个实例对象

B.a和b指向同一个实例对象,a和c不指向同一个实例对象

C.a和b不指向同一个实例对象,a和c指向同一个实例对象

D.a和b不指向同一个实例对象,a和c不指向同一个实例对

  5.关于多态性的说法正确的是(  C  )。

A. 一个类中不能有同名的方法

B. 子类中不能有和父类中同名的方法

C. 子类中可以有和父类中同名且参数相同的方法

D. 多态性就是方法的名字可以一样,但返回的类型必须不一样

6.关于继承的说法,正确的是(  D    )。

A.超类的对象就是子类的对象

B.一个类可以有几个超类

C.一个类只能有一个子类

D.一个类只能有一个超类

7.下面的方法重载正确的是( C  )。

A. int fun (int a, float b){}   float fun(int a, float b){}

B. float fun (int a, float b) {}   float fun (int x, float y){}

C. float fun (float a){}  float  fun(float a, float b){} 

D. float fun1 (int a, float b){}  float fun2(int a ,float b){}

8.执行下面代码后,描述正确的是(   B    )

int a,b,c;

a=1;

b=2;

c=(a+b>3?a++:b++)

A.a的值是2,b的值是3

B.a的值是1,b的值是3

C.a的值是2,b的值是2

D.c的值是false

9.将类的成员的访问权限设置为默认的,则该成员被(    A    )

A.同一包中的类访问

B.其他包中的类访问

C.所有的类访问

D.所有的类的子类访问

10.有关类的说法,正确的是(    B     )。

A.类具有封装性,所以类的数据是不能被访问的

B.类具有封装性,但可以通过类的公共接口访问类中的数据

C.声明一个类时,必须使用public修饰符

D.每个类中必须有main方法,否则程序无法运行

11.编译一个定义了两个类和三个方法的Java源文件,总共会生成( D   )个字节码文件。

A.5个字节码文件,以“.java”为扩展名

B.2个字节码文件,以“.java”为扩展名

C.5个字节码文件,以“.class”为扩展名

D.2个字节码文件,以“.class”为扩展名

12.关于super的说法正确的是(    B   )。

A.是指当前对象的内存地址

B.是指当前对象的父类对象的内存地址

C.是指当前对象的父类

D.可以用在main()方法中

13.下面的代码,编译运行时,结果是(   A   )

public class Test{
 public static void main (String args[]){
 for(int i=0;i<3;i++){
 System.out.print(i);
}
System.out.print(i);
}
}

A.编译时报错

B.正确运行,输出012

C.正确运行,输出123

D.正确运行,输出0123

 

14.下面代码中,编译时会发生错误的是(   D    )。

class Parent{ }
	class Child extends Parent{
	 public static void main (String [] args){
   Parent p1 = new Child ();  //第一行
	   Parent p2 = new Parent ();  //第二行
   Child c1 = new Child ();  //第三行
   Child c2 = new Parent ();  //第四行
}
}

A.第一行

B.第二行

C.第三行

D.第四行

 

15.下面给定的代码,

Public static void main (String [] args){
 System.out.print(“Hello”+args[1]);
}

从命令行中传参:people world nation ,该程序的运行结果是(    D   )。

A.Hello people

B.Hello world

C.Hello people world nation

D.运行出现异常

 

16.Java语言中,尝试对null对象进行操作时,会产生(  B   )类型的异常。

A.ArithmeticException

B.  NullPointerException

C.  IOException

D.  EOFException

 

17.下面合法的标识符是(    B     )。

A.#_pound       B.  _underscore      C. 5Interstate         D. class

 

18.下面(    D     )赋值语句不会出现编译警告或错误的是。

A.float f =1.3; B.char c=”a”; C.byte b=257; D.int i=10;

 

19.字符流和字节流的区别在于(   D    )。

A.前者带有缓冲,后者没有

B.前者是块读写,后者是字节读写

C.二者没有区别,可以互换使用

D.每次读写的字节数不同

 

20.下列流中哪个不属于字节流(  D   )。

A.FileInputStream                      B.BufferedInputStream    

C.FilterInputStream                             D.InputStreamReader

 

21.Java语言中,String str=”123456789”,System.out.println(str.indexOf(“5”)),输出结果是(   C   )。

A.6                   B.5                  C.4                      D.3

 

22.下面的java代码运行结果是(   C    )。

import java.io.*;
public class B{
 public static void main(String [] args){
 int i =12;
System.out.println(i*=++i);
}
}

A.145 B.169 C.156 D.无法编译

 

23.Java中,byte数据类型的取值范围是(    C   )。

A.-256~255 B.-255~255 C.-128~127 D.-127~128

 

24.Java中的布局管理器,下列说法错误的是(    C    )。

A.FlowLayout以由上到下的方式从左到右排列组件

B.BorderLayout使用“东”、“西”,“南”,“北”,“居中”来指定组件的位置

C.GridLayout可以创建网格布局,网格布局中各组件的大小可以任意调整

D.可以通过容器的setLayout方法为容器指定布局管理器

 

25.Java中,关于HashMap类的描述,错误的是(    B    )。

A.HashMap使用键/值的形式保存数据

B.HashMap能够保证其中元素的顺序

C.HashMap允许将null用作键

D.HashMap允许将null用作值

 

26.构造函数何时会被调用?(    A     )

A.创建对象时                                B.可以出现在非抽象类中       

C.是没有方法体的方法                             D.抽象类中的方法都是抽象方法

 

27.下列选项中哪个是Java的有效关键字?(     C     )

A.name                B. hello               C. false             D. good

 

28.Frame对象默认的布局管理器是(     B  )。

A.FlowLayout      B. BorderLayout          C. CardLayout          D.null

 

29.下列哪一个import命令可以使我们在程序中创建输入/输出流对象。(    C   )

A.import java.sql.*;                          B.import java.util.*;

C.import java.io.*;                      D.import java.net.*;

 

30.下面哪一个import命令可以为我们提供编写网络应用程序的类(   D   )。

A.import java.sql.*;                       B.import java.util.*;

C.import java.io.*;                     D.import java.net.*;

 

31.下列哪一项不属于Swing的顶层容器?(    B   )

A.JApplet             B. JTree               C. JDialog               D.JFrame

 

32.覆盖和重载的关系是(    A    )。

A.覆盖只能发生在父类与子类之间,而重载可以发生在同一个类中

B.覆盖方法可以不同名,而重载方法必须同名

C.final修饰的方法可以被覆盖,但不能被重载

D.覆盖与重载是同一回事

 

33.关于this和super的说法正确的是(   C    )。

A.都可以用在main()方法中

B.都是指一个内存地址

C.不能用在main()方法中

D.意义相同

 

34.Java中的字符类型采用的是Unicode编码方案,每个Unicode码占用( B  )个比特位。

A.8             B.16               C.32               D.64

 

35.关于while循环和do…while循环的区别是(   D   )。

A.没有区别,这两个结构任何情况下效果一样

B.while循环比do…while循环执行效率高

C.while循环是先循环后判断,所以循环体至少被执行一次

D.do…while循环是先循环后判断,所以循环体至少被执行一次

 

36.Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点( B )。

A.安全性 B.多线程 C.跨平台 D.可移植

 

37.以下对封装描述正确的是(   D    )。

A.只能对一个类中的方法进行封装,不能对属性进行封装

B.如果子类继承了父类,对于弗雷中进行封装的方法,子类仍可直接调用

C.封装的意义不大,因此在编码时尽量不要使用

D.封装的主要作用在于对外隐藏内部实现细节,增强程序的安全性

 

38.一下不是Object类的方法是(  D    )。

A.clone() B.finalize() C.toString() D.hasNext()

 

39.以下对自定义异常描述错误的是(     C    )。

A.自定义异常必须继承Exception

B.自定义异常可以继承自Error

C.自定义异常可以更加明确定位异常出错的位置和给出详细出错信息

D.程序已经提供了丰富的异常类,使用自定义异常没有意义

 

40.以下对TCP和UDP描述正确的是(   D   )。

A.TCP不能提供数据的可靠性

B.UDP能够保证数据库的可靠性

C.TCP数据传输效率高于UPD

D.UPD数据传输效率高于TCP

 

41.下列关于对象序列化描述正确的是(  C   )。

A.使用FileOutputStream可以将对象进行传输

B.使用PrintWriter可以将对象进行传输

C.使用ObjectOutputStream类完成对象存储,使用ObjectInputStream类完成对象读取

D.对象序列化的所属类不需要Serializable接口

 

42.使用JDBC连接数据库的顺序是(     BADCE     )。

A.加载驱动

B.导入驱动包

C.发送并处理SQL语句

D.建立于数据库的连接

E.关闭连接

 

43.下面语句中,break的作用是( A )。

for(int i =0;i<10; i++){
 if(aData[i] ==TargetData){
 FoundID  = i;
break;
}
}

A.退出整个循环  B.退出当前循环 C.结束本次循环 D,终止程序

 

44.在Swing中,如何设置组件的边框(   C     )

A.通过根窗格的setBorder函数设置某个组件的边框

B.通过内容窗格的setBorder函数设置某个组件的边框

C.通过组件的setBorder函数设置

D.通过框架的setBorder函数设置某个组件的边框

 

45.结构化程序设计所规定的的三种基本控制结构是(   C    )。

A.输入、处理、输出             B.树形、网形、环形

C.顺序、选择、循环             D.主程序、子程序、函数

 

46.下面的程序中,s的最终结果是( A )。

public class dai {
	public static void main(String[] args) {
		int i,s=0;
		int a[] ={10,20,30,40,50,60,70,80,90};
		for(i=0;i<a.length;i++){
			if(a[i]%3==0)
				s+=a[i];
			System.out.println("s="+s);
		}
	}
}

 A.180    B.90  C.120    D.150

 

47.下列程序,输出的结果是:5 6 7 8 9

public class cook {
	public static void main(String[] args) {
		int i,j;
		int a [] ={5,9,6,8,7};
		for(i=0;i<a.length-1;i++){
			int k =i;
			for(j=i;j<a.length;j++)
				if(a[j]<a[k])
					k=j;
			int temp =a[i];
			a[i]=a[k];
			a[k]=temp;
		}
		for(i=0;i<a.length;i++){
			System.out.print(a[i]+" ");
		}
	}
}

 

48.下面的程序输出的结果是:是汽车

int x=5,y=6,z=4;
		if(x+y>z&&x+z>y&&z+y>x)
			System.out.println("是汽车");
		else
			System.out.println("是飞行器啊");

 

49.假设x=13,y=14,则表达式x%y!=0的值是( C )。

A.1 B.0 C.true D.false

 

50.Java是一种不支持多重继承的语言,但是我们可以通过___接口___实现。

 

 

 


版权声明:本文为weixin_43133008原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。