码迷,mobileinhere.cn
首页 > 编程语言 > 详细

2018.6.19 java模拟考试(基础习题)

时间:2018-06-20 00:02:41      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:类型   否则   boolean   als   数组声明   访问权限   简答题   二次   结果   

java模拟考试(基础习题)

一、单选题(每题1分 * 50 = 50分)

1.java程序的执行过程中用到一套jdk工具,其中javac.exe指( b )

a.java语言解释器
b.java字节码编译器
c.java文档生成器
d.java类分解器

2.在java语言中,不允许使用指针体现出的java特性是( d )

a.可移植
b.解释执行
c.健壮性
d.安全性

3. 00101010(&)00010111语句的执行结果是( c )

a.11111111
b.00111111
c.00000010
d.00000000

4.在java中语句:37.2%10的运算结果为( a )

a.7.2
b.7
c.3
d.0.2

5.0.6332 的数据类型是( b )

a.float
b.double
c.float
d.double

6.system.out.println(“5” + 2);的输出结果应该是( a )

a.52
b.7
c.2
d.5

 system.out.println("5"+2+1);521

7.下面的方法,当输入为 2 的时候返回值是多少( d )

public static int getvalue(int i) {
        int result = 0;
        switch (i) {
        case 1:
            result = result + i;
        case 2:    从这里进去    result=0+2*2  =4
            result = result + i * 2;
        case 3:     因为没有break结束   所以直接进入   result= 4+2*3  =10
            result = result + i * 3;
        }
        return result;
}


a.0
b.2
c.4
d.10

8.下列语句中,属于多分支语句的是( b )

a.if语句
b.switch语句
c.do while语句
d.for语句

9.下列程序执行的结果是( c )。

public class ex6 {
    public static void main(string[] args) {
        char ch=‘8‘;
        int r=10;
        switch(ch+1) {  第一次 9     第二次  15+1
            case ‘7‘: r=r+3;
            case ‘8‘: r=r+5;
            case ‘9‘: r=r+6;9+6=15
                break;
            default: ;
        }
    system.out.print(r);
    }
}


a.14
b.13
c.16
d.10

10.执行如下程序代码后,a的值是多少( c )

public class ex10 {
    public static void main(string[] args) {
       int a=0;
       int c=0;
        do{
        --c;
        a=a-1;
        }while(a>0);
        system.out.println("aa"+a);
    }    
}

a.0       b.1       c.-1      d.死循环

do while的特点:
    当不满足循环条件就退出,这种循环的特点是至少会执行循环一次,先执行循环后判断

11.下面程序代码执行的结果为:( b )

public class ex11 {
    public static void main(string[] args) {
      for(int i = 0;i<5;i++){
        system.out.println(i++);
        if(i%3==0)
        break;
        }   
    }
}

a.0   1   2
b.0   2
c.0   2   4
d.0   1   3


使用break语句是跳出循环执行循环之后的语句,而continue语句是中止本次循环继续执行下一次循环。

12.下列数组声明中错误的是( d )

a.int[] a         b.int a[]
c.int[][] a       d.int a[10]

13.执行完代码”int[] x=new int[25];”后,以下( a )说明正确的

a.x[24]为0
b.x[24]未定义
c.x[25]为0
d.x[0]为空

14.应用程序的main方法中有以下语句,则输出的结果是( a )

public class ex14 {
    public static void main(string[] args) {
       int[]  x= {122,33,55,678,-987};
        int  y= x[0];
        for(int i=1;i<x.length;i++){
            if(x[i]>y)
                y =x[i];
            }
            system.out.println(y);
    }
}

a.678   b.122   c.-987   d.33

15.方法methoda返回类型是( a )

public class returnit{
     return type methoda(byte x, double y) {
       return (short) x/y * 2;
   }
}

a.int    b.byte    c.long  d.double

16.下面程序运行的结果是( a )

public class x {
    private static int a;
    public static void main(string [] args) {
        modify(a);
        system.out.println(a);
    }

    public static void modify(int a) {
        a++;
    }
}

a.0       b.1       c.程序编译失败       d.程序抛出异常

17.给定如下java程序的方法结构,则方法体实现语句正确的是( c )

