您好,欢迎访问三七文档
一.单选题(20*2=40分)1.向堆栈stack中插入一个数据obj,栈顶指向标为top,其操作步骤是____A)stack.push(obj);B)stack.push(obj);top++;C)top++;stack.push(obj);D)stack.push(obj);stack.pop();top++;2.执行下列程序段后,y的值变为。intx,y;for(y=1,x=1;y=50;y++){if(x=10){break;}if(x%2==1){x+=5;continue;}x-=3;}A)3B)4C)5D)63.当你试图编译运行下列代码的时候会发生什么?publicclassRuntimplementsRunnable{publicstaticvoidmain(Stringargv[]){Runtr=newRunt();Threadt=newThread(r);t.start();}publicvoidstart(){for(inti=0;i100;i++)System.out.println(i);}}A)从0一直输出到99B)编译后无法输出C)编译出错,该类还是一个抽象类4.编译运行以下代码时会发生什么情况?Strings1=One;Strings2=newString(One);if(s1.equals(s2)){System.out.println(Stringequals);}Booleanb1=newBoolean(true);Booleanb2=newBoolean(true);if(b1==b2){System.out.println(BooleanEquals);}A)编译出错B)只输出StringequalsC)输出Stringequals与BooleanequalsD)只输出Booleanequals5.下列说法正确的是()A、JAVA程序的main方法必须写在类里面B、JAVA程序中可以有多个main方法C、JAVA程序中类名必须与文件名一样D、JAVA程序的main方法中如果只有一条语句,可以不用{}(大括号)括起来6.Java中,在如下所示的Test类中,共有()个构造方法。publicclassTest{privateintx;publicTest(){x=35;}publicvoidTest(doublef){This.x=(int)f;}publicTest(Strings){}}A.0B.1C.2D.37.变量命名规范说法正确的是()A.变量由字母、下划线、数字、$符号随意组成;B.变量不能以数字作为开头;C.A和a在java中是同一个变量;D.不同类型的变量,可以起相同的名字;8.下列javaDoc注释正确的是()A./*我爱北京天安门*/B.//我爱北京天安门*/C./**我爱北京天安门*/D./*我爱北京天安门**/9.为一个boolean类型变量赋值时,可以使用()方式A.boolean=1;B.booleana=(9=10);C.booleana=真;D.booleana==false;10.以下()不是合法的标识符A.STRINGB.x3x;C.voidD.de$f11.表达式(11+3*8)/4%3的值是()A.31B.0C.1D.212.下列值不为true的表达式有()。A.john==johnB.john.equals(john)C.john=johnD.john.equals(newString(john))13.下列代码输出结果是()inti=10;while(i0){i=i+1;if(i==10){break;}}A.while循环执行10次B.死循环C.循环一次都不执行D.循环执行一次14.在java中下列关于自动类型转换说法正确的是()a)基本数据类型和String相加结果一定是字符串型b)char类型和int类型相加结果一定是字符c)double类型可以自动转换为intd)char+int+double+结果一定是double;15.score是一个整数数组,有五个元素,已经正确初始化并赋值,仔细阅读下面代码,程序运行结果是()temp=score[0];for(intindex=1;index5;index++){if(score[index]temp){temp=score[index];}}A.求最大数B.求最小数C.找到数组最后一个元素D.编译出错16.在Java中,关于构造方法,下列说法错误的是()a)构造方法的名称必须与类名相同b)构造方法可以带参数c)构造方法不可以重载d)构造方法绝对不能有返回值17.执行下面代码结果()for(inti=0;;){System.out.println(这是+i);break;}A、语法错误,缺少表达式2和表达式3B、死循环C、程序什么都不输出D、输出:这是018.下列选项中关于Java中super关键字的说法正确的是()。A、super关键字是在子类对象内部指代其父类对象的引用B、super关键字不仅可以指代子类的直接父类,还可以指代父类的父类C、子类通过super关键字只能调用父类的方法,而不能调用父类的属性D、子类通过super关键字只能调用父类的属性,而不能调用父类的方法19.Java中,如果类C是类B的子类,类B是类A的子类,那么下面描述正确的是()a)C不仅继承了B中的成员,同样也继承了A中的成员b)C只继承了B中的成员c)C只继承了A中的成员d)C不能继承A或B中的成员20.以下关于抽象类和接口的说法错误的是()A.抽象类在Java语言中表示的是一种继承关系,一个类只能使用一次继承。但是一个类却可以实现多个接口。B.在抽象类中可以没有抽象方法C.实现抽象类和接口的类必须实现其中的所有方法,除非它也是抽象类。接口中的方法都不能被实现D.接口中定义的变量默认是publicstaticfinal型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值。E.接口中的方法都必须加上public关键字。二、多选题(10*2=20分)1.关于类的描叙正确的是()A.在类中定义的变量称为类的成员变量,在别的类中可以直接使用B.局部变量的作用范围仅仅在定义它的方法内,或者是在定义它的控制流块中C.使用别的类的方法仅仅需要引用方法的名字即可D.一个类的方法使用该类的另一个方法时可以直接引用方法名2.下列关于字符串的描叙中错误的是()(选择两项)A.字符串是对象B.String对象存储字符串的效率比StringBuffer高C.可以使用StringBuffersb=这里是字符串声明并初始化StringBuffer对象sbD.String类提供了许多用来操作字符串的方法:连接,提取,查询等3.下面关于数组的说法中,错误的是()(选择两项)A.在类中声明一个整数数组作为成员变量,如果没有给它赋值,数值元素值为空B.数组可以在内存空间连续存储任意一组数据C.数组必须先声明,然后才能使用D.数组本身是一个对象4.给定java代码如下所示,在A处新增下列()方法,是对cal方法的重载(选择两项)publicclassTest{publicvoidcal(intx,inty,intz){}//A}A.publicintcal(intx,inty,floatz){return0;}B.publicintcal(intx,inty,intz){return0;}C.publicvoidcal(intx,intz){}D.publicviodcal(intz,inty,intx){}5.在Java中,下面对于构造函数的描述错误的是()(选择两项)A、类不一定要显式定义构造函数B、构造函数的返回类型是voidC、如果构造函数不带任何参数,那么构造函数的名称和类名可以不同D、一个类可以定义多个构造函数6.在Java接口中,下列选项中有效的方法声明是()。(选择二项)A、publicvoidaMethod();B、voidaMethod();C、protectedvoidaMethod();D、privatevoidaMethod();7.已知如下代码:1:classExample{2:Stringstr;3:publicExample(){4:str=example;5:}6:publicExample(Strings){7:str=s;8:}9:}10:classDemoextendsExample{11:}12:publicclassTest{13:publicvoidf(){14:Exampleex=newExample(Good,12);15:Demod=newDemo(Good);16:}}哪句语句会导致错误?A、line3B、line6C、line10D、line14E、line158.下面哪一个是合法的数组声明和构造语句()A.int[]ages=newint[100];B.intages=newint[100];C.intages[]=newint[100];D.int[]ages=newint(100);9.Java面向对象的特性包括()A.多态B.继承C.封装D.派生E.抽象10.用下面那个修饰符修饰的变量,可以在不同包的子类方法?()A.publicB.privateC.protectedD.默认的三、填空题(20分)1.当你尝试编译以下程序的时候,运行结果是什么__1____abstractclassBase{abstractpublicvoidmyfunc();publicvoidanother(){System.out.println(Anothermethod);}}publicclassAbsextendsBase{publicstaticvoidmain(Stringargv[]){Absa=newAbs();a.amethod();}publicvoidmyfunc(){System.out.println(Myfunc);}publicvoidamethod(){myfunc();}}2、以下程序通过线程的方式实现两个窗口同步卖票的程序,请在程序适当地方将代码补充完整实现给功能,并能保证卖出的票不会出现坐位相同或坐位为负数的情况;publicclassTicketThreadDemo{publicstaticvoidmain(String[]args){TicketThreadticket=newTicketThread();//创建两个线程,共享ticket资源,并启动Threadta=______2__________ta.start();Threadtb=____________3________________tb.start();}}classTicketThread__4__________{privateinttickets=20;//实现线程方法并实现互斥public_5voidrun(){while(true){if(tickets0){try{Thread.sleep(1000);//先让线程暂停1秒种System.out.println(Thread.currentThread().getName()+卖出一张票+tickets--);}catch(Exceptione){e.printStackTrace();}}}}}3.以下程序是通过实现接口的方式来创建了一个计时器的功能,在显示的窗体中显示计时的数字,请将代码补充完整;importjava.awt.Frame;importjava.awt.Label;publicclassCountFrameextendsFrame_6_{//实例化一个label标签Labellabel=newLabel(100,1);publicCountFrame(){//把label标签添加到窗体上this.add(label);//设置窗体的大小this.setSize(150,50);//实例化时间
本文标题:Java试题汇总
链接地址:https://www.777doc.com/doc-5686263 .html