四川大学2013年计算机(软件)学院Java语言程序设计期末考试试题A

更新时间:2024-07-03 17:59:01 阅读量: 综合文库 文档下载

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

四川大学期末考试试题(闭卷)

(2014-2015学年第1学期)

课程号: 适用专业年级:

课程名称: Java语言程序设计(A 卷)

学号:

任课教师:

姓名:

考试须知 四川大学学生参加由学校组织或由学校承办的各级各类考试,必须严格执行《四川大学考试工作管理办法》和《四川大学考场规则》。有考试违纪作弊行为的,一律按照《四川大学学生考试违纪作弊处罚条例》进行处理。 四川大学各级各类考试的监考人员,必须严格执行《四川大学考试工作管理办法》、《四川大学考场规则》和《四川大学监考人员职责》。有违反学校有关规定的,严格按照《四川大学教学事故认定及处理办法》进行处理。 题 号 得 分 阅卷教师 阅卷时间 一 二 三 四 五 六 七 八 卷面成绩 一、单项选择题(本大题共25小题,每小题1分,共25分)提示:在每小题列出的四个备选项中只有一个是符

合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分

1 11 21 2 12 22 3 13 23 4 14 24 5 15 25 6 16 7 17 8 18 9 19 10 20 1.下列语句序列执行后,k 的值是( )。 int m=3, n=6, k=0;

while( (m++) < ( -- n) ) ++k;

A) 0 B) 1 C) 2 D) 3

2.设 i、j 为int型变量名,a 为int型数组名,以下选项中,正确的赋值语句是( )。 A) i = i + 2 B) a[0] = 7; C) i++ - --j; D) a(0) = 66;

3.Java语言的类间的继承关系是( )。

A) 多重的 B) 单重的 C) 线程的 D) 不能继承

4.设有定义 int i = 6 ;,则执行以下语句后,i 的值为( )。 i += i - 1;

A) 10 B) 121 C) 11 D) 100

5.下列选项中,用于在定义子类时声明父类名的关键字是( )。 A)interface B) package C) extends D) class 6.若已定义 byte[ ] x= {11,22,33,-66} ;

其中0≤k≤3,则对x数组元素错误的引用是( )。 A) x[5-3] B) x[k] C) x[k+5] D) x[0] 7.下列语句序列执行后,ch1 的值是( )。

注:试题字迹务必清晰,书写工整。 本题13页,本页为第1页

教务处试题编号:

课程名称:

任课教师: 学号: 姓名:

------------------------------------------------------------------------------------------------------------------------ char ch1='A',ch2='W'; if(ch1 + 2 < ch2 ) ++ch1;

A) 'A' B) 'B' C) 'C' D) B

8.下列语句序列执行后,i 的值是( )。 int i=8, j=16;

if( i-1 > j ) i--; else j--;

A) 15 B) 16 C) 7 D) 8

9.下列语句序列执行后,k 的值是( )。 int i=10, j=18, k=30; switch( j - i ) { case 8 : k++; case 9 : k+=2; case 10: k+=3; default : k/=j; }

A) 31 B) 32 C) 2 D) 33

10.下面语句执行后,i 的值是( )。 for( int i=0, j=1; j < 5; j+=3 ) i=i+j; A) 4 B) 5 C) 6 D) 7

11.设有定义 float x=3.5f, y=4.6f, z=5.7f;则以下的表达式中,值为true的是( )。 A) x > y || x > z B) x != y

C) z > ( y + x ) D) x < y & ! ( x < z ) 12.下列语句序列执行后,i的值是( )。

int i=16;

do { i/=2; } while( i > 3 ); A) 16 B) 8 C) 4 D) 2

13.以下由 for 语句构成的循环执行的次数是( )。 for ( int i = 0; true ; i++) ;

A) 有语法错,不能执行 B) 无限次

C) 执行1次 D) 一次也不执行 14.定义类头时能使用的修饰符是( )。

A) private B) static C) abstract D) protected 15.设int 型变量 a、b,float 型变量 x、y,char 型变量 ch 均已正确定义并赋值,正确的switch语句是( ) 。 A) switch (x + y) B) switch ( ch + 1 ) { ...... } { ...... }

C) switch ch D) switch ( a + b ); { ...... } { ...... }

