niusouti.com
更多“为使下列代码正常运行,应该在下画线处填入的选项是(  )。 int[] numbers=new int[n]; for”相关问题
  • 第1题:

    下列代码的执行结果是______。

    int numbers[]=new int[6];

    for(int i=1;i<numbers.length;i++){

    numbers[i]=i-1;

    System.out.print(numbers[i]+"");

    }

    A) 0 1 2 3 4 5

    B) 1 2 3 4 5 6

    C) 0 1 2 3 4

    D) 1 2 3 4 5

    A.

    B.

    C.

    D.


    正确答案:C

  • 第2题:

    为使下列代码正常运行,应该在下画线处填入的选 项是( )。 int[]numbers=new int[n]; for(int i=0;i<numbers. ;i++) numbers[i]=i+1:

    A.size

    B.length

    C.dimension

    D.measurement


    正确答案:B
    B。【解析】length表示数组的长度。

  • 第3题:

    阅读下面一个支持多线程并发操作的堆栈类代码 public class MyStack { private int idx=0; private int[] data=new int[8]; public ______ Void push(int i) { data[idx]=i; idx++; } … } 在下画线处应填入的是

    A.synchronized

    B.wait

    C.blocked

    D.interrupt


    正确答案:A
    解析:一个程序中单独的、并发的线程对同一个对象进行访问的代码段,称为临界区。在Java语言中,临界区可以是一个语句块或是一个方法,并且用synchronized关键字标识。本程序中push()方法即为临界区,所以需要用synchronized关键字标识。

  • 第4题:

    有以下程序fun(int *a,int n) { int i,j=0,p; p=j; for(i=j;i<n;i++) if(a[i]<a[p]) ____; return(p);}在下画线处应填入的是A.i=p B.a[p]=a[i] C.p=j D.p=i


    正确答案:D
    本题考查对程序作用的理解。该函数具有两个形参a和n,a为数组名,n为数组中元素的个数。函数的返回值为p,这里p为数组的下标。初始时,i、j、p都为0,for循环的初始表达式为i=j,条件表达式为i<n,也就是当i=n时,for循环结束。该for循环表达的含义为:初始时,令a[i]=a[p]=a[0],随后i可从0开始递增,直到n-1,对于每一个a[i],都与a[p]进行比较,空白处需要填入语句的部分是if语句满足条件后要进行的操作,表示如果a[i]<a[p],应当进行怎样的处理。选项A 是令i=p,此时整个程序中p的值没有发生改变,p=0,即如果a[i] <a[p],则令i=0,回到了初始化的状态,这样在for语句中造成了死循环,该选项错误。选项B是令a[p]=a[i],整个程序在运行过程中,p的值依然没有变化,p=0,即如果a[i] <a[0],则令a[0]=a[i],整个程序运行结束后,a[0]的数值应该为整个数组的最小值,用return语句返回下标0没有意义。选项C是令 p=j,程序在运行过程中,j的值和p的值都没有发生改变,整个程序没有意义。选项D是p=i,该语句的含义是如果a[i]<a[p],则令p=i,程序结束后则有a[p]为数组中的最小值,将最小值的下标返回。

  • 第5题:

    为了支持压栈线程与弹栈线程之间的交互与同步,在下画线处依次填入的语句是 public class IntStack { private int idx=0; private int[]data=new int[8]; public ______ void push(int i) { data[idx]=i; idx++; ______ } … }

    A.synchronized() notify()

    B.synchronized() this.wait()

    C.synchronized() this.notify()

    D.synchronized() sleep()


    正确答案:C
    解析:一个程序中单独的、并发的线程对同一个对象进行访问的代码段,称为临界区。在Java语言中,临界区可以是一个语句块或是一个方法,并且用synchronized关键字标识。本程序中push()方法即为临界区,所以需要用synchronized关键字标识。this.notify()把当前堆栈对象的wait pool中的一个线程释放到lock pool,等待该堆栈的锁以便运行。

  • 第6题:

    为使下列代码正常运行,应该在下画线处填入的选项是( )。

    A.static

    B.private

    C.abstract

    D.final


    正确答案:C
    抽象类中的抽象方法可以只声明,定义延迟到其子类。

  • 第7题:

    在下画线处填入代码,使程序正常运行并且输出“Hello!”。

    class Test ______ {

    public staric void maim (string[] args) {

    Test t=new Test();

    t.start();

    }

    public void run() {

    System.out.println("Hello!");

    }

    }


    正确答案:extends Thread
    extends Thread 解析:创建线程有两种方法:实现java.lang.Runnable接口和继承Thread类并重写run()方法。从创建线程实例的语句Test t=new Test();可以看出本程序通过继承Thread类来创建进程,因此答案为extends Thread。

  • 第8题:

    为使下列代码正常运行,应该在下画线处填入的选项是( )。 int[]numbers=new int[n]; for(int i=0;i<numbers. ;i++) numbers[i]=i+1:

    A.size

    B.length

    C.dimension

    D.measurement


    正确答案:B
    B。【解析】length表示数组的长度。

  • 第9题:

    阅读下列利用递归来求n!的程序。 class FactorialTest{ static long Factorial(int n){//定义Factorial方法 if(n= =1) return l; else return n*Factorial{ }; } public static void main{String a[]}{ //main方法 int n=8: System.out.println{n+"!="+Factorial (n)}; } } 为保证程序正确运行,在下画线处应该填入的参数是( )。

    A.n-1

    B.n-2

    C.n

    D.n+1


    正确答案:A
    A。【解析】因为在n不为l时,n!=n*(n-1)*(n-2)*…*1=n*(n-1)!,所以此处应为n-1。

  • 第10题:

    为使下列代码正常运行,应该在下画线处填人的选项是( )。A.ReaderB.InputStream

    为使下列代码正常运行,应该在下画线处填人的选项是( )。

    A.Reader

    B.InputStream

    C.Objectlnput

    D.ObjeetInputStream


    正确答案:D
    ObjectInputStream类和0bjectOutputStream类分别是InputStream类和0utputStream类的子类。0bjectInputStream类和0bjectOutputStream类创建的对象被称为对象输入流和对象输出流。对象输入流使用readObject()方法读取一个对象到程序中。

  • 第11题:

    为使下列代码正常运行,应该在下画线处填入的选项是( )。 abstract class person{ public Person(String n){ name=n: } Public String getDescription; public String getName{ return name; } private string name; }

    A.static

    B.private

    C.abstract

    D.final


    正确答案:C
    C。【解析】抽象类中的抽象方法可以只声明,定义延迟到其子类。

  • 第12题:

    单选题
    为使下列代码正常运行,应该在下画线处填人的选项是(  )。ObjectInputStream in = new ____(new FileInputStream(employee.dat));Employee[] newStaff = (Employee[]) in.readObject();in.close();
    A

    Reader

    B

    InputStream

    C

    ObjectInput

    D

    ObjectInputStream


    正确答案: B
    解析:
    ObjectInputStream类和0bjectOutputStream类分别是InputStream类和0utputStream类的子类。ObjectInputStream类和0bjectOutputStream类创建的对象被称为对象输入流和对象输出流。对象输入流可以使用readObject()方法读取一个对象到程序中。

  • 第13题:

    阅读下列利用递归来求 n! 的程序

    Class FactorialTest{

    Static long Factorial (int n) { // 定义 Factorial () 方法

    If (n==1)

    Return 1;

    Else

    Return n* Factorial(_____);

    }

    Public static void main (String a[]) { // main () 方法

    Int n=8;

    System.out.println{n+ ” ! = ” +Factorial (n)};

    }

    }

    为保证程序正确运行,在下划线处应该填入的参数是

    A ) n-1

    B ) n-2

    C ) n

    D ) n+1


    正确答案:A

  • 第14题:

    为使下列代码正常运行,应该在下画线处填人的选项是( )。

    A.static

    B.private

    C.abstract

    D.final


    正确答案:C
    抽象类中的抽象方法可以只声明,定义延迟到其子类。

  • 第15题:

    阅读下面利用递归来求n!的程序 class FactorialTest { static long Factorial(int n){ //定义Factorial()方法 if(n==1)return 1; else return n * Factorial(______); } public static void main(String a[]) { //main()方法 int n=8; System.out.println(n+"!="+Factorial(n)); } } 为保证程序正确运行,在下画线处应该填入的参数是

    A.n-1

    B.n-2

    C.n

    D.n+1


    正确答案:A

  • 第16题:

    阅读下面实现堆栈类并发控制的部分代码 public class DataStack{ private int idx=0; private int[]data=new int[8]; public void push(int i){ . ________________{ data[idx]=i; idx + +; } } } …… } 在程序下画线处填入正确选项是

    A.synchronized

    B.synchronized(this)

    C.synchronized()

    D.synchronized(idx)


    正确答案:B
    解析:synchronized关键字用于同步方法,而在同步一个代码块时,用度synchronized(this)来实现。

  • 第17题:

    为使下列代码正常运行,应该在下画线处填入的选项是( )。 A.ReaderB.InputStreamSXB

    为使下列代码正常运行,应该在下画线处填入的选项是( )。

    A.Reader

    B.InputStream

    C.ObjectInput

    D.ObjectInputStream


    正确答案:D
    ObjectInputStream类和0bjectOutputStream类分别是InputStream类和0utputStream类的子类。0bjectlnput-Stream类和ObjectOutputstream类创建的对象被称为对象输入流和对象输出流。对象输入流使用readObject()方法读取-个对象到程序中。

  • 第18题:

    阅读下列利用递归来求n!的程序。 为保证程序正确运行,在下画线处应该填入的参数是( )。A.n-1S

    阅读下列利用递归来求n!的程序。为保证程序正确运行,在下画线处应该填入的参数是( )。

    A.n-1

    B.n-2

    C.n

    D.n+l


    正确答案:A
    因为在n不为1时,n!=n*(n-1)*(n-2)*…*1=n*(n-1)!,所以此处应为n-1。

  • 第19题:

    以下函数返回a所指数组中最大值所在的下标值fun(int *a,int n){ int i,j=0,p; p=j; for(i=j;i<n;i++) if(a[i]>a[p])_________; return(p);}在下画线处应填入的内容是A.i=p B.a[p]=a[i] C.p=i D.p=j


    正确答案:C
    该题目所要求的是最大数的位置(下标),而不是最大数的数值。因此,在进行逐个比较的过程中,需要记录最大数的下标i。根据给出的程序可知,该下标记录在变量p中,所以,如果a[i]>a[p]这一关系成立,应该把i的值赋给p,这样才满足题目的要求。

  • 第20题:

    为使下列代码正常运行,应该在下画线处填入的选项是( )。 ObjectInputStream In= new (new FilelnputStream("employee. doc")); Employee[]newstaff=(Employee[])in.readObject ; In.close;

    A.Reader

    B.InputStream

    C.Objectlnput

    D.ObjectlnputStream


    正确答案:D
    D。【解析】ObjectlnputStream类和ObjectOutputStream类分列是InputStream类和OutputStream类的子类。ObjectlnputStream类和ObjectOutputStream类创建的对象被称为对象输入流和对象输出流。对象输入流使用readObject方法读取一个对象到程序中。

  • 第21题:

    已知:int n=10;那么下列语句中错误的是

    A.int*p=new long[n];

    B.int p[n];

    C.int*p=new long(n);

    D.int p[10];


    正确答案:B
    解析:本题考核指针、数组和new运算符。运算符new用于动态申请存储空间,它的操作数为某种数据类型且可以带有初值表达式或元素个数,若带初值,则其表达式为:指针>=new类型>(初值),如C选项所示,若带有元素个数,则其语法格式为:指针>=new类型>[元素个数>],如A选项所示。数组定义中数组大小必须为常量,而B选项中的n为一变量所以是错误的。

  • 第22题:

    为了支持压栈线程与弹栈线程之间的交互与同步,应 在下画线处填入的选项是( )。 public class StackTest{ private int idx=0; private int[]data=new int[8] public void push(int i){ synchronized(this){ ; data(idx)=i: idx++: } } }……

    A.this.notify

    B.interrupt

    C.this.wait

    D.sleep


    正确答案:A
    A。【解析】当一个线程使用的同步方法中用到某个变量,而且需要其他线程修改此变量后才能复合本线程的需要,那么可以使用wait方法。wait方法的作用是使本线程等待,并允许其他线程使用此同步方法。当其他线程使用完后应使用notify或者notifyAll方法允许其他线程使用此同步方法。Interrupt方法的作用是在run方法执行完之前就消灭此线程,而sleep方法的作用是延迟一段时间后执行。因为本题是为了支持压栈线程与弹栈线程之间的交互与同步,所以选A。

  • 第23题:

    阅读下面实现堆栈类并发控制的部分代码 public class DataStack } private int idx=0; private int[] data=new int[8]; public void push(int i) { ______ { data[idx]=I: idx++; } } … } 程序中下画线处应填入的正确选项是

    A.synchronized

    B.synchronized(this)

    C.synchronized()

    D.synchronized(idx)


    正确答案:B
    解析:在Java中,使用synchronized关键字标识临界区。Java平台将每个由synchronized语句设置的对象设置一个锁,称为对象锁,它是一种独占的排他锁,即同一时刻最多只能有一个线程获取该锁。为了能够正常地使用对象锁,对共享数据的所有访问都必须在临界区内,同时临界区的共享数据必须是私有的,确保只能通过对象的方法才能访问到。本程序中,下画线后边的代码即为临界区,所以需要用synchronized关键字标识。