《高级语言程序设计》考试试卷.docx
姓名 学号 学院 专业 座位号 ( 密 封 线 内 不 答 题 )密封线线_ _ 诚信应考考,考试试作弊将将带来严严重后果果!华南理工工大学电电子商务务学院2006620007学学年第二二学期期期末考试试高级语语言程序序设计(Javva)066级试卷卷A注意事项项:1. 考前前请将密密封线内内填写清清楚; 2. 所有答答案请直直接答在在答题纸纸上; 3考考试形式式:闭卷卷; 4. 本试卷卷共五大大题,满满分1000分,考试时时间1220分钟钟。题 号一二三四五总分得 分评卷人一、填空空题(每每空2分分,共220分)1、根据据程序的的构成和和运行环环境的不不同,JJavaa源程序序分为两两类:AAppllicaatioon程序序和Applleet程序序。2、Jaava编编译器的的名称是是javvac.exee ;JJavaa的解释释器的名名称是jjavaa.exxe。3、默认认情况下下,整数数是inntegger类类型的,浮点字字面值是是douublee类型的的。4、在向向调用的的方法传传递参数数时,jjavaa是通过过传值调调用来传传递原语语类型参参数的,通过_引引用调用用_来传递递对象参参数的。1. 5、代码码::“if(x << 0) y = 110;eelsee y = 220;”,如用用“?”运算符符重写,则为:y = x < 00 ? 10 : 220;。6、对于于如下的的声明:voiid mm(dooublle . . . xx),参参数x隐隐式声明明为一个个douublee类型的的数组。7、jaava的的I/OO系统定定义了字字节流和和_字字符流_两种类类型的流流。8、vooid方方法的返返回方式式有两种种:到达达方法的的闭花括括号或执执行reeturrn语句句。9、位于于异常层层次结构构顶端的的是_TThroowabble_类。10、将将数值字字符串,如“23.23”转换为为对应的的二进制制形式,可以使使用由基基本数据据(原语语)类型型的包装装器定义义的分析析方法。二、选择择题(每每小题11.5分分,共115分)1、下面面哪个变变量是无无效的( DD )。AcoounttB$coounttC_coounttD6coountt2、下面面各叙述述正确的的是( C )。A. 简化运算算符总是是需要计计算两个个操作数数。B. Boolleann和innt不兼兼容的,但是可可以相互互强制类类型转换换。C. charr和byyte不不兼容,但彼此此可以强强制类型型转换。D. charr和boooleean兼兼容,且且可自动动类型转转换。3、以下下关于抽抽象类和和抽象方方法的陈陈述中,哪一句句是错误误的( C )。A含有有1个或多多个抽象象方法的的类必须须定义为为抽象类类。B可以以在一个个普通类类前加缀缀absstraact使使之成为为抽象类类。C抽象象方法允允许定义义为fiinall的。D抽象象方法不不允许有有方法体体。4、下列列有关wwhille循环环和doowhiile循循环的陈陈述,哪哪个是对对的:( DD )A、没有有区别,这两个个结构任任何情况况下效果果一样。B、whhilee循环比比dowhiile循循环执行行效率高高。C、whhilee循环是是先循环环后判断断,所以以循环体体至少执执行一次次。D、doowhiile循循环是先先循环后后判断,所以循循环体至至少执行行一次。5、下列列说法哪哪个正确确?( A )A、一个个程序可可以包含含多个源源文件。B、一一个源文文件中只只能有一一个类。C、一一个源文文件中可可以有多多个公共共类。D、一一个源文文件只能能供一个个程序使使用。6、关于于构造函函数的说说法哪个个正确?( C )A、一个个类只能能有一个个构造函函数。B、一一个类可可以有多多个不同同名的构构造函数数。C、构构造函数数与类同同名。D、构构造函数数必须自自己定义义,不能能使用父父类的构构造函数数。7、关于于继承的的说法正正确的是是:( BB )A、子类类将继承承父类所所有的属属性和方方法。B、子子类继承承父类的的非私有有属性和和方法。C、子子类只继继承父类类pubblicc方法和和属性。D、子子类只继继承父类类的方法法,而不不继承属属性。8、下面面的关键键字哪一一个不是是Javva异常常处理的的五个关关键词之之一。 (B )A、thhrowws BB、fiinallC、trry/ccatcch D、tthroow9、当在在一个表表达式中中混合有有不同类类型的数数据时,它们都都被转换换为同一一类型。这是通通过使用用Javva类型型升级规规则(ttypee prromootioon rrulee)完成成的。下下面的陈陈述那一一个是不不正确的的。 ( B )A、所有有的chhar、bytte和shoort都都被升级级为innt。如如果有一一个操作作数是llongg类型,整个表表达式就就全部升升级为llongg类型。B、如果果有一个个操作数数是flloatt类型,整个表表达式就就全部升升级为ddoubble类类型。 C、当计计算表达达式是类类型升级级只应用用于被操操作的值值。D、类型型升级可可能导致致某些不不可预测测的错误误。10、下下面的JJavaa修饰符符中哪一一个不是是Javva的访访问指示示符( C )。A、 ppubllic BB、prroteecteedC、 aabsttracct D、pprivvatee三、判断断题(正正确的打打,错误误的打××,每小题题1.55分,共共15分分)1. JJavaa程序中中的符号号常量(用关键键字fiinall修饰的的变量)必须在在声明的的同时完完成初始始化,否则会会导致一一个编译译错误。( )2. 在在Javva程序序的静态态方法体体中可以以引用非非静态数数据成员员或调用用非静态态方法成成员。( ×× )3、作用用域可以以嵌套,并且在在内部作作用域中中声明的的变量可可以与被被嵌套作作用域中中已声明明的变量量同名。(× )4、任意意多个类类可以实实现一个个接口;一个类类可以实实现任意意多个接接口。( )5、当一一个对象象引用变变量赋给给另一个个对象引引用变量量时,两两个变量量将引用用同一个个对象,但不会会生成对对象的副副本。( )6、下面面的代码码是有效效的。( )int numm100,suum,ccounnt;for(intt i = 00; ii < numm; ii+) suum += ii;counnt = i;7、下面面的代码码都是有有效的。 (×× )bytee b;int i;b = 10;i = b * b; b = 10;b = b * b;8、下面面的代码码是有效效的。 (× )for(i = 0; i < 110; i+) innt ssum; suum = suum + i; Systtem.outt.prrinttln("Suum iis: " + suum);9、下面面的代码码是有效效的。 (× )classs XX innt mmethh(innt aa, iint b) . Sttrinng mmethh(innt aa, iint b) . 10、下下面的代代码是有有效的。 ( × )classs AA exxtennds Exccepttionn .classs BB exxtennds A .try / .cattch (A excc) . catcch (B eexc) . 四、写出出下面程程序的运运行结果果(每小小题5分分,共220分)1、puubliiccllasss A44_1 publlicsstatticvvoidd maain(Strringg arggs) int i,jj;for(i=44;i>>=0;i-) for(j=00;j<<=i;j+) Sysstemm.ouut.pprinnt(""*"); Sysstemm.ouut.pprinntlnn(); K:1、*2、cllasss T intee1=110;intee2=220;intii = 0;statticiintjj = 0;T()i+; j+;classsTeest publlicsstatticvvoidd maain(Strringg arggs) T t = neew TT();T t1= neew TT();swapp(t);Sysstemm.ouut.pprinntlnn("ee1=""+t.e1+" ee2=""+t.e2);Sysstemm.ouut.pprinntlnn("tt1'ss i="+tt1.ii+" aand t1''s jj="+t1.j);publlicsstatticvvoidd swwap(T tt)int temmp=tt.e11; tt.e11=t.e2; t.ee2=ttempp;K: 2、e11=200 e22=100t1'ss i=1 aand t1''s jj=23、cllasss Pwwr doubblebb;intee;doubblevval; PPwr(douublee baase, innt eexp) b = basse;e = expp;val = 11;if(eexp=0) reeturrn;for( ; expp>0; exxp-) vval = vval * bbasee; doubble gett_pwwr() retuurnvval; classs DDemooPwrr publlicsstatticvvoidd maain(Strringg arrgs) Pwwr xx = neww Pwwr(44.0, 2); Pwwr zz = neww Pwwr(55.7, 0); Syysteem.oout.priintlln(xx.b + " rraissed to thee " + xx.e + " poowerr iss " + xx.geet_ppwr(); Syysteem.oout.priintlln(zz.b + " rraissed to thee " + zz.e + " poowerr iss " + zz.geet_ppwr(); K: 3、4.0 rraissed to thee 2 powwer is 16.05.7 raiisedd too thhe 00 poowerr iss 1.04、cllasssExccDemmo publlicsstatticvvoidd maain(Strringg arrgs) / HHeree, nnumeer iis llongger thaan ddenoom.int nummer = 6, 8, 10, 322,644 ;int dennom = 2, 0, 5 ;for(intt i=0; i<nnumeer.llenggth; i+) try SSysttem.outt.prrinttln(nummeri + "" / " + ddenoomii + " is " + nnumeerii/ddenoomii); catcch (ArrrayIIndeexOuutOffBouundssExccepttionn exxc) / ccatcch tthe exccepttionn Syysteem.oout.priintlln(""No mattchiing eleemennt ffounnd.""); catcch (Thrrowaablee exxc) Syysteem.oout.priintlln(""Somme eexceeptiion occcurrred."); K: 4、6 / 2 is 3Somee exxcepptioon ooccuurreed.10 / 5 is 2No mmatcchinng eelemmentt fooundd.No mmatcchinng eelemmentt fooundd.五、Jaava语语言编写写程序。(每题题10分分,共330分)1. ASCIII小写写字母与与大写字字母之差差为322。因此此,把一一个小写写字母转转换为大大写字母母只需减减去322。利用用这一点点编写一一个从键键盘读取取字符的的程序。把所有有的小写写字母转转换为大大写字母母,把所所有的大大写字母母转换为为小写字字母,并并显示结结果。其其他字符符保持不不变。当当用户按按下句点点键时,程序停停止。最最后,让让程序显显示发生生变化的的字母的的数量。1、classs CCaseeChgg puubliic sstattic voiid mmainn(Sttrinng aargss) thrrowss jaava.io.IOEExceeptiion chaar cch; intt chhangges = 00; Sysstemm.ouut.pprinntlnn("EEnteer pperiiod to stoop.""); do cch = (ccharr) SSysttem.in.reaad(); iif(cch >>= ''a' & cch <<= ''z') chh -= 322; chhangges+; Syysteem.oout.priintlln(cch); eelsee iff(chh >= 'AA' && chh <= 'ZZ') chh += 322; chhangges+; Syysteem.oout.priintlln(cch); wwhille(cch != ''.'); Sysstemm.ouut.pprinntlnn("CCasee chhangges: " + cchanngess); 2、编程程:分别别用递归归方法和和迭代方方法(ffor循循环)来来计算nn的阶层层(即求求n!)。2、/ TThiss iss a reccurssivee fuuncttionn. innt ffacttR(iint n) intt reesullt; if(n=1) retturnn 1; ressultt = facctR(n-11) * n; 对factR( )执行递归调用 retturnn reesullt; / TThiss iss ann itteraativve eequiivallentt. innt ffacttI(iint n) intt t, reesullt; ressultt = 1; forr(t=1; t <<= nn; tt+) reesullt *= tt; retturnn reesullt; 3、编程程:求出出11000之间的的所有素素数之和和(只能能被1和和本身整整除的整整数称为为素数)。classs ssushhu pubblicc sttatiic vvoidd maain(Strringg arrgs) innt ii,j,flaag; innt ssum=0; foor(ii=2;i<=1000;i+) fflagg=1;for(j=22;j<<i;jj+)if(i%jj)=0)fllag=0;breaak; iif(fflagg=11) suum+=i; Syysteem.oout.priintlln(""Alll off thhem is: ""+suum);