16. 下列最终属性 i 的定义中,正确的是( )。 A) static final int i=100; B) final int i=1.2; C) final i='w'; D) final char i; 17. 下列类定义中,不正确的是( )。 A) class x { .... }

B) class x extends y { .... }

C) static class x implements y1,y2 { .... } D) public class x extends Applet { .... }

18. 设 x、 y为已定义的类名,下列声明x类的对象x1的语句中正确的是( )。 A) static x x1; B) public x x1=new x(int 123); C) y x1; D) x x1=x( );

19. 设 i、j、k 为类 x 中定义的 int 型变量名,下列类 x 的构造函数中不正确的是( )。

本题13页,本页为第2页 教务处试题编号:

课程名称:

任课教师: 学号: 姓名:

------------------------------------------------------------------------------------------------------------------------ A) x( int m){ ... } B) void x( int m){ ... } C) x( int m, int n){ ... } D) x( int h,int m,int n){ ... } 20. 下列方法定义中,正确的是( )。 A) int x( ){ char ch='a'; return (int)ch; } B) void x( ){ ...return true; } C) int x( ){ ...return true; } D) int x( int a, b){ return a+b; }

21. 用于定义类成员的访问控制权的一组关键字是( )。 A) class, float, double, public B) float, boolean, int, long C) char, extends, float, double D) public, private, protected

22. 不能构成循环的语句是( )。

A) for 语句 B) while 语句 C) switch 语句 D) do__while 语句 23. 下列程序段执行后 b3 的结果是( )。 boolean b1=true, b2, b3; 24= b1 ? b1 : b2;

A) 0 B) 1 C) true D) false

24. 下面数据结构中,属于非线性的是( )。 A) 线性表 B) 树 C) 队列 D) 堆栈

25. 设有定义 int i=123; long j=456; 下面赋值不正确的语句是( )。 A) j=i; B) j=(long)i; C) i=(int)j; D) i=j;

二、判断题(本大题共18小题,每小题1分,共18分)提示:正确打T,错误打F,将其结果填写在下表中。

1 11 2 12 3 13 4 14 5 15 6 16 7 17 8 18 9 10 1、 面向对象程序设计的三大特性为封装性、继承性、多态性。 2、 异常处理中的finally语句必须被执行。

3、 实现一个接口,则在类中一定要实现接口中的所有方法。 4、 标识为default的类或变量可以被所在包中的各个类访问。 5、 子类覆盖父类中的同名方法时,其访问权限可以是任意的。 6、 Java虚拟机是实现跨平台的基础。

7、 使用方法length( )可以获得字符串或数组的长度。

8、 Java的类不允许多重继承,但接口支持多重继承,内部类也可以实现多重继承。 9、 JVM是指Java虚拟机。

10、 关键字super表示父类对象,this表示的是当前对象。 11、 每个类都只能有一个构造方法。

12、 Java applet不能够存取客户机磁盘上的文件。

本题13页,本页为第3页 教务处试题编号:

课程名称:

任课教师: 学号: 姓名:

------------------------------------------------------------------------------------------------------------------------ 13、default在switch选择结构中是必须的。 14、abstract修饰的类必须被继承。 15、对static方法的调用不需要类实例。

16、构造方法没有任何返回类型,哪怕是void也不行。 17、Java中的的字符使用的是 16 位的Unicode 编码。 18、abstract 是抽象修饰符,可以用来修饰类及其属性和方法。 三.填空题(本大题共10小题,每小题1分,共10分)。 1. 创建类的对象时,使用运算符___________给对象分配内存空间。 2. 定义类的构造方法不能有返回值类型,其名称与_____名相同。 3. Java语言中关键字_____表示双精度类型。

4. 若有定义:float b={1.1f, 3.5f, 6.8f};,则b.length()的值是_______。 5.若有类定义: class B extends A{ … }

则类B是类A的______。

6.接口中的成员只有静态常量和______。

7. 在子类中使用关键字_______做前缀可调用被子类覆盖的父类中的方法。 8. 关键字______用于导入包中的类到程序中,供程序中使用。

9. Java语言中, 通常把可能发生异常的方法调用语句放到try块中,并用紧跟其后的_____块来捕获和处理异常。 10. 表达式3/6 * 5的计算结果是_____。

四、阅读程序,回答问题(共6小题,每小题2分,共12分), 1.

