Java面向对象程序设计考试卷一、选择题(没有注明多选,则为单选)1、下列变量定义错误的是A.int a;B.double b=4.5;C.boolean b=true;D.float f=9.8; (9.8f)2、6+5%3+2的值是A. 2B. 1C.9D.103、对于一个三位的正整数n,取出它的十位数字k(k为整型)的表达式是A.k = n / 10 % 10 //先得到百位和十位192 19 9B.k = ( n - n / 100 * 100 )%10C.k = n % 10D.k = n / 10B. 5C.0D.54A. 1B. 5C. 2D.-16、在某个类中存在一个方法:void getSort(int x),以下能作为这个方法的重载的声明的是:(同一个方法中参数不同,返回值类型可以不同也可以相同)A.public getSort(float x) 没有返回类型一定是构造函数不能重载B.int getSort(int y)(参数一样不是重载)C.double getSort(int x,int y) (参数不一样是重载)D.void get(int x, int y)7、下列哪个是合法的Java标识符:(两个答案) B CA.Tree&GlassesB.FirstJavaAppletC._$theLastOneD.273.58、设a = 8,则表达式 a >>> 2 的值是:C (无符号右移动)左移是乘右是除1000->/2->/2 将一个数8除2,运算最快的方式A. 1B. 2C. 3D. 4将会得到什么结果?A.将会顺利通过编译,并将产生一个Student.class的类文件B.编译时在//3处出错C.编译时在//2处出错D.编译时在//1处出错10、下面选项中能把字符串转换成float类型的是?: BA.float value = new Float(str); 创建一个对象B.float value = Float.parseFloat(str);C.float value = Float.floatValue(str);D.float value = (new Float()).parseFloat(str);BaseB.BaseBaseC.程序编译失败.D.程序运行但没有任何输出C.程序编译失败D.程序抛出异常Hello10B.Hello91C.Hello10.0D.程序编译失败14、下列说法正确的是?CA.一个子类可以有多个父类,一个父类也可以有多个子类B.一个子类可以有多个父类,但一个父类只可以有一个子类C.一个子类可以有一个父类,但一个父类可以有多个子类D.上述说法都不对B.在第6行产生一个运行时异常C.在第6行产生一个编译错误D.在第2行产生一个编译错误i=0B.i=10C.程序有编译错误D.i=trueB.byteC.longD.doubleB.Not EqualC.编译失败D.程序没有任何输出结果D.double 不行E.objectC.-987D.33B.BDC. EACDD.ABCD22、程序输出的结果是?System.out.println(4 | 3); // 二进制按位或操作0100 | 0011 0111A.0B. 1C. 5D.7C.private ConstOver (int z, int y, byte x) { }D.public Object ConstOver (int x, int y, int z) { }E.public void ConstOver (byte x, byte y, byte z) { }B.3和3C.3和4D.4和325、下列答案正确的是:两个答案int[] arr = new int[10];A.arr[0] 是nullB.arr[10]是0C.arr[9] 是0D.arr[0] 是026、编译器能够为类A分配一个默认构造器的是?(两个答案)A.class A {}B.class A {public A() { }}C.class A {public A(int x) { }}D.class Z { }class A extends Z {void A() { }}C.程序编译错误D.程序运行时抛出异常C.编译失败,错误在第2行D.编译失败,错误在第6行29、下面表达式计算的结果和返回值类型分别是?Math.ceil(0.1 + Math.floor(Math.random())); 0-1之间的小数A.0.0B. 1.0C.floatD.doubleE.一个随机数B. 1C.42D.43答题卡二、编程题注意:书写清晰,看不清楚不给分,注意字体大小,写不下可以写在背面,标清题号。
1、输出n行n列的空心矩形(要求使用嵌套循环),当n=5时,运行结果显示如下:################程序如下:public class Test {public static void main(String[] args) {int n=5;for (int i=1; i<=n; i++) {for (int j=1;j<=n;j++){if(i==1||i==n||j==1||j==n){ //只有正方形的边缘都为“#”System.out.print("#");}else{ //其他地方都是空System.out.print(" ");}}System.out.println();}}}2、设计Java程序假设有50瓶饮料,喝完3个空瓶可以换一瓶饮料,依次类推,请问总共喝了多少瓶饮料?程序如下:public class Test {public static void main(String[] args){int sum=0;int empty=1;for(int i=50; i>0; i--){if(empty ==3){empty =1;i++;}else{empty++;}sum++;}System.out.println("总共喝了"+ sum +"瓶饮料。
");}}3、设计Java程序,实现如下功能:获取50个0至300之间的随机整数,并输出到屏幕上;取出上面50个整数中的偶数,倒序排列输出到屏幕上。
程序如下:public class Test {public static void main(String[] args){int[] ary = {};int even = 0;for (int i = 0; i <50; i++) {int num = (int)(Math.random()*300);System.out.println("num:"+num);if (num%2==0) {ary = Arrays.copyOf(ary, ary.length+1);ary[even++] = num;}}Arrays.sort(ary);for (int i = ary.length-1; i >=0; i--) {System.out.println("偶数:"+ary[i]);}}}4、编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数wheels和车重weight。
小车类Car是Vehicle的子类,其中包含的属性有载人数loader。
卡车类Truck是Car类的子类,其中包含的属性有载重量payload。
每个类都有构造方法和输出相关数据的方法。
程序如下:class Vehicle{public Vehicle(){}int wheels;int weight;public void print(){System.out.println("汽车车轮个数是:"+wheels+",汽车车重为:"+weight+"。
");}}class Car extends Vehicle{public Car(){super();}int loader;public void print(){System.out.println("小车有载人数是:"+loader+"。
");}}class Truck extends Car{public Truck(){super();}int payload;public void print(){System.out.println("卡车有载重量是:"+loader+"。
");}}public class Test {public static void main(String[] args){ Vehicle v1 = new Vehicle();v1.print();Vehicle v2 = new Car();v2.print();Vehicle v3 = new Truck();v3.print();}}第11 页共11 页。