分析Java程序设计09-10试卷A(一)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

浙江科技学院考试试卷第1页共13页浙江科技学院2009-2010学年第1学期考试试卷A卷考试科目Java程序设计考试方式闭完成时限120分钟拟题人审核人批准人2010年1月7日信息与电子工程学院2008年级计算机专业题序一二三四五六七八九十总分加分人复核人得分签名命题:一、选择题。在题后括号内,填上正确答案代号。(本大题共32小题,每小题1分,共32分)1、下列属于合法的Java标识符是A.+throwB._dogC.100US$D.=2.71828183分析:标识符可从一个字母、下划线(_)或美元符号($)开始,随后也可跟数字。标识符是大小写区别对待的并且未规定最大长度。有效标识符如下:-identifier-userName-User_name-_sys_varl-$change得分专业班级学号姓名………………………………………………………………………装订线……………………………………………………………………………………浙江科技学院考试试卷第2页共13页2、在Java程序中,分别使用下列关键词来依次声明类和接口:A、class、packageB、interface、classC、class、interfaceD、class、implements分析:类的关键字子实class,接口是interface,package是包的关键字,implements是实现接口的关键字3、欲使子类的方法不可重写父类的方法,在父类的方法名前须加上修饰符:A、finalB、publicC、privateD、protected分析:用final声明的final类,不能被继承,即不能有子类用final修饰父类中的一个方法,那么这个方法不允许子类重写,(老老实实继承,不许做任何篡改)用final修饰的成员变量或局部变量,就是常量,常量在声明时没有默认值,所以在声明常量时必须指定该常量的值,而且不能发生改变.4、设数组Array由以下语句定义int[]Array=newint[10]则数组的最后一个元素的正确引用方法为:A、Array[0]B、Array[10]C、Array[9]D、Array分析:像C语言一样的,如果定义为Array[n],则是从0-n-1这n个数有效5、下面关于构造函数的说法不正确的是:A、构造函数也属于类的方法,用于创建对象的时候给成员变量赋值。B、构造函数一定要和类名相同。C、构造函数没有返回值。D、构造函数不可以重载。分析:构造方法可以重载注:1.重载的两个条件是:参数个数不同或参数的类型不同2.如果不写构造方法,java会自动生成一个空的构造方法,但是如果写了自己的非空构造方法后,java就不会自动帮助生成那个空的构造方法了.6、构造函数何时被调用.A、创建对象时B、类定义时C、调用对象方法时D、使用对象的变量时分析:对象声明时并没有调用构造方法(比如Studentstudent;),只有对象被创建时才会调用构造方法(比如Studentstudent=newStudent();)7、cotinue语句()A、只中断最内层的循环B、只中断最外层的循环C、结束整个循环D、结束本次循环,转入进行下一次循环浙江科技学院考试试卷第3页共13页分析:在循环体中可以使用break语句和continue语句.在一个循环中,比如循环50次的循环语句中,如果在某次循环中执行break语句,那么整个循环语句就结束,如果在某次循环中执行了continue语句,那么本次循环就结束了,即不再执行本次循环中循环体中continue语句后面的语句.而转入进行下一次循环8、已知如下定义:Strings=xyz;下面哪个表达式是合法的?A、charc=s[1];B、s+=UVW;C、intlen=s.length;D、Stringt=s+‘ABC’;分析:A.ThetypeoftheexpressionmustbeanarraytypebutitresolvedtoStringC.s.lengthcannotberesolvedorisnotafield改成:intlen=s.length();就对了D.Invalidcharacterconstant9、下面的代码段中,执行之后输出结果是什么?inta=97;byteb1=(byte)128;byteb2=(byte)(-129);System.out.printf(“%c,%d,%d”,a,b1,b2);A、97,128,-129B、a,-128,127C、a,128,-129D、a,-128,129分析:1)%c输出的是a(int类型)的ASCII码所代表的字符,即ASCII码中97所对应的字符是’a’,2)byte只有八位,只能表示-128--127计算机中负数的存储方式是补码。对负数的绝对值的二进制值取反,再加一,即为负数的二进制码。如:-1的绝对值1的二进制码为00000001,取反得到11111110,再加一为11111111。-128的绝对值128的二进制码为10000000,取反得到01111111,再加一为10000000,正好是Byte的最大表示范围。第一位为符号位,0表示为正数,1为负数.例如00000001表示为1,而10000001表示为-127(记录符号位为-,取后面七位取反加一,再加上符号位),128(100000000)符号位为1,是负数,取后面0000000取反为1111111,加一即为128,加上负号,即为-12810、下列代码中的publicvoidadd(inta)方法在add(5)形式调用下产生什么输出?publicclassTest{publicvoidadd(inta){loop:for(inti=1;i3;i++){for(intj=1;j3;j++){if(a==5){breakloop;}System.out.println(i*j);浙江科技学院考试试卷第4页共13页}}}A、运行时错误B、抛出ArrayIndexOutOfBoundsException异常C、输出:1,2,2,4D、没有输出分析:if(a==5){breakloop;}程序执行到这里的时候,不会执行下面的System.out.println(i*j);而是直接跳出外循环继续执行(这里已经没东西执行了)如果想提高程序的可读性的话,不推荐使用breakloop;,因为一个跳来跳去的程序不适宜他人阅读…………如果不考虑对可读性的影响,巧妙的使用breakloop;很可能会提高程序性能,比如你判断一个二维数组里是否包含某个数,第二种方法显然比第一种方法性能高:设int[][]is={{1,2,3},{4,5,6},{7,8,9}};intcmp=5;第一种:intpos=-1;for(inti=0;i3;i++){for(intj=0;j3;j++){if(pos0&&is[i][j]==cmp){pos=i*3+j;break;}}}System.out.println(pos);第二种:intpos=-1;loop:for(inti=0;i3;i++){for(intj=0;j3;j++){if(is[i][j]==cmp){pos=i*3+j;breakloop;}}浙江科技学院考试试卷第5页共13页}System.out.println(pos);(对于这题,第一种必须外循环结束才可以出来,第二种只要得到这个数后就可以直接跳出外循环了,循环次数减少)11、传递3、0来运行下列代码中的方法divide(inta,intb),结果是:publicvoiddivide(inta,intb){try{intc=a/b;}catch(Exceptione){System.out.print(Exception);}finally{System.out.println(Finally);}}A、打印输出:ExceptionFinallyB、打印输出:FinallyC.、打印输出:ExceptionD.、没有任何输出分析:3/0是不合法的,会报错,catch(Exceptione)会捕捉到这个错误,并且执行System.out.print(Exception);finally中的语句是不论是否异常都会执行的.注:首先finally结构使代码总会执行,而不管有无异常发生其次try,catch,finally中fianlly的throw/return的级别最高,举例来说publicclassFinally{publicstaticvoidmain(String[]args){Finallye=newFinally();System.out.println(e.tryThis());}publicvoidthooo()throwsException{thrownewException();}publicinttryThis(){try{System.out.println(1);thooo();return1;浙江科技学院考试试卷第6页共13页}catch(Exceptionex){System.out.println(2);return2;}finally{System.out.println(4);return3;}}}上面这个程序输出的结果是1243看到么?try和catch的return根本没有作用,因为finally的代码优先级最高!不过像以上你的应用是不合理的,通常在finally语句中是进行资源的清除工作。如关闭打开的文件和通讯句柄,或者数据库链接等。如果finally里面没有return或者exception,那么你的catch语句的exception或者return语句将被如期执行了。12、下列哪个类中可以有abstract方法:A、抽象类B、匿名类C、泛型类D、异常类分析:抽象类:1)abstract类中可以有abstract方法,和普通的类相比,abstract类可以有abstract方法(抽象方法),也可以由非abstract方法.2)abstract类不能用new运算符创建对象.对于abstract类,不能使用new预算福创建该类的对象.如果一个非抽象是某个抽象类的子类,那么它必须重写父类的抽象方法m这就是为什么不允许使用final和abstract同时修饰一个方法的原因.注:1).abstract类也可以没有abstract方法.2).如果一个abstract类是abstract类的子类,它可以重写父类的abstract方法,也可以继承这个abstract方法.3).abstract类和接口的区别请看同一压缩包下的word文件.匿名类:匿名类是不能有名称的类,所以没办法引用它们.必须在创建时,作为new语句的一部分来声明它们.这就要采用另一种形式的new语句,如下所示:new类或接口类的主体浙江科技学院考试试卷第7页共13页泛型类:泛型类封装不是特定于具体数据类型的操作。泛型类最常用于集合,如链接列表、哈希表、堆栈、队列、树等。像从集合中添加和移除项这样的操作都以大体上相同的方式执行,与所存储数据的类型无关。(没怎么听过)异常类:捕捉并处理异常的类,自己看书P14013、下列程序的功能是在监控台上每隔2秒钟显示一个字符串“你好吗?”,能够填写在程序中下划线位置,使程序完整并能正确运行的语句是:publicclassTestimplementsRunnable{publicstaticvoidmain(Stringargs[]){Testt=newTest();Threadtt=newThread(t);tt.start();}publicvoidrun(){for(;;){try{;}catch(e){}System.put.println(你好吗?);}}}A.sleep(2000)RuntimeExceptionB.sleep(2000)InterruptedExceptionC.Thread.sleep(2000)Interrupt

1 / 13
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功