《 Java程序设计 》课程试题 一、单项选择题(20题;每题2分,共40分) 1、若数组a定义为int[][]a=new int[3][4],则a是___。 A)一维数组 B)二维数组 C)三维数组 D)四维数组 答案:B (难度系数C 知识点: 数组) 2、 Java语言使用的字符码集是____。 A)Unicode B)BCD C)DCB D)ASCⅡ 答案:A (难度系数C 知识点:编码) 3、下列关于Java Application程序特点的描述中,错误的是 ___。 A) 该程序只能是一个名字与主类名相同的文件组成。 B)该程序中仅有一个主方法,并被包含在某个类中。 C) 该程序中没有不属于某个类的方法。 D)该程序实际上是一个类串。 答案:D (难度系数C , 知识点:JAVA语言特点) 4、下列属于Java合法的一组标识符是_____。 A)void define "ABC" _sys_tea B)If _123 $points myName C) &5678 class case #time D)DO +static 25c My_name 答案:B (难度系数C , 知识点:JAVA语言标识符) 5、在Java中,关键字_____使类不能派生出子类。 A) final B)public C)volatile D)native 答案:A (难度系数A , 知识点:继承) 6、以下关于循环语句描述正确的是___。 A) for循环不可能产生死循环 B)while循环不可能产生死循环 C) for循环不能嵌套while循环 D) 即使条件不满足do……while循环体内的语句也至少执行一次 答案:D (难度系数B)知识点:循环 7、以下对选择语句的描述错误的是___。 A)根据某一条件重复执行一部分代码直到满足终止循环条件为止 B) 可以根据条件控制程序流程,改变程序执行的顺序 C)选择语句可以嵌套使用 D)当条件满足时就会执行相应的语句 答案:A (难度系数 C)知识点:选择结构 8、Java中___类提供了随机访问文件的功能. A)RandomAccessFile B)RandomFile C)File D)AccessFile 答案:A (难度系数B)知识点:数据流 9、实现一个继承接口Runnable的类需要实现___方法。 A) start B)run C) wait D)paint 答案:B (难度系数B)知识点:多线程 10、可以改变容器布局的语句是___。 A)addLayout(myLayout) B)layout(myLayout) C) setLayout(myLayout) D)setLayoutManager(myLayout) 答案:C (难度系数B)知识点:GUI编程 11、下列代码的输出是______。 public class test{ public static void main(String args[]){ System.out.print("IBM 01263ABC\".length( )); } } A) 12 B) 13 C) 14 D) 15 答案 A (难度系数C 知识点: 字符串) 12、下列关于构造方法的叙述中,错误的是___。 A)Java语言规定构造方法名与类名必须相同 B)Java语言规定构造方法没有返回值,但不用void声明 C)Java语言规定构造方法不可以重载 D)Java语言规定构造方法只能通过new自动调用 答案:C (难度系数B)知识点:构造方法 13、 关于被私有访问控制符private修饰的成员变量,以下说法正确的是___。 A)可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类 B)可以被两种类访问和引用:该类本身、该类的所有子类 C)只能被该类自身所访问和修改 D)只能被同一个包中的类访问 答案:C (难度系数B)知识点:类的继承 14、以下语句正确的是___。 A) x+1=5; B) i++=1; C) a++b=1; D) x+=1; 答案:D (难度系数B)知识点:表达式 15、以下结果为真(true)的是___。 A)10>’a’ B)’a’>20 C) !true D)(3<5) && (4>10) 答案:B (难度系数B)知识点:表达式 16、int a=’2’; a的值是___。 A)1 B)50 C)49 D)2 答案:B (难度系数B)知识点:表达式 17、下面选项中,___不可以用作变量名的首字符。 A)字母 B)下划线(_) C)数字 D)美元符号(¥) 答案:C (难度系数C)知识点:变量 18、 在HTML中,用________标签来强制显示Applet。 A) name,height,width B)codebase, height,width C) code,name D) code, height,width 答案:D (难度系数B)知识点:小应用程序 19、在JAVA编程中,基于线程的多任务处理环境中,执行特定任务的可执行代码的最小单位是__ _____。 A)进程 B)线程 C)应用程序 D)服务 答案:B (难度系数A,知识点:线程) 20、int 型 public 成员变量 MAX_LENGTH,该值保持为常数100,则定义这个变量的语句是____。 A)public int MAX_LENGTH=100 B)final int MAX_LENGTH=100 C)public const int MAX_LENGTH=100 D)public final int MAX_LENGTH=100 答案:D;(难度系数:C;知识点:语法基础) 二、填空题(10题;每题2分,共20分) 1、表达式1/2*3的结果是____。 答案:0 (难度系数 B)知识点:表达式 2、定义一个包含7个元素的数组a,则该数组的最后一个元素是 。 答案:a[6] (难度系数C)知识点:数组 3、在Java中只能实现单继承(Java不支持多重继承),但可通过 实现多重继承。 答案:接口 (难度系数 B)知识点:接口 4、 Applet的生命周期是有init()、start()、stop()、destroy()这4个方法构成的,在程序执行过程中, 方法只被调用执行一次,但 start()方法可以多次被调用执行。 答案:init( ) (难度系数B)知识点:小应用程序 5、在定义类时,指明类成员的权限修饰符有 、 和 。 答案public protected private 难度系数B 知识点:类的定义 6 已知:int a[ ]={2,4,6,8}; 则:表达式(a[0]+=a[1])+ ++a[2]值为_________ 答案:_13_ (难度系数B 知识点:数组) 7 JDK提供的编译器是___。 答案:javac.exe (难度系数B)知识点:JAVA简介 8 设 x = 2 ,则表达式 ( x + + )/3 的值是 。 答案:0 (难度系数 B)知识点:表达式 9 构造方法只能通过 运算符调用,用户不能直接调用。 答案:new (难度系数 B)知识点:构造方法 10线程同步执行过程中,wait()方法与 方法是匹配使用,否则易造成死锁。 答案:notify (难度系数 A)知识点:线程同步 三、判断题(10题;每题1分,共10分) 1. ( )由继承性可知,程序中子类拥有的成员数目一定大于等于父类拥有的成员数目。 答案:错 难度系数: C 知识点:类继承 2.( )注释的作用是使程序在执行时在屏幕上显示//之后的内容。 答案:错 难度系数: C 知识点:函数注释 3.( )在异常处理中总是将可能产生异常的语句放在try块中,用catch子句去处理异常,而且一个try块之后只能对应一个catch语句。 答案:错 难度系数: B 知识点:异常处理 4. ( )Java是区分大小写的语言,关键字的大小写不能搞错,如果把类class写成Class或者CLASS,都是错误的。 答案:对 (难度系数B)知识点:关键字 5.( )JAVA语言对内存的释放是采用垃圾自动回收机制。JAVA虚拟机自动判断并收集“垃圾”,但一般不立即释放它们的存储空间。 答案:对 (难度系数B)知识点:内存回收 6.( )子类可以继承父类所有的成员变量和成员方法。 答案:错 (难度系数B)知识点:继承 7.( )java程序是由若干个类定义组成的。 答案 对 难度系数 C 知识点:程序结构 8.( )在面向对象方法中,类的实例称为对象。() 答案:对;难度系数:C;知识点:面向对象基础。 9.( )即使一个类中未显式定义构造函数,也会有一个缺省的构造函数,缺省的构造函数是无参的,函数体为空。 答案:对 难度系数: C 知识点:构造函数 10.()Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。 答案:错 难度系数: C 知识点:类实例化 四、程序填空题(1题;每题5分,共5分) 1.以下为一个java的完整程序,它定义了一个类Car,并在程序中创建了一个该类的对象DemoCar,调用该对象的set_number方法设置车号属性为3388,调用该对象的show_number方法输出车号。 //Car.java class Car { int car_number; void set_number(int car_num) { car_number=car_num ;} void show_number() { System.out.println(“My car No. is :”+car_number); } } } //CarDemo.java class CarDemo { public static void main(String args[]) { Car Democar= (1) ;//构造一辆车 DemoCar. (2) ; //设置车号为3388 DemoCar. (3) ; //显示车号 } } 难度系数B 知识点:JAVA类特性 答案:(1)new Car() (2)set_number(3388) (3)show_number() 五、读程序写结果(1题;每题5分,共5分) 1.写出下列程序在控制台窗口中的输出结果。 public class J_Hanoi { public static void mb_hanoi(int n, char start, char temp, char end) { if (n<=1) System.out.println("将盘从" + start + "移到" + end); else { mb_hanoi(n-1, start, end, temp); System.out.println("将盘从" + start + "移到" + end); mb_hanoi(n-1, temp, start, end); } // if-else结构结束 } // 方法mb_hanoi结束 public static void main(String args[ ]) { mb_hanoi(3, 'S', 'T', 'E'); } } 程序运行结果是: (难度系数 B) 答案:将盘从S移到E 将盘从S移到T 将盘从E移到T 将盘从S移到E 将盘从T移到S 将盘从T移到E 将盘从S移到E 知识点:迭代 六、编程题(2题;每题10分,共20分) 1 从标准输入(即键盘)读入10个整数存入整型数组a中,然后逆序输出这10个整数。 难度系数A 知识点:JAVA输入输出 答案: import Java.io.* ; public class Reverse{ public static void main(String args[ ]){ int i,n=10 ; int a[ ]=new int[10]; for(i=0;i<n;i++) try { BufferedReader br=newBufferedReader(new InputStreamReader(System.in)); a[i]=Integer.parseInt(br.readLine( )); // 输入一个整数 } catch (IOException e) { } ; for (i=n-1;i>=0;i--) System.out.print(a[i]+" "); System.out.println( ); } } 2设计雇员Employee类,记录雇员的情况,包括姓名、年薪、受雇时间,要求定义MyDate类作为受雇时间,其中包括工作的年、月、日,并用相应的方法对Employee类进行设置。编写测试类测试Employee类。要求使用自己的包。 (难度系数 A 知识点:类的定义 ) 答案:package mypackage.employee; class MyDate{ private int year; private int month; private int day; public MyDate(int year,int month,int day){ this.year=year; this.month=month; this.day=day; } public int getYear(){ return year; } } public class Employee{ private String name; private double salary; private MyDate hireDay; public Employee(String name,double salary,MyDate day){ this.name=name; this.salary=salary; hireDay=day; } public void print(){ System.out.println(name+ ""+salary+""+hireYear()); } public int hireYear(){ return hireDay.getYear(); } } class TestEmployee{ public static void main(String [] args){ Employee a=new Employee("李明",20000,new MyDate(2000,10,1)); Employee b=new Employee("王强",24000,new MyDate(1995,8,12)); a.print(); b.print(); } }