西南科技大学网络教育学院06秋非主干科补考试题单
课程名称: 高级语言程序设计 使用班级:06级web、动漫
试卷形式:开卷 闭卷 √ .
一、填空题(每空1.5分,共15分)
1. Java语言源程序的扩展名为 ,字节码文件的扩展名为 。
2. 根据程序的构成和运行环境的不同,Java源程序分为两类:
程序和 程序。
3. 假设有定义一个数组的语句:int a[]=new int[5];则此数组第一个元素的下标为 。
4. 在Java程序中定义子类时,使用关键字 来指明父类名。
5. Java的类中通过关键字 来定义静态变量或静态方法。
6. 在Java程序中定义子类时,使用关键字 来指明使用接口。
7. Java的Math类中,可以生成随机数的方法是 。
8. 字符序列: Applet+2、_hello、3progarm、double;其中为Java合法标识符的是: 。
二、判断题(正确的打“√”,错误的打“×”,每小题1.5分,共15分)
1.Java 的源代码中定义几个类,编译结果就生成几个以字节码文件。( )
2.Java 程序里 , 创建新的类对象用关键字 new 。( )
3.有的类定义时可以不定义构造函数,所以构造函数不是必需的。( )
4.Java语言支持多继承。( )
5.抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。( )
6.如果 String p=new String(“hello”), String c=”Hello”,则语句p.equals(s)的值为true。( )
7.子类的构造方法可以通过super关键字调用父类的构造方法,并且super必须是子类构造方法的头一条语句。( )
8.如果一个类使用了某个接口,则该类必需实现接口中的所有抽象方法。( )
9.使一个正在运行的线程进入休眠状态,可调用的方法是run()。( )
10.Java是面向对象的编程语言。( )
三、单项选择题(每题2分,共20分)
1.若要打开嵌入applet的网页文件,下列可以使用的命令是( )。
A.java B.javac C.appletviewer D.applet
2.下列关于构造方法的特点描述中,错误的是( )。
A.不可重载 B.方法名同类名 C.无返回值类型 D.系统自动调用
3. 在Calendar类中,可创建日历对象方法是( )。
A.getInstance() B.Calendar() C.set() D.getTimeInMillis()
4.下列循环语句中,循环体被执行的次数为( )。
for(int i=0,j=0;(j!=8)||(i<4);i++)
A.3 B.4 C.不确定 D.无限
5.下列不是面向对象特点的是( )。
A.封装性 B.多态性 C.继承性 D.复用性
6.下列关于方法重载的描述中,错误的是( )。
A. 重载的方法其方法名是相同的
B. 重载的方法不能用public等修饰符进行修饰
C. 重载的方法其参数不同
D. 方法int add(int a,int b)和float add(int a,int b)不能重载
7. 在类的修饰符中,规定只能被同一包来所使用的修饰符是( )。
A.public B.默认 C.protected D.abstract
8. 下列关于包的描述,错误的是( )。
A.包是用package语句创建的
B.可以用import语句引入包中的类
C. package语句和import语句都必须放在一个程序的第一行位置处
D.包是若干类的集合
9. 下列关于Java中final关键字的描述,错误的是( )。
A. final有可能和abstract一起修饰某一个类
B. 用final修饰的类是最终类,表示该类不能被继承
C. final也可以修饰变量和方法
D. final有可能和public一起修饰某一个类
10. 假设有一个数字串s=”123”,下列语句不能把s转换为整数的是( )。
A.int a=Integer.parseInt(s);
B.int a=String.valueOf(s);
C.int a= Integer.valueOf(s).intValue();
D.int a= (int)(Float.valueOf(s).floatValue());
四、简答题(第1、2小题5分,第3、4小题10,共30分)
1. 类成员变量或方法的权限修饰词有哪些?各自对继承类的影响有哪些?(5分)
2.用自己的话阐述构造方法的特点。(5分)
3.阅读下列程序,并回答问题。(10分)
class Var
{ static int a;
int b;
public void intprint()
{ int c=0;
++a;
++b;
++c;
System.out.print("a="+a);
System.out.print("b="+b);
System.out.println(" c="+c);
}
public void allprint()
{ intprint();
intprint();
}
}
public class E_variable
{ public static void main(String args[])
{ Var v1=new Var();
Var v2=new Var();
v1.allprint();
v2.allprint();
}
}
①写出程序执行结果。(4分)
②类Var中定义的变量a, b有什么不同?(2分)
③类Var中变量b和方法intprint()中的变量c有何不同?(2分)
④ 类Var的访问控制如何,能否加上访问控制符private修饰?(2分)
4.阅读下列程序,并回答问题。(10分)
public class Monkey
{
private int n=100;
void crySpeak(String s)
{
System.out.println(s);
}
}
class People extends Monkey
{
void computer(int a,int b)
{
int c=a*b;
System.out.println(c);
}
void crySpeak(String s)
{
System.out.println("**"+s+"**");
}
}
class E_uptrafer
{
public static void main(String args[])
{
Monkey monkey=new People();
monkey.crySpeak("i love this game");
People people=(People) monkey;
people.computer(10,10);
}
}
①该程序保存时,文件名应该是什么?(2分)
②假设jSdk在c盘根目录下安装,即c盘根目录下有j2sdk1.4.0文件夹,
则环境变量path应设置成什么?(2分)
③上述程序该如何编译?如何运行?(2分)
④写出程序执行结果。(4分)
五、程序分析题(共10分)
下面的程序定义了一个复数类complex,内有两个成员变量:实部和虚部。还有四个方法:构造方法、输出方法output、求两个复数和以及求两个复数差的方法。试将程序中画横线的位置处缺少的内容补充完整,答案写在程序下面对应的标号处。(横线处填写的内容多少不定,5和8两个空各2分,其余每空1分,共10分)
① complex
{
double real;
double imag;
complex(double r,double i)
{
②
}
void display()
{
System.out.println(real+"+"+imag+"i");
}
③ add( ④ ) //完成两个复数相加的方法
{
⑤
}
⑥ miu( ⑦ ) //完成两个复数相减的方法
{
⑧
}
}
①
②
③
④
⑤
⑥
⑦
⑧
六、程序设计(10分)
编写一个抽象类person,内有变量姓名,年龄,性别,有构造方法(注意构造方法的重载)、speak(String s)方法,speak方法是抽象方法,目的是打印一个参数s。再定义person类的子类student,增加变量学校、专业;定义person类的子类teacher,增加变量学校、职称、教授课程。最后定义一个接口,接口中有常量country和显示成员变量的方法display(),在类student和teacher中使用了该方法。写出一个主类,测试上述类的正确性,测试时使用上转型对象和接口回调技术来体现多态性。