Java基础阶段测试一
   
一、 选择题:(20分)
1、下列叙述中,正确的是:(
A声明变量时必须指定一个类型  BJava认为变量numberNumber相同
CJava中唯一的注释方式是“//D、源文件中public类可以有0或多个
    2    switch(expression)语句中,expression的数据类型不能是:Ajava接口有没有构造方法
Adouble    Bchar        Cbyte        Dshort
3、已知int[] a =new int[100];,在下列给出的数组元素中,非法的是:D
Aa[0]        Ba[1]        Ca[99]        Da[100]
4、下列语句序列执行后,x 的值是(  A )
int a=3, b=4, x=5;
if( ++a<b ) x=x+1;
A 5                B 3              C 4                  D 6
5、设 x,y 均为已定义的类名,下列声明对象x1的语句中正确的是(  C )
A public x x1= new y( );              B x x1=x( );
C x x1=new x( );                     D int x x1;
6、有一个类A,以下为其构造函数的声明,其中正确的是(B)
Avoid A(int x){...}                    BA(int x){...}
Ca(int x){...}                        Dvoid a(int x){...}
7Java语言的类间的继承关系是(  B)
A 多重的    B 单继承        C 线程的          D、不能继承
8、下面说法正确的是(  A)
Afinal 可修饰类、属性、方法。
Babstract可修饰类、属性、方法。abstract可修饰类、方法。
C、定义抽象方法需有方法的返回类型、名称、参数列表和方法体(没有方法体)。
D、用final修饰的变量(常量),在程序中可对这个变量的值进行更改。
9、对于下列代码: 
1) class Person {
  2) public void printValue(int i, int j) {//... }
  3) public void printValue(int i){//... }
  4) }
  5) public class Teacher extends Person {
  6) public void printValue() {//... }
  7) public void printValue(int i) {//...}
  8) public static void main(String args[]){
  9) Person t = new Teacher();//赋值兼容规则
  10) t.printValue(10);
  11) }
  第10行语句将调用哪行语句?( D
A line2            B line3            C line 6          D line 7
10下面关于java中类的说法哪个是不正确的(  c
A、类体中只能有变量定义和成员方法的定义,不能有其他语句。
B、构造函数是类中的特殊方法。
C、类一定要声明为public的,才可以执行
D、一个java文件中可以有多个class定义(但只能有一个Public修饰的类)。
  11、给出一段程序,选择运行结果(       
public class sss {
public static void main(String args[])
{
            String s1=args[1];    String s2=args[2];
          String s3=args[3];    String s4=args[4];
          System.out.println(“args[2]=”+s2);
}
}
命令行执行:  java sss 1 2 3 4  结果是下面哪一个?
Aargs[2]=2            Bargs[2]=null        Cargs[2]=1        D、运行出现异常
    12下面的是关于类及其修饰符的一些描述,正确的是:(    )。
      Aabstract类只能用来派生子类,不能用来创建abstract类的对象
(可以用赋值兼容规则 )。
        Bfinal类不但可以用来派生子类,也可以用来创建final类的对象。
        Cabstract不能与final同时修饰一个类。
      Dabstract方法必须在abstract类中声明,但abstract类定义中可以没有abstract方法
13、下列关于静态初始化器的叙述中,哪一个是正确的?(   
        A、静态初始化器是在构造函数之前加上static修饰符。
        B、静态初始化器是对类自身进行初始化。
        C、静态初始化器在同一个类中只能有一个。
        D、静态初始化器是在其所属的类加载内存时由系统自动调用执行。
    14、编译并运行下面的程序,运行结果为().
public class T1 {
public static void main (String[] args){
T1 a=new T1();
a.method(8);
a.method(1.2f);
}
void method(float i) {
System.out.println("float: "+i);
}
void method(long i) {
System.out.println("long: "+i);
}
}
A、程序有编译错误,因为两个method()方法必须定义为静态(static)的。
B、程序可以编译运行,输出结果为:
long: 8
float: 1.2
C、程序可以编译运行,输出结果为:
float: 1.2
long: 8
D 程序中定义的两个参数不同的method方法称为方法重栽。
15、编译并运行下面的程序,运行结果为(    ).
public class A {
public static void main (String[] args) {
A a=new B( );
a.test();
}
void test()  {
System.out.print ("A");
}
}
class B extends A {
void test() {
st();
System.out.println("B");
}
}
A、子类B定义了与父类A中同名的方法testjava中称为方法的覆盖。
B、代码可以编译运行,并输出结果:AB
C、代码可以编译运行,并输出结果:A
D、子类B定义了与父类A中同名的方法testjava中称为方法的重载
    16、下面哪个说法正确(    )
A、如果某公共的接口被声明在一个源文件中,则接口必须与源文件具有相同的名字。
B、如果源文件包含import语句,则该语句必须是除空行和注释行外的第一个语句行。
C、如果某源文件包含package语句,则该语句必须是第一个非空、非注释行。
  D、接口中的方法必定是抽象方法,但可以不用关键字abstract修饰。
17、类的设计要求它的某个成员变量不能被外部类直接访问。应该使用下面的哪些修饰符获得需要的访问控制?
      A public
       Bno modifier
      C protected(权限仅次于public
      D private
18、哪些返回true ? [多选]
      String s= "hello";
      String t = "hello";
      char c[] = {'h','e','l','l','o'} ;
      As.equals(t);
      B t.equals(c);
      C s==t;
      Dt.equals(new String("hello"));
      E t==c.
19、类TeacherStudent都是类Person的子类
      Person p;
      Teacher t;
      Student s;
      p, t and s are all non-null.
      if(t instanceof Person) { s = (Student)t; }
      这个语句导致的结果是什么?
      A、将构造一个Student对象。
      B、表达式合法
      C、编译时非法。
  D、编译时合法而在运行时可能非法。 
20、给出下面的代码:
      class Person {
          String name,department;
          public void printValue(){
              System.out.println("name is "+name);
              System.out.println("department is "+department);
          }
      }
      public class Teacher extends Person {
          int salary;
          public void printValue(){
              // doing the same as in the parent method printValue()
              // including print the value of name and department.
              System.out.println("salary is "+salary);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。