• 154.00 KB
  • 2022-04-22 11:20:54 发布

《JAVA语言程序设计》练习题及答案.doc

  • 29页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'JAVA语言程序设计题及部分答案一、单选题:(每题1分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项的标记写在题干后的括号内。1.下列语句序列执行后,k的值是(B)。intm=3,n=6,k=0;while((m++)<(--n))++k;A)0B)1C)2D)32.设i、j为int型变量名,a为int型数组名,以下选项中,正确的赋值语句是(B)。A)i=i+2B)a[0]=7;C)i++---j;D)a(0)=66;3.Java语言的类间的继承关系是(B)。A)多重的B)单重的C)线程的D)不能继承4.设有定义inti=6;,则执行以下语句后,i的值为(C)。i+=i-1;A)10B)121C)11D)1005.下列选项中,用于在定义子类时声明父类名的关键字是(C)。A)interfaceB)packageC)extendsD)class6.若已定义byte[]x={11,22,33,-66};其中0≤k≤3,则对x数组元素错误的引用是(C)。A)x[5-3]B)x[k]C)x[k+5]D)x[0]7.下列语句序列执行后,ch1的值是(B)。charch1="A",ch2="W";if(ch1+2j)i--;elsej--;A)15B)16C)7D)89.下列语句序列执行后,k的值是(C)。inti=10,j=18,k=30;switch(j-i){case8:k++;case9:k+=2;case10:k+=3;default:k/=j;} A)31B)32C)2D)3310.下面语句执行后,i的值是(B)。for(inti=0,j=1;j<5;j+=3)i=i+j;A)4B)5C)6D)711.设有定义floatx=3.5f,y=4.6f,z=5.7f;则以下的表达式中,值为true的是(B)。A)x>y||x>zB)x!=yC)z>(y+x)D)x3);A)16B)8C)4D)213.以下由for语句构成的循环执行的次数是(B)。for(inti=0;true;i++);A)有语法错,不能执行B)无限次C)执行1次D)一次也不执行14.定义类头时能使用的修饰符是(C)。A)privateB)staticC)abstractD)protected15.设int型变量a、b,float型变量x、y,char型变量ch均已正确定义并赋值,正确的switch语句是D)。A)switch(x+y)B)switch(ch+1){......}{......}C)switchchD)switch(a+b);{......}{......}16.下列最终属性i的定义中,正确的是()。A)staticfinalinti=100;B)finalinti=1.2;C)finali="w";D)finalchari;17.下列类定义中,不正确的是(C)。A)classx{....}B)classxextendsy{....}C)staticclassximplementsy1,y2{....}D)publicclassxextendsApplet{....}18.设x、y为已定义的类名,下列声明x类的对象x1的语句中正确的是()。A)staticxx1;B)publicxx1=newx(int123);C)yx1;D)xx1=x();19.设i、j、k为类x中定义的int型变量名,下列类x 的构造函数中不正确的是(B)。A)x(intm){...}B)voidx(intm){...}C)x(intm,intn){...}D)x(inth,intm,intn){...}20.下列方法定义中,正确的是(A)。A)intx(){charch="a";return(int)ch;}B)voidx(){...returntrue;}C)intx(){...returntrue;}D)intx(inta,b){returna+b;}21.用于定义类成员的访问控制权的一组关键字是(D)。A)class,float,double,publicB)float,boolean,int,longC)char,extends,float,doubleD)public,private,protected22.不能构成循环的语句是(C)。A)for语句B)while语句C)switch语句D)do__while语句23.下列程序段执行后b3的结果是(D)。booleanb1=true,b2,b3;24=b1?b1:b2;A)0B)1C)trueD)false25下面数据结构中,属于非线性的是(B)。A)线性表B)树C)队列D)堆栈11.设有定义inti=123;longj=456;下面赋值不正确的语句是(D)。A)j=i;B)j=(long)i;C)i=(int)j;D)i=j;二、填空题:(每空1分)1.构造函数_没__有返回值。2.Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为float和___double_______两种具体类型。3.创建类对象的运算符是__new。4.当整型变量n的值不能被13除尽时,其值为false的Java语言表达式是__n%13==0___________。5.在Java语言中,所有的数组都有一个lenght属性,这个属性存储了该数组的__元素个数。6.定义类就是定义一种抽象的______父类______,它是所有具有一定共性的对象的抽象描述。7.在Java语言中,使用__平台无关___、___java虚拟机___等技术,实现软件重用。8.表达式3/6*5的计算结果是____0____。9.下面是一个类的定义: publicclass_intMyclass___________{intx,y;Myclass(inti,___=0____)//构造函数{x=i;y=j;}}10.下面是一个JavaApplication的主类的定义,其功能是输出所有命令行参数。importjava.io.*;publicclassMyClass{publicstaticvoidmain(Stringargs[]){if(args.length!=_0__)for(inti=0;ix[j+1]){w=x[j];x[j]=x[j+1];x[j+1]=w;}/*if(i==1||i==2)ShowArray(x);if(i==2)break;*/}}publicstaticvoidShowArray(intb[]){for(inti=0;iy;System.out.println("x>y=="+flag);flag=z>w;System.out.println("z>w=="+flag);}} 五、程序设计:(每题11分,共33分)1、编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF",6,应该输出为"我ABC"而不是"我ABC+汉的半个"。2、编程求解:所有两位整数能被3整除的数的和,以及不能被3整除的数的各位数字之和。3、设计一个程序求解e的值。精度达到1.0e-6,4、请设计一个对N个数进行排序的程序一、选择题(每道题只有一个正确答案,每小题2分,共30分)15道题1、关于Java语言叙述错误的是:(C)A.Java语言具有跨平台性B.Java是一种面向对象的语言C.Java语言中的类可以多继承D.Java的垃圾收集机制自动回收程序已不再使用的对象2、以下叙述正确的是:(B)的确台aA.构造方法必须是public方法 B.main方法必须是public方法C.Java应用程序的文件名可以是任意的D.构造方法应该声明为void类型3、关于Java中数据类型叙述正确的是:(B)A、整型数据在不同平台下长度不同B.boolean类型数据只有2个值,true和falseC.数组属于简单数据类型D.Java中的指针类型和C语言的一样4、设intx=1,floaty=2,则表达式x/y的值是:(D)  A.0  B.1  C.2  D.以上都不是5、以下语句有语法错的是:(A)  A.intx=1;y=2;z=3  B.for(intx=10,y=0;x>0;x++);  C.while(x>5);  D.for(;;);6、关于类和对象的叙述正确的是:(A)A.Java的类分为两大部分:系统定义的类和用户自定义的类B.类的静态属性和全局变量的概念完全一样,只是表达形式不同C.类的成员至少有一个属性和一个方法D.类是对象的实例化7、以下有关构造方法的说法,正确的是:(A)  A.一个类的构造方法可以有多个  B.构造方法在类定义时被调用  C.构造方法只能由对象中的其它方法调用  D.构造方法可以和类同名,也可以和类名不同8、以下有关类的继承的叙述中,正确的是:(D)  A.子类能直接继承父类所有的非私有属性,也可通过接口继承父类的私有属性  B.子类只能继承父类的方法,不能继承父类的属性  C.子类只能继承父类的非私有属性,不能继承父类的方法  D.子类不能继承父类的私有属性9、下列属于容器的组件有:(B)  A.JButton  B.JPane  C.Canvas   D.JTextArea10、void的含义:(C)  A.方法体为空  B.定义的方法没有形参  C.定义的方法没有返回值  D.方法的返回值不能参加算术运算11、关于Java中异常的叙述正确的是:(D)  A.异常是程序编写过程中代码的语法错误  B.异常是程序编写过程中代码的逻辑错误  C.异常出现后程序的运行马上中止  D.异常是可以捕获和处理的12、所有的异常类皆继承哪一个类?(C)  A.java.io.Exception  B.java.lang.Throwable  C.java.lang.Exception  D.java.lang.Error13、下面哪个不是java语言中的关键字?(B)  A.long  B.sizeof  C.instanceof  D.const14、为实现进程之间的通信,需要使用下列那种流才合适?(D)  A.Datastream  B.Filestream  C.Bufferedstream  D.Pipedstream15、在复选框中移动鼠标,然后单击一选项,要捕获所选项必需实现哪个接口?(D)  A.ActionListener  B.MouseListener  C.MouseMotionListern  D.ItemListener二、填空题(每空1分,共20分)1、面向对象程序设计所具有的基本特征是:___抽象性___,_封装性___,_继承性__,_多态性__2、数组x定义如下  intx[][]=newint[3][2]  则x..length的值为____3________,     x[0].length的值为_____2_______。3、Java中实现多线程一般使用两种方法,一是___继承Thread类_________,二是_____实现Runnable方法__________4、Java的图形用户界面设计中,有很多布局管理器用来摆放组件的位置,一般用到的布局管理器有(列出四种即可)__FlowLayout_____,___GridLayout_____,__BorderLayout_____,___CardLayout_______5、Applet常用的方法是:__init()_、__run()__、__stop()__和destroy()。三、阅读程序,写出程序的输出结果(每题5分,共20分)1、classA{privateintprivateVar;A(int_privateVar){      privateVar=_privateVar;   }   booleanisEqualTo(AanotherA){   if(this.privateVar==anotherA.privateVar)   returntrue;   else   returnfalse;   }  }publicclassB{publicstaticvoidmain(Stringargs[]){Aa=newA(1);Ab=newA(2);System.out.println(a.isEqualTo(b));   }  }程序的输出结果为:____false_____  2、classA{  doublef(doublex,doubley){  returnx*y;  }  }  classBextendsA{  doublef(doublex,doubley){  returnx+y;  }   }  publicclassTest{  publicstaticvoidmain(Stringargs[]){  Bobj=newB();  System.out.println("Theprogramoutputis"+obj.f(4,6));  }  }程序的输出结果为:__Theprogramoutputis10_3、publicclassUnchecked{publicstaticvoidmain(String[]args){try{method();}catch(Exceptione){System.out.println("A");}finally{System.out.println("B");}}staticvoidmethod(){try{wrench();System.out.println("C");}catch(ArithmeticExceptione){System.out.println("D");}finally{System.out.println("E");}System.out.println("F");}staticvoidwrench(){thrownewNullPointerException();}}程序的输出结果为:EAB4、publicclassTest{ publicstaticvoidmain(String[]args){intx;inta[]={0,0,0,0,0,0};calculate(a,a[5]);System.out.println("thevalueofa[0]is"+a[0]);System.out.println("thevalueisa[5]is"+a[5]);}staticintcalculate(intx[],inty){for(inti=1;i10);}publicstaticvoidmain(Stringarg[]){inti=10;Testt=newTest();t.printValue(i);}}输出将是什么?[C]A.8B.9C.10D.1129.类的设计要求它的某个成员变量不能被外部类直接访问。应该使用下面的哪些修饰符获得需要的访问控制?[D]A.publicB.不加修饰符C.protectedD.private//面向对象编程P196页的表格,private一行有错误30.给出下面的代码片断1Stringstr=null;2if((str!=null)&&(str.length()>10)){3System.out.println("morethan10");4}5elseif((str!=null)&(str.length()<5)){//空指针异常6System.out.println("lessthan5");7}8else{System.out.println("end");}哪些行将导致错误?[C]A.第1行B.第2行C.第5行D.第8行31.下面有关java代码安全性的叙述哪些是对的?[BCD]A.字节码校验器加载查询执行需要的所有类。B.运行时解释器执行代码。 C.在运行时,字节码被加载,验证然后在解释器里面运行。D.类加载器通过分离本机文件系统的类和从网络导入的类增加安全性。32.给出下面的代码publicclassPerson{intarr[]=newint[10];//非静态属性publicstaticvoidmain(Stringa[]){System.out.println(arr[1]);//静态方法不能访问非静态属性}}哪些叙述是对的?[A]A.编译时出错。B.编译时正确而运行时出错。C.输出0。D.输出null。33.给出下面的代码publicclassParent{publicintaddValue(inta,intb){ints;s=a+b;returns;}}classChildextendsParent{}哪些方法可以加入类Child中?[BC]//方法的覆盖A.intaddValue(inta,intb){//dosomething...}B.publicvoidaddValue(){//dosomething...}C.publicintaddValue(inta){//dosomething...}D.publicintaddValue(inta,intb)throwsException{//dosomething...}34.公有成员变量MAX_LENGTH是一个int型值,变量的值保持常数值100,定义这个变量的代码为?[CD]A.publicintMAX_LENGTH=100;B.finalintMAX_LENGTH=100;C.finalpublicintMAX_LENGTH=100;//修饰符的顺序可以交换D.publicfinalintMAX_LENGTH=100;35.下面的哪些java源文件代码片断是对的?[ACD] A.packagetestpackage;publicclassTest{//dosomething...}B.importjava.io.*;packagetestpackage;publicclassTest{//dosomething...}C.importjava.io.*;classPerson{//dosomething...}publicclassTest{//dosomething...}D.importjava.io.*;importjava.awt.*;publicclassTest{//dosomething..}36.给出下面的类publicclassSample{longlength;publicSample(longl){length=l;}publicstaticvoidmain(Stringarg[]){Samples1,s2,s3;s1=newSample(21L);s2=newSample(21L);s3=s2;longm=21L;}}哪个表达式返回true?[B]A.s1==s2;B.s2==s3;C.m==s1;D.s1.equals(m);37.给出下面有关java.awt.List的表达式Listl=newList(6,true);//第二个参数是false的话只能选一个其中哪些叙述是正确的?[AC]A.在没有其它的约束的条件下该列表将有6行可见。B.一行的最大字符数是6C.列表将允许用户多选D.列表只能有一项被选中38.给出下面的代码classParent{ Stringone,two;publicParent(Stringa,Stringb){one=a;two=b;}publicvoidprint(){System.out.println(one);}}publicclassChildextendsParent{publicChild(Stringa,Stringb){super(a,b);}publicvoidprint(){System.out.println(one+"to"+two);}publicstaticvoidmain(Stringargs[]){Parentp=newParent("south","north");Parentt=newChild("east","west");p.print();t.print();}}下面的哪些情况或输出的结果正确?[E]A.编译时出错B.southeastC.southtonortheasttowestD.southtonortheastE.southeasttowest39.类Teacher和Student都是类Person的子类Personp;Teachert;Students;若p,t和s都是非空值if(tinstanceofPerson){s=(Student)t;}这个语句导致的结果是什么?[C]//默认new时声明的都是本类; A.将构造一个Student对象B.表达式合法C.编译时非法D.编译时合法而在运行时可能非法一、单选题(本大题15小题,每小题2分,共30分)1.下列语句执行后,变量a、c的值分别是()。intx=182;inta,c;c=x/100;a=x%10;A)1,2B)2,1C)1.82,2D)100,82【答案】B2.下面哪个表达式可用得到x和y的最大值()?A)x>y?y:xB)xy?(x+y):(x-y)D)x==y?y:x;【答案】B3.以下是应用程序中定义的静态方法printBinary,若在其main方法中有方法调用语句printBinary(2),则输出的结果是()。staticvoidprintBinary(inti){System.out.print(i+"的2进制数表示为:t");for(intj=31;j>=0;j--)if(((1<max)max=x[i];}System.out.println(max);A)678B)122C)-987D)33【答案】A8.下列语句序列执行后,k的值是()。intx=2,y=5,k=0;switch(x%y){case0:k=x+y;break;case1:k=x-y;break;case2:k=x*y;break;default:k=x/y;break;}System.out.println(k);A)2B)5C)10D)0【答案】C9.下面的程序输出的结果是() publicclassAimplementsB{publicstaticvoidmain(Stringargs[]){inti;Ac1=newA();i=c1.k;System.out.println("i="+i);}}interfaceB{intk=10;}A)i=0B)i=10C)程序有编译错误D)i=true【答案】B10.应用程序的main方法中有以下语句,则输出的结果是()。intb[][]={{1,2,3},{4,5},{6,7}};intsum=0;for(inti=0;i