public string change(int i){ 方法体 }

a.return 100;
b.return ‘a’;
c.return i+””;
d.return i;

18.下列语句正确的是( a )

a.形式参数可以被视为local variable (局部变量)
b.形式参数可被字段修饰符修饰
c.形式参数为方法被调用时,真正被传递的参数
d.形式参数不可以是对象

a:形式参数和局部变量一样,生命周期随着方法的结束而终结,离不开方法。在java中形式参数都是值传递的,所以可以视为一个局部变量。

b:java中字段修饰符有:public、protected、default、private、final、static。在形式参数中,如果要使用字段修饰符,只能使用final修饰符。其他任何修饰符都能引起编译器错误。

c:java中方法没有引用调用,调用的形参都是拷贝的。 
d:形式参数可以是值或者对象。

19.在某个类中存在一个方法:void getsort(int x),以下能作为这个方法的重载声明的是( c )

a.public getsort(float x)   没有返回类型 一定是构造函数 不能重载
b.int getsort(int y)   参数一样不是重载
c.double getsort(int x,int y)
d.void get(int x, int y)

重载判定就是方法名相同传入的参数不同  参数列表不同

20.given the following

public class x {
    public static void main(string [] args) {
       string d="bookkeeper";
        d.substring(2,9);这里需要重新接收字符串  含义是重第二个开始到第九个位置结束 okkeepe
        d = "u"+d; 还是用最开始的d字符串
        system.out.println(d);
    }
}
what is the result (  b )

a.uookkeewoo
b.ubookkeeper
c.ubookkeepertoo
d.an exception is thrown at runtime

总结:substring(x)是从字符串的的第x个字符截取
     substring(x,y)是从x到y前的位置停止 

21.下面程序运行的结果是( a )

public class test1{
    public static void main(string args[]){
        string a="1234";
        string b="1234";
        string c = new string("1234");
        system.out.println(a==b);true  比较的是地址
        system.out.println(a==c);false 比较的是地址
        system.out.println(a.equals(c));true  比较的是内容
    }
}

a.true false true
b.true true  false
c.true false false
d.true true  true

22.给定如下java代码,编译运行后,输出的结果将是( b )

public class test {
    public static void main(string args[]) {
        string s1 = new string("test");
        string s2 = new string("test");
        if (s1 == s2)
            system.out.println("same");比较的是地址   new出来是开辟新的空间
        if (s1.equals(s2))
            system.out.println("equals");比较的是内容
    }
}

a.same
b.equals
c.sameequals
d.什么都不输出

23.下面的代码执行结果是( a )

public class tt{
    public static void main(string[]args){
        string a = "a";
        stringbuffer b = new stringbuffer("b");
        stringbuffer c = new stringbuffer("c");初始化出的stringbuffer对象的内容就是字符串”c”
        change(a,b,c);
            system.out.println(a+","+b+","+c);a,b1,c
}
static void change(string s,stringbuffer s1,stringbuffer s2){
    s=s+"1";
    s1.append("1");
        system.out.println("1"+s2); c
    s2=new stringbuffer("c1");c  初始化出的stringbuffer对象的内容就是字符串”c1”
        system.out.println("2"+s2); c1
    }
}

a.a,b1,c
b.a1,b1,c1
c.a,b,c
d. a1,b,c

注意:string类是final变量不可以修改,stringbuffer 是new出来的,生成的对象根据括号里面的内容来生成

24.下列说法正确的有( c )

a.class中的constructor不可省略
b.constructor必须与class同名,但方法不能与class同名
c.constructor在一个对象被new时执行
d.一个class只能定义一个constructor

方法可以和类名同名的,和构造方法唯一的区别就是,构造方法没有返回值。

25.关于对象的删除,下列说法正确的是( b )

a.必须由程序员完成对象的清除
b.java把没有引用的对象作为垃圾收集起来并释放
c.只有当程序中调用system.gc()方法时才能进行垃圾收集
d.java中的对象都很小,一般不进行删除操作

解释:在java中定义对象时往往通过new运算符为其分配内存空间,于是当不再希望使用这个对象时需要释放掉它所占用的内存。在java中,释放内存的工作是由系统自动隐含的进行,编程人员无须关心。

