上海交通大学《Java语言程序设计》期末试题B卷答案.docx
- 文档编号:27919226
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:15
- 大小:23.09KB
上海交通大学《Java语言程序设计》期末试题B卷答案.docx
《上海交通大学《Java语言程序设计》期末试题B卷答案.docx》由会员分享,可在线阅读,更多相关《上海交通大学《Java语言程序设计》期末试题B卷答案.docx(15页珍藏版)》请在冰豆网上搜索。
上海交通大学《Java语言程序设计》期末试题B卷答案
绝密*启用前
2011-2012年上海交通大学《Java语言程序设计》期末试题B卷
(2011—2012学年第1学期)
考试形式 笔试(闭卷) 使用学生11本科生
考试时间 120 分钟 出卷时间2012年06月17日
Forpersonaluseonlyinstudyandresearch;notforcommercialuse
【说明】
(1)考生应将全部答案都写在答题纸上,否则作无效处理。
(2)试题一~五为程序填空选择题,请从供选择答案中为每个空格挑选出一个正确答案,并写在答题纸上,试题六为程序填空题,试题七八为程序设计题。
Forpersonaluseonlyinstudyandresearch;notforcommercialuse
试题一(程序选择,每题2分,共10分)
【程序说明】利用下列公式计算pi的近似值,要求精确到10-6为止。
请将程序填充完整或回答相关问题。
Pi/4≈1–1/3+1/5–1/7+…
Forpersonaluseonlyinstudyandresearch;notforcommercialuse
【程序代码】
publicclassCalculatePI
{
Forpersonaluseonlyinstudyandresearch;notforcommercialuse
publicstaticvoidmain(String[]args)
{
"pi=%.6f",Pi());
Forpersonaluseonlyinstudyandresearch;notforcommercialuse
}
publicstaticdoublePi()
{
doubleresult,item;
intdenominator;
result=0;
denominator=1;
(1)C;
do
{item=
(2)A;
result+=item;
sign=-sign;
denominator+=2;
}while((3)B);
returnresult*4;
}
}
【可供选择的答案】
(1)
A.intsign
B.intsign=0
C.intsign=1
D.intsign=-1
(2)
A.(double)sign/denominator
B.(int)sign/denominator
C.sign/denominator
D.1.0/denominator
(3)
A.Math.abs((int)sign/denominator)>=1e-6
B.Math.abs((double)sign/denominator)>=1e-6
C.(double)sign/denominator>=1e-6
D.Math.abs((int)sign/denominator)>=10-6
(4)
以下关于main方法说法正确的是 C 。
A.一个类不可以没有main方法;
B.一个类可以有多个main方法;
C.一个应用程序可以有多个类,并且每个类可有main方法;
D.一个可执行的应用程序可以没有main方法。
(5)
以下关于main方法前的关键字void说法正确的是 C 。
A.表示该方法不能输出任何结果;
B.表示该方法的静态方法;
C.表示该方法不返回任何结果;
D.表示该方法的访问权限是公有的。
试题二(程序选择,每题2分,共10分)
【程序说明】以下程序是某个类的一个sort方法,功能是对作为参数传入的int型数组arrayX用冒泡法对其进行由小到大排序,请将程序填充完整或回答相关问题,要求选出最佳答案。
【程序代码】
publicvoidsort((6)A)
{
intt;
for(intk=0;k { for(intj=1;j<(7)D;j++) { if((8)A) { t=arrayX[j]; (9)D; arrayX[j-1]=t; } } } } 【可供选择的答案】 (6) A.int[]arrayX B.intarrayX C.int[]arrayX[] D.finalint[]arrayX (7) A.arrayX.length-1 B.arrayX.length C.arrayX.length-k D.k (8) A.arrayX[j-1]>arrayX[j] B.arrayX[j] C.arrayX[j]>arrayX[j-1] D.arrayX[j] (9) A.t=arrayX[j-1] B.arrayX[j]=t C.arrayX[j-1]=arrayX[j] D.arrayX[j]=arrayX[j-1] (10) 以下关于数组的说法错误的是A。 A.int型数组可以放直接放double型数据; B.起始下标为0; C.int型数组可以放直接放byte型数据; D.下标越界时,会抛出异常 试题三(程序选择,每题2分,共12分) 【程序说明】Triangle为三角形类,方法getArea()用于计算并返回三角形面积(根据三边a,b,c求三角形面积的方法是: 令 面积 ),请将程序填充完整或回答相关问题。 【程序代码】 publicclassTriangle { privatedoublesideA; privatedoublesideB; privatedoublesideC; publicTriangle(doublea,doubleb,doublec)(11)C { if((a+b<=c)||(b+c<=a)||(a+c<=b)) { thrownewException("三条边不能构成三角形"); } else { sideA=a; sideB=b; sideC=c; } } public(12)AgetArea() { doubles=0; doublel=(sideA+sideB+sideC)/2.0; s=(13)A; returns; } } publicclassTest { publicstaticvoidmain(String[]args) { doublea=3.0,b=4.0,c=5.0;//*** try { (14)D; "三角形面积为"+tri.getArea()); } (15)C { ; } } } 【可供选择的答案】 (11) A.空 B.thrownewException() C.throwsException D.throwsIOException (12) A.double B.void C.float D.int (13) A.Math.sqrt(l*(l-sideA)*(l-sideB)*(l-sideC)) B.Math.sqrt(l(l-sideA)(l-sideB)(l-sideC)) C.Math.abs(l*(l-sideA)*(l-sideB)*(l-sideC)) D.Math.abs(l(l-sideA)(l-sideB)(l-sideC)) (14) A.Triangletri=newTriangle() B.Triangletri C.Triangletriangle=newTriangle(a,b,c) D.Triangletri=newTriangle(a,b,c) (15) A.catch(IOExceptionex) B.catch(Exceptione) C.catch(Exceptionex) D.catch(IOExceptione) (16) 该程序的输出结果为A。 A.三角形面积为6.0 B.三条边不能构成三角形 C.6.0 D.程序出错,没有结果 试题四(程序选择,每题2分,共8分) 【程序说明】以下程序为类Person、Animal、Chinese、Zhejiang和Test的代码,请将程序填充完整或回答相关问题。 【程序代码】 //Person.java package; public(22)BclassPerson { (23)BStringhairColor; publicabstractvoidspeak(); publicPerson() { hairColor=””; "人类"); } } //Animal.java package; publicclassAnimal { } //Chinese.java package; publicclassChineseextendsPerson { publicvoidspeak() { "我会说汉语"); } publicvoidspeak(Stringmsg) { "我会说"+msg); } publicChinese() { hairColor="黑色"; "中国人"); } } //Zhejiang.java publicclassZhejiangextendsChinese { publicvoidspeak() { (24)A//调用父类的方法speak() } publicZhejiang() { "浙江人"); } } //Test.java publicclassTest { publicstaticvoidmain(String[]args) { Zhejiangp=newZhejiang(); } } 【可供选择的答案】 (22) A.void B.abstract C.fianal D.static (23) 若成员变量hairColor能被类Chinese中的方法访问,但不被Aniaml类中方法访问,则应该填入 A.public B.protected C.private D.static (24) A.super.speak(); B.Chinese.speak(); C.speak(); D.this.speak(); (25) 执main()方法,输出的结果为A A.人类 中国人 浙江人 B.人类 我会说汉语 浙江人 C.浙江人 中国人 人类 D. 我会说汉语 我会说浙江普通话 试题五(程序填空,每题2分,共14分) 【程序说明】请按程序模板及注释要求,将程序填充完整。 【程序代码】 【代码1】//仔细阅读程序,导入必要的包 import; publicclassMyFrameextendsFrame【代码2】//实现事件监听接口 { TextFieldtext; Labellabel; publicMyFrame() { this.setBounds(100,100,300,200); 【代码3】//创建TextField对象: text,要求text的可见字符数为12个机器字符。 【代码4】//创建Label对象: label,要求label上是"Ilovethisgame"。 【代码5】//设置窗口的布局为FlowLayout型布局。 【代码6】//将当前窗口作为text的ActionEvent事件的监视器。 this.add(label); this.add(text); 【代码7】//设置窗口可见 this.addWindowListener(【代码8】{//创建窗体适配器的匿名类对象 publicvoidwindowClosing(WindowEvente){ 【代码9】}//退出应用程序 });//匿名类定义结束 } publicvoidactionPerformed(ActionEvente) { 【代码10】//label调用方法将自己名字设置为text中的文本 } } 【代码1】 importjava.awt.*; 【代码2】 implementsActionListenter 【代码3】 text=newTextField(12); 【代码4】 label=newLabel("Ilovethisgame"); 【代码5】 setLayout(newFlowLayout()); 【代码6】 text.addActionListener(this); 【代码7】 this.setVisible(true); 【代码8】 newWindowListener() 【代码9】 System.exit(0); 【代码10】 label.setText(text.getText()); 试题六(编程题,共15分) 【编程要求】根据以下的设计要求编写java源代码。 类名: Person 变量(访问权限均为private): name(String)//姓名,age(int)//年龄 方法: 构造方法(没有参数,设置姓名为“无名氏”,年龄为20) setName(有一个名为name的String型参数,将name的值设为这个新值), getName(没有参数,返回姓名) setAge(有一个名为age的int型参数,将age的值设为这个新值), getAge(没有参数,返回年龄) isSameAge(有一个参数s,是另一个Student对象的引用,如果两个Student对象的age相同,则返回true,否则返回false) publicclassStudent{ privateStringname; privateintage; publicStudent() { this.name="无名氏"; this.age=20; } publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } publicintgetAge(){ returnage; } publicvoidsetAge(intage){ this.age=age; } publicbooleanisSameAge(Students) { if(s.getAge()==this.age) returntrue; returnfalse; } } 试题七(编程题,共15分) 试题八(编程题,) … … 仅供个人用于学习、研究;不得用于商业用途。 Forpersonaluseonlyinstudyandresearch;notforcommercialuse. NurfürdenpersönlichenfürStudien,Forschung,zukommerziellenZweckenverwendetwerden. Pourl'étudeetlarechercheuniquementàdesfinspersonnelles;pasàdesfinscommerciales. толькодлялюдей,которыеиспользуютсядляобучения,исследованийинедолжныиспользоватьсявкоммерческихцелях. 以下无正文
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java语言程序设计 上海交通大学 Java 语言程序设计 期末 试题 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)