1: public class Output1 {

2: public static void main(String arge[]) { 3: int i=0;

4: for ( char ch = 97; ch<113; ch++,i++) { 5: if( i % 8 == 0 )

6: System.out.println(\

7: System.out.print(\

本题13页,本页为第4页 教务处试题编号:

课程名称: 8: } 9: } 10: }

任课教师: 学号: 姓名:

------------------------------------------------------------------------------------------------------------------------ (1)程序第5、6行的if语句的功能是什么? (2)程序输出的结果有几行? 2.

1: import java.util.Arrays; 2: public class SortArray {

3: public static void main(String args[]) {

4: String[] str = {\5: Arrays.sort(str);

6: for (int i=0; i

(1)写出程序运行后的结果。

(2)在第4行和5行之间,进行str[0].length()方法调用的返回结果是多少? 3.

abstract class SuperAbstract{ }

interface AsSuper{ }

abstract class SubAbstract extends SuperAbstract implements AsSuper{

public void b(){…} }

public class InheritAbstract extends SubAbstract{

public void x(){…} public int c(int i ) {…}

本题13页,本页为第5页 教务处试题编号:

void a(){…} abstract void b(); abstract int c(int i);

void x();

abstract String f();

课程名称: }

任课教师: 学号: 姓名:

------------------------------------------------------------------------------------------------------------------------ public String f(){…}

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

InheritAbstract instance=new InheritAbstract(); instance.x(); instance.a(); instance.b(); instance.c(100);

System.out.println(instance.f());

根据以上这段程序,回答问题: (1)哪几个类是抽象类,写出类名。 (2)是否有接口,写出接口名。 4.定义类A和类B如下。 class A{

int a=1;

double d=2.0; void show( ) {

System.out.println(\ } }

class B extends A{

float a=3.0f; String d=\ void show( ) { super.show( );

System.out.println(\ a=\ } }

若在应用程序的main方法中有以下语句:

A a=new A(); a.show(); 则输出的结果如何?

本题13页,本页为第6页 教务处试题编号:

课程名称:

任课教师: 学号: 姓名:

------------------------------------------------------------------------------------------------------------------------ 5.写出此程序完成的功能。 public class Sum { }

回答问题:以上程序完成什么功能? 6.

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

double sum = 0.0; for (int i = 1; i <= 100; i++)

sum += 1.0 / (double) i;

System.out.println(\

1: import java.applet.Applet; 2: import java.awt.*; 3: import java.awt.event.*;

4: public class TestKeyListener extends Applet { 5: Color clr; 6: public void init() { 7: addKeyListener( 8: new KeyAdapter() {

9: public void keyTyped( KeyEvent e ) {

10: if(e.getKeyChar()=='r'||e.getKeyChar()=='R') 11: clr=Color.red;

12: else if(e.getKeyChar()=='g'||e.getKeyChar()=='G') 13: clr=Color.green;

14: else if(e.getKeyChar()=='b'||e.getKeyChar()=='B') 15: clr=Color.blue; 16: else

17: clr=Color.black; 18: setBackground(clr); 19: } 20: });

本题13页,本页为第7页 教务处试题编号:

课程名称: 21: } 22: }

任课教师: 学号: 姓名:

------------------------------------------------------------------------------------------------------------------------ (1)程序第10、11行实现的功能是什么?

(2)编译该程序,并编写嵌入该程序字节码文件的网页后,通过支持java的浏览器打开网页。如果敲击键盘的‘b’键,有什么结果?

五、阅读下列程序,请写出程序的输出结果(共8小题,每小题3分,共24分) 1.

public class StaticTest{ }

class Count{ }

private int serial=0; public static int counter = 0; Count(){ }

int getserial() { }

return serial; counter=counter+2; serial = counter;

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

Count c1 = new Count(); Count c2 = new Count();

System.out.print(Count.counter); System.out.print(c1.getserial()); System.out.print(c2.getserial());

2.

public class Parent{

本题13页,本页为第8页 教务处试题编号:

课程名称: }

任课教师: 学号: 姓名:

------------------------------------------------------------------------------------------------------------------------ int age=40;

public int getAge(){return age;}

class Child extends Parent{ } class Test{ }

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

Child c=new Child();

System.out.println(\System.out.println(\Parent p=new Child();

System.out.println(\System.out.println(\int age=20;

public int getAge(){return age;}

3.public class Test {

public static void main(String[] args) {

int[][] num1 = new int[2][3]; num1[0][0] = 3; num1[0][1] = 9; num1[0][2] = 60; num1[1][0] = 78; num1[1][1] = 79; for (int i = 0; i <= 1; i++) {

for (int j = 0; j < num1[i].length; j++)

System.out.print(num1[i][j] + \

本题13页,本页为第9页 教务处试题编号:

System.out.println();

课程名称:

}

}

任课教师: 学号: 姓名:

------------------------------------------------------------------------------------------------------------------------ }

4. public class Test {

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

5. public class Test3 {

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

} class A {

private int privateVar;

public A(int _privateVar) { boolean isEqualTo(A anotherA) { } } 6.

public class Exam3 {

本题13页,本页为第10页 教务处试题编号:

int i, s = 0;

int a[] = { 10, 20, 30, 40, 50, 60, 70, 80, 90 }; for (i = 0; i < a.length; i++) }

if (a[i] % 3 == 0) { }

s += a[i];

System.out.println(\

A a = new A(2); A b = new A(3);

System.out.println(a.isEqualTo(b));

privateVar = _privateVar; }

if (this.privateVar == anotherA.privateVar) else

return false;

return true;

课程名称:

任课教师: 学号: 姓名:

------------------------------------------------------------------------------------------------------------------------ public static void main(String[] args) { String s,s1=\ char c; s= \ for (int i=0;i='a' && c<='z') { s1=s1+Character.toUpperCase(c); } else { s1=s1+Character.toLowerCase(c); } } System.out.println(s1); } } 7.

abstract class Shape { abstract double area(); public void print() { System.out.println(\ } }

class Rectangle extends Shape { int width, length; public Rectangle(int width,int length){ this.width=width; this.length=length; } public double area() { return width * length; } public void print(){ super.print(); System.out.println(\ } }

class Circle extends Shape{ double r; public Circle(double r){ this.r=r;

本题13页,本页为第11页 教务处试题编号:

课程名称:

任课教师: 学号: 姓名:

------------------------------------------------------------------------------------------------------------------------ } public double area() { return 3* r*r; } public void print(){ super.print(); System.out.println(\ } }

public class TestShape { public static void main(String args[]) { Shape s1 = new Rectangle(3, 4); System.out.println(s1.area()); s1.print(); Shape s2=new Circle(3.0); System.out.println(s2.area()); s2.print(); } }

8.

class ObjectCreation {

TestClass testClass = new TestClass(\ static TestClass testClass2 = new TestClass(\

public ObjectCreation(String name) { } }

class TestClass {

public TestClass(String name) { } }

public class ChildObjectCreation extends ObjectCreation{

本题13页,本页为第12页 教务处试题编号:

System.out.println(\

System.out.println(\

课程名称:

任课教师: 学号: 姓名:

------------------------------------------------------------------------------------------------------------------------ static TestClass testClass3 = new TestClass(\ TestClass testClass4=new TestClass(\

public ChildObjectCreation(String name) { }

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

六、程序设计题 1.

(本小题7分)编写一个完整的Java程序使用复数类验证两个复数 5+17i和4+12i 相加产生一个新的复数 9+29i 。复数类 Complex必须满足如下要求:

(1) 复数类Complex 的属性有: RealPart : int型,代表复数的实部 ImaginPart : int 型,代表复数的虚部 (2) 复数类Complex 的方法有:

Complex( ) : 构造函数,将复数的实部和虚部都置0

Complex( int r , int i ) : 构造函数,形参 r 为实部的初值, i为虚部的初值。

Complex complexAdd(a) : 将当前复数对象与形参相加,所得的结果仍是一个复数,并将它返回给此方法的调用者。

String ToString( ) : 把当前复数对象的实部、虚部组合成a+bi 的字符串形式,其中 a 和 b分别为实部和虚部的数值。 2.

(本小题4分)按以下要求编写程序。

ChildObjectCreation cd=new ChildObjectCreation(\super(name);

System.out.println(\

(1) 设计并实现一个 Rectangle类,它包括width和 height两个数据域。 (2) 在Rectangle中提供两个方法分别计算矩形的周长和面积。 (3) 编程测试程序利用Rectangl类输出一个矩形的周长和面积。

本题13页,本页为第13页 教务处试题编号:

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

Top