26.下列描述中,错误的是( a )

a.java要求编程者管理内存
b.java的安全性体现在多个层次上
c.applet要求在支持java的浏览器上运行
d.java有多线程机制

在编译层、解释层、平台层分别作不同的安全检查
applet本身不能运行,但能够嵌入到web浏览器中运行
多线程是java程序的并发机制,它能同步共享数、处理不同的事件

27.在如下所示的类test中,共有( c )个构造方法

public class test{
private int x;
public test(){  1
    x = 35;
}

public void test(double f) {
    this.x = (int)f;
}

public test(double f){  2
    this.x = (int)f;
}

public test(string s) { }  3
}

a.1
b.2
c.3
d.4

构造方法是与clss同名但是无返回值参数可以不同

28.设 a为已定义的类名,下列声明a类的对象a的语句中正确的是( a )

a.public  a  a=new  a( );
b.public  a  a=a( );
c.a  a=new  class( );
d.a  a

29.关于类的静态成员的不正确描述是()

a.静态成员不属于对象,是类的共享成员
b.静态数据成员初始化的时机要优先于实例成员
c.静态成员函数不拥有this指针,需要通过类参数访问对象成员
d.只有静态成员函数可以操作静态数据成员

30.下列说法正确的是( c )

a.java中包的主要作用是实现跨平台功能
b.package语句只能放在import语句后面
c.包(package)由一组类(class)和界面(interface)组成
d.可以用#include关键词来标明来自其他包中的类

31.关于继承的说法正确的是( b )

a.子类将继承父类所有的属性和方法
b.子类将继承父类的非私有属性和方法
c.子类只继承父类public方法和属性
d.子类只继承父类的方法,而不继承属性

32.下列修饰符中与访问控制无关的是( d )

a.private
b.public
c.protected
d.final

33.关于被私有访问控制符private修饰的成员变量,以下说法正确的是()

a.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类
b.可以被两种类访问和引用:该类本身、该类的所有子类
c.只能被该类自身所访问和修改
d.只能被同一个包中的类访问

34.关于对象成员占用内存的说法哪个正确( b )

a.同一个类的对象共用同一段内存
b.同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间
c.对象的方法不占用内存
d.以上都不对

35.下列哪个类的声明是正确的( d )

a.abstract final class hi{}
b.abstract private move(){}
c.protected private number;
d.public abstract class car{}

类声明的格式为: [修饰符]class类名[extends父类名][implements类实现的接口列表]{...} 修饰符指明类的访问控制符和类型说明符。修饰符包括:public、默认(也称friendly)、 abstract、final。public和默认(也称friendly)为访问控制符,abstract和final是类型说明符。访问控制符可以和类型说明符搭配使用.

36.以下程序的输出结果为( d )

class base {
    public base(string s) {
        system.out.println("b");
    }
}


class derived extends base {
    public derived(string s) {
        system.out.println("d");
    }
}

public class test{
    public static void main(string[] args) {
        new derived("c");
    }
}

a.bd
b.db
c.c
d.编译错误

37.在使用super 和this关键字时,以下描述正确的是( a )

a.在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过
b.super()和this()不一定要放在构造方法内第一行
c.this()和super()可以同时出现在一个构造函数中
d.this()和super()可以在static环境中使用,包括static方法和static语句块

解释:
    super()和this()类似,区别是,super从子类中调用父类的构造方法,this()在同一类内调用其它方法。
    3)super()和this()均需放在构造方法内第一行。
    4)尽管可以用this调用一个构造器,但却不能调用两个。
    5)this和super不能同时出现在一个构造函数里面,因为this必然会调用其它的构造函数,其它的构造函数必然也会有super语句的存在,所以在同一个构造函数里面有相同的语句,就失去了语句的意义,编译器也不会通过。
    6)this()和super()都指的是对象,所以,均不可以在static环境中使用。包括:static变量,static方法,static语句块。
    7)从本质上讲,this是一个指向本对象的指针, 然而super是一个java关键字。

38.当编译并运行以下程序列会出现什么结果( a )

class a{
public int getnumber(int a){
return a+1;
   }
}

