2011-2012年上海交通大学《Java语言程序设计》期末试题B卷-答案

更新时间:2023-12-16 04:51:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

绝密*启用前

2011-2012年上海交通大学《Java语言程序设计》期

末试题B卷

(2011—2012学年第 1 学期)

考试形式 笔试(闭卷) 使用学生 11 本科生 考试时间 120 分钟 出卷时间2012年 06月 17日 【说明】

(1) 考生应将全部答案都写在答题纸上,否则作无效处理。

(2) 试题一~五为程序填空选择题,请从供选择答案中为每个空格挑选出一个

正确答案,并写在答题纸上,试题六为程序填空题,试题七八为程序设计题。

试题一(程序选择,每题2分,共10分)

【程序说明】利用下列公式计算pi的近似值,要求精确到10为止。请将程序填充完整或回答相关问题。

Pi/4 ≈ 1 – 1/3 + 1/5 – 1/7 + …

【程序代码】

public class CalculatePI {

public static void main(String[] args) { }

public static double Pi() { }

double result,item; int denominator; result = 0; denominator = 1; (1) C ; do

{ item = (2) A ;

result += item; sign = -sign; denominator +=2;

System.out.printf(\

-6

}while( (3) B ); return result*4;

}

【可供选择的答案】

B. int sign = 0 C. int sign = 1 D. int sign = -1 (1) A. int sign

B. (int)sign/denominator (2) A. (double)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用冒泡法对其进行由小到大排序,请将程序填充完整或回答相关问题,要求选出最佳答案。 【程序代码】 public void sort( (6)A )

{ }

int t;

for(int k = 0; k < arrayX.length - 1; k++) { }

for (int j = 1; j < (7)D ; j++) { }

if ( (8)A ) { }

t = arrayX[j]; (9) D ; arrayX[j - 1] = t;

【可供选择的答案】

A. int[] arrayX B. int arrayX (6)

C. int[] arrayX[] D. final int[] arrayX

A. arrayX.length - 1 B. arrayX.length (7)

C. arrayX.length - k D. k

A. arrayX[j - 1] > arrayX[j] B. arrayX[j] < arrayX[j - 1] (8)

C. arrayX[j] > arrayX[j - 1] D. arrayX[j] < arrayX[j + 1]

A. t = arrayX[j - 1] B. arrayX[j] = t (9)

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求三角形面积的方法是:令p?请将程序填充完整或回答相关问题。 【程序代码】

public class Triangle {

private double sideA; private double sideB; private double sideC;

public Triangle(double a, double b, double c) (11) C { }

public (12) A getArea()

if((a + b <= c) || (b + c <= a) || (a + c <= b)) {

throw new Exception(\三条边不能构成三角形\} else { }

sideA = a; sideB = b; sideC = c;

a?b?c, 面积s?p(p?a)(p?b)(p?c)),2 }

{ }

double s = 0;

double l = (sideA + sideB + sideC) / 2.0; s = (13) A ; return s;

public class Test { }

public static void main(String[] args) { }

double a = 3.0, b = 4.0 ,c = 5.0;//*** try {

(14) D ;

System.out.println(\三角形面积为\}

(15) C { }

System.out.println(ex.getMessage());

【可供选择的答案】 A. 空 (11)

C. throws Exception

B. throw new Exception() D. throws IOException C. float

D. int

(12)

A. double B. void

(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)) A. Triangle tri = new Triangle() B. Triangle tri

C. Triangle triangle = new Triangle(a, b, c) D. Triangle tri = new Triangle(a, b, c) A. catch(IOException ex) C. catch(Exception ex)

B. catch(Exception e) D. catch(IOException e)

(14)

(15)

(16) 该程序的输出结果为 A 。 A. 三角形面积为6.0 B. 三条边不能构成三角形 C. 6.0 D. 程序出错,没有结果

试题四(程序选择,每题2分,共8分)

【程序说明】以下程序为类Person、Animal、Chinese、Zhejiang和Test的代码,请将程

序填充完整或回答相关问题。 【程序代码】

//Person.java package cn.zjnu.ks;

public (22) B class Person { }

//Animal.java

package cn.zjnu.animal; public class Animal { }

//Chinese.java

package cn.zjnu.chinese;

public class Chinese extends Person { }

public void speak() {

System.out.println(\我会说汉语\}

public void speak(String msg) {

System.out.println(\我会说\}

public Chinese() {

hairColor = \黑色\

System.out.println(\中国人\}

(23) B String hairColor; public abstract void speak(); public Person() {

hairColor=””;

System.out.println(\人类\}

//Zhejiang.java

public class Zhejiang extends Chinese {

public void speak() {

(24) A //调用父类的方法speak() }

public Zhejiang() {

System.out.println(\浙江人\ } }

//Test.java public class Test { }

public static void main(String[] args) { }

Zhejiang p = new Zhejiang();

【可供选择的答案】

B. abstract (22) A. void

C. fianal D. static

(23) 若成员变量hairColor能被类Chinese中的方法访问,但不被Aniaml类中方法访问,

则应该填入

B.protected A.public

C. private D.static

(24)

A. super.speak(); C. speak();

执main()方法,输出的结果为 A A. 人类 中国人 浙江人 C. 浙江人 中国人 人类

B. Chinese.speak(); D.this. speak();

(25)

B. 人类

我会说汉语 浙江人 D.

我会说汉语

我会说浙江普通话

试题五(程序填空,每题2分,共14分)

【程序说明】请按程序模板及注释要求,将程序填充完整。 【程序代码】

【代码1】//仔细阅读程序,导入必要的包

import java.awt.event.*;

public class MyFrame extends Frame 【代码2】//实现事件监听接口 {

TextField text; Label label; public MyFrame() {

this.setBounds(100,100,300,200);

this.add(label); this.add(text);

【代码3】//创建TextField对象:text,要求text的可见字符数为12个机器字符。 【代码4】//创建 Label对象:label,要求label上是\。 【代码5】//设置窗口的布局为FlowLayout型布局。

【代码6】//将当前窗口作为text的ActionEvent事件的监视器。

【代码7】//设置窗口可见

this.addWindowListener(【代码8】{//创建窗体适配器的匿名类对象 public void windowClosing(WindowEvent e){

【代码9】}//退出应用程序

});// 匿名类定义结束

}

}

public void actionPerformed(ActionEvent e) {

【代码10】//label调用方法将自己名字设置为text中的文本 }

【代码1】 【代码2】 【代码3】 【代码4】 【代码5】 【代码6】 【代码7】 【代码8】 【代码9】

import java.awt.*; implements ActionListenter text=new TextField(12); label=new Label(\ setLayout(new FlowLayout()); text.addActionListener(this); this.setVisible(true); new WindowListener() 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)

public class Student { }

private String name; private int age; public Student() { }

public String getName() { }

public void setName(String name) { }

public int getAge() { }

public void setAge(int age) { }

public boolean isSameAge(Student s) { }

if(s.getAge()==this.age)

return true; return false; this.age = age; return age; this.name = name; return name; this.name=\无名氏\; this.age=20;

试题七(编程题,共15分)

试题八(编程题,)

… …

本文来源:https://www.bwwdw.com/article/h0h5.html

Top