class b extends a{
   public int getnumber(int a, char c){
      return a+2;
}
public static void main(string[] args){
    b b=new b();
    system.out.println(b.getnumber(0));
   }
}

a.编译错误
b.运行错误
c.1
d.2

39.阅读下列程序,选择哪一个是正确的输出结果() 没有图片

a.static a i’m a class static b i’m b class
b.i’m a class i’m b class static a static b
c.static a static b i’m a class i’m b class
d.i’m a class static a i’m b class static b

注释:静态成员是累的共享成员
     静态变量要在定义时就初始化
     调用静态方法时通过类或对象激活

40.如下题:在子类child2的方法f()中不可以操作的变量是( a )

package a;
class parent{
private int i=20;
protected int j=30;
public int k=40;
int h=50;
}

class child1 extends parent {    }

class child2 extends child1{

void f(){   }

}

a.i            b.j          c.k          d.h

41.下列程序的运行结果是( )。

class parent{
    int i=20;
    int j=30;
    void f(){
    system.out.print(” “+i);
   }
}

class child extends parent {
    int i=30;
    int k=40;
    void f(){
    system.out.print(” “+i);
}
    void g(){
        system.out.print(” “+k);
}

public static void main(string args[]){
parent x=new child();
system.out.print(x.i);
    x.f();
child x1=(child)x;
system.out.print(” “+x1.i);
x1.f();
   }
}

a.30 30 30 30       b.20 20 20 20     c.20 30 30 30     d.都不对

42.在java 中( c )。

a.一个子类可以有多个父类,一个父类也可以有多个子类
b.一个子类可以有多个父类,但一个父类只可以有一个子类
c.一个子类只可以有一个父类,但一个父类可以有多个子类
d.上述说法都不对

43.下列哪一种叙述是正确的( d )

a. abstract修饰符可修饰字段、方法和类
b. 抽象方法的body部分必须用一对大括号{ }包住
c. 声明抽象方法,大括号可有可无
d. 声明抽象方法不可写出大括号

44.设int a=-2,则表达式a>>3的值为( d )。

a.8
b.0
c.3
d.-1

1000 0010    右移之后 1000  0001

45.看下面的程序,请给出结果:( b )

public class testobj{
    public static void main(string[] args){
        object o=new object(){
            public boolean equals(object obj){
                return true;
    }
};
    system.out.println(o.equals("fred"));
    }
}

a.运行时抛出异常
b.true
c.fred
d.第三行编译错误

46.下面程序问题( c )

interface c {
   name = “”;
   void f();
   abstract void g();
   void h(){};
}

a.第2行编译错误
b.第4行编译错误
c.第5行编译错误
d.没有错误,正确

47.以下对抽象类的描述正确的是( d )

a.抽象类没有构造方法
b.抽象类必须提供抽象方法
c.抽象类可以通过new关键字直接实例化
d.有抽象方法的类一定是抽象类

48.以下描述错误的有( c )

a.abstract 可以修饰类、接口、方法
b.abstract修饰的类主要用于被继承
c.abstract 可以修饰变量
d.abstract修饰的类,其子类也可以是abstract修饰的
e.final可以用来修饰类、方法、变量

49.关于string,stringbuilder以及stringbuffer,描述错误的是( b )

a.对string对象的任何改变都不影响到原对象,相关的任何change操作都会生成新的对象
b.stringbuilder是线程安全
c.stringbuffer是线程安全
d.可以修改stringbuilder和stringbuffer的内容

string 
final 修饰,不可变

stringbuilder  非线程安全、不使用多线程的情况下,效率高

stringbuffer 
线程安全

50.在类的定义中可以有两个同名函数,这种现象称为函数( c )。

a.封装
b.重写
c.重载
d.继承

二、多选题(每题2分 * 10 = 20分)

1.关于final的说法正确的是( c d)

a.final一般修饰静态变量,静态变量不会发生变化
b.final不能修饰抽象类,抽象类是用来继承的
c.final修饰的方法,不能被重写,但是可以重载
d.final修饰类,类不能被继承, string就是final类

2. 下列标识符不合法的有( acd )

a.new    b.$usdollars    c.1234    d.car.taxi

3. 下面错误的初始化语句是( cd )

a.char str[]=”hello”;
b.char str[100]=”hello”;
c.char str[]={‘h’,’e’,’l’,’l’,’o’};
d.char str[]={‘hello’};

4.在java中,下面关于包的陈述中正确的是( a d )

a.包的声明必须是源文件的第一句代码。
b.包的声明必须紧跟在import语句的后面。
c.只有公共类才能放在包中。
d.可以将多个源文件中的类放在同一个包中。

5. 关于数组的描述正确的是 ( acd )

a. 数组有一个属性是length
b. 数组有一个方法是length()
c. 数组是固定长度,相同类型,连续的物理存储空间
d. 数组的声明可以是基本数据类型,也可以是对象类型数组,但是数组本身是引用类型

6.对于二分搜索法,下面描述正确的是(a c)

a.可用于数组
b.可用于单链表
c.只能在已排序的数据上进行
d.最坏情况下时间复杂度是o(n*logn)  

二分查找需要在已排序的数组上进行,需要能够通过下标直接索引到值,因此无法在链表上进行
二分查找首先要求数据是有序的,同时要求能随机访问数据元素, 有序数组可以, 链表不行,
二分查找因为每次都是从中间点开始查找,所以最坏情况是目标元素存在于最边缘的情况。最坏为o(logn)

7.下列关于类的继承的描述,正确的有?(b )

a.一个类可以直接继承多个父类
b.一个类可以具有多个子类
c.子类会自动拥有父类定义的有效访问权限的方法以及成员变量
d.一个类继承另一个类必须重写父类的方法

8. 下列描述错误的是?(b d)

a.类只能继承一个父类,但是可以实现多个接口
b.抽象类自身可以定义成员而接口不可以
c.抽象类和接口都不能被实例化
d.一个类可以有多个基类和多个基接口

java不支持多继承,只能有一个基类
接口中定义的成员变量默认为public static final,只能够有静态的不能被修改的数据成员;而且,必须给你赋初值,其所有成员方法都是public、abstract的,而且只能被这两个关键字修饰。

9. 数据的存储结构包括?( a b)

a.顺序存储
b.链式存储
c.图存储
d.二叉存储

10. 关于下面的代码说法正确的是()

final class d{

final int no=1;

final void f(){

final string s=””;

s = “some thing”;

}

}

a.该类不可被继承

b.第2行可不对no赋值

c.f方法不可被重写

d.没有编译错误

三、填空题(每题2分 * 5 = 10分)

1、如果一个 java 源程序文件中定义了4个类,则使用编译命令 编译该源程序文件,将生成 个扩展名为class 的字节码文件。

2、设 x = 2 则表达式 (x++)*3 的值是 。

3、java 语言的各种数据类型之间提供了两种转换: 、 。

4、java 设计有 关键字,这不仅防止了内存地址计算错误的问题,也省去了编程时对内存进行分配的烦恼。

5、我们在java 程序中把关键字 加到方法名称的面前,来实现子类调用父类的方法。

四、简答题(每题5分 * 4 = 20分)

1、抽象类(abstract class)和接口(interface)有什么异同?

2、什么是java虚拟机?为什么java被称作是“平台无关的编程语言”?

3、说明overload和override的区别。

4、&和&&的区别?

五、编程题(每题10分 * 2 = 20分 )

1、求100之内的素数(能被1和本身整除)。

2、请使用java编写程序对数组进行冒泡排序。

public class x{
    public static void main(string[] args){
        int[] arr = {34,2,6,4,23};
        for(int i =0;i<arr.length;i++){
            for(int j = 0;j<i;j++){
                if(arr[i]>arr[j]){
                    int temp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                }
            }
        }
        for(int i = 0;i<arr.length;i++){
            system.out.println(arr[i]);
        }
    }
}

2018.6.19 java模拟考试(基础习题)

标签:类型   否则   boolean   als   数组声明   访问权限   简答题   二次   结果   

原文地址:www.cnblogs.com/qichunlin/p/9163507.html

(0)
(0)
   
举报
评论 一句话评论(0
0条  
登录后才能评论!
2014 mobileinhere.cn 版权所有 京icp备13008772号-2
华人娱乐注册