java语言吧程序设计a卷填空题_Java程序设计 试卷A

2016 – 2017 学年第一学期 期末考试试卷   课程名称:Java程序设计 试卷类型:A卷 共10页  考试形式:闭卷

一、单选题(每题1分,共1×15=15分)

1、Java 程序执行起点的main方法,其形参为( )

A. String args              B. String[] args

C. Char arg               D. StringBuffer [] args

2、按照Java命名约定,合理的标识符为( )

A. package com.myPackage;

B. public class  dog

C. int  Index

D. void  SetCustomerName()

3、不符合Java语言规定的变量名是( )

A. 123variable            B. variable123

C. variable_$_123         D. $variable$$$

4、与其他选项不相等的选项是( )

A. 10    B. 010            C. 0XA        D.0b1010

5、属于Java关键字的选项是( )

A.@Override   B.as    C.default  D.NULL

6、无需在程序中import就可以直接使用简单类名的类,属于包()

A.java.applet                   B.java.lang

C.java.awt                        D. .java.util

7、不属于Java赋值操作符的是( )

A. =     B. >>=     C.>>>=     D. >=

8、int i= 0; i+=2.6; 则i的值为( )

A.2.0  B.2.6   C.2   D.3

9、int [ ][ ]  x=new int[4][2],则 x.length 的值为( )

A. 0        B. 4              C. 2              D. 8

10、根据结合性,4+5+"="+1+2的值为( )

A. 12             B. "9=3"         C. "45=12"                D. "9=12"

11、表达式的值为false的选项是( )

A. new String() instanceof Object

B. "Java "instanceof String

C.  null instanceof String

D.newint[2]  instanceof Object

12、int i= 5,则(i = 2)>1? ++i: i--表达式的值为( )

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

13、下面语句执行后,i 的值为( )

inti=16;

while(i > 3 ) { i/=2; }

A. 16            B.8        C. 4              D. 2

14、求两个变量doublex,y之积的整数部分,合理的语句是( )

A.double d=(int)x*y;

B. doubled=(int)x* (int)y;

C. doubled=x*(int)y;

D. double d =(int)(x*y);

15、如果选择一个面向对象的最重要的概念,你认为是( )

A. 重载              B. 类层次     C.  回调           D. 多态

二、填空题(每空1分,共1×25=25分)

1、引用类型包括类类型、和。

2、整型常量默认为类型,而123L属于类型。

3、将高级语言源程序翻译给机器,存在两种基本的策略:与。Java同时采用了这两种策略,源程序文件被编译为文件,该文件的扩展名为。

4、不同于基于的命令编程范式和基于λ运算的,面向对象编程范式没有直接的源于可计算理论的模型。

5、状态变化是命令范式的焦点,正如SICP中指出:“广泛采用的程序设计被称为命令式程序设计”。

6、如Dog d = new SmartDog();语句,把一个子类引用赋值给父类的引用变量,称为。此时d的声明类为,d的实际类为。

7、计算机科学家证明,使用、和循环结构足以表达所有程序。

8、父类中,不能够被改写的方法是方法。而和方法,即使子类编写了签名完全相同的方法,但是它们与改写机制无关。

9、Java中仅仅定义接口而没有方法体的方法,被称为,在C++中等价的概念为。

10、使用访问修饰符限定,这一机制称为。

11、遵循LSP的继承形式包括特化继承,,接口继承和。

三、程序填空(每题3分,共3×10=30分)

1、给定代码

1.    public static int test_a1 (int[]  arg){

2.        int sum=0;

3.        for(intx : arg){

4.            if( x % 3 == 0 ) sum += x;

5.        }

6.        return sum;

7.    }

则test _a1 (new int[]{ 1 , 2 , 3, 4 , 5, 6})的返回值是。

2、 给定代码

1.        public static boolean test_a2(String  s){

2.            String str = new String("abc");

3.            return str==s;//str.equals(s);

4.    }

则test _a2 ("abc")的返回值是。

3、给定符号函数代码

1.    public static  int sign(int i){

2.        int  x;

3.        if (i<=0)

4.            if (i<0)

5.                x=-1;

6.            else x=0;

7.        else x=1;

8.        return x;

9.}

则使用条件表达式简化上面的代码为

publicstatic  int sign(int i){

return ;

}

4、给定类层次

packageOO;

importstatictips.Print.pln;//System.out.println

publicclassSup{

publicvoidshow(Sup obj)    {pln("Sup/Sup"); }

}

packageOO;

importstatictips.Print.pln;

publicclassSubextendsSup{

@Overridepublicvoidshow(Sup obj) {pln("Sub/Sup"); }

publicvoidshow(Sub obj){pln("Sub/Sub"); }

}

则执行下面代码的输出为

public static void main(){

Sub f =new Sub();

f.show(f);

}

5. 给定代码

package OO.init;

import static tips.Print.pln;//System.out.println

public class Person{

private int age ;

public Person(){

this(0);

}

public Person(int age){

this.age = age;

}

public static void main(String[] args) {

Person p = new Person(10);

System.out.println(p.age);

}

}

执行main的输出为 。

6、给定代码

package OO.init;

import static tips.Print.pln;//System.out.println

public class SuperClass{

private int x;

public SuperClass(){ pln("sup-no-arg"); }

public SuperClass(int x){ pln("sup-int");}

}

class Sub extends SuperClass{

private int y;

public Sub(){pln("sub-no-arg");    }

public Sub(int y){ pln("sub-int");}

public static void main(String[] args) {

new Sub();

}

}

执行main的输出为

7、给定代码

package OO;

public class X{

public int add( int i){

return i++;

}

public static void main(String[] args) {

int i =8;

int k = new X().add(i);

System.out.println(i+" "+k);

}

}

执行main的输出为 。

8、下面程序的功能是递归求阶乘,请填空

public static long  factorial (int n){

long x;

if (n<0 || n == 0)  x=1;

else  x=;

return x;

}

9、给定代码

public interface Playable{

public String play();

}

public interface Game{

default public String play(){

return "play Game";

}

}

public class Ball{

public String play(){

return "play Ball";

}

}

class Football extends Ball implements Playable, Game{}

public class Student{

static void test(){

Game p =new Football();

System.out.println(p .play());

}

}

执行test的输出为 。

10、下面程序的功能是打印表中各元素,请填空

package typeSystem.generics;

import static tips.Print.*;

import java.util.List;

import java.util.*;

public class GenericsBasic{

static void test(){

List myList = Arrays.asList("a1", "a2","a1");

for(){

pln( x );

}

}

}

四、程序设计题(第1题10分,第2题20分,共30分)

1、在包zoo中,编写一个动物/Animal接口,它有方法move(),其实现类Dog、Bird在改写move()时,简单打印"狗在跑"等。

测试类Test有实例方法test(Animala),在其中调用a的move();在测试类的main方法中,分别创建Dog、Bird的对象,并作为实际参数调用test(Animal)。(10分)

2、功能抽象的一个重要方面,编写一般性方法。

(1)编写Test类,在其sum方法中计算[a,b]间自然数的和。(2分)

下面给定的代码为通用求和方法

package templateMethod;

public abstract class Sum{

public final double getSum(int a,int b){ //求和函数

double sum=0;

for(int i =a;i<=b; i=next(i)){

sum+=item(i);

}

return sum;

}

public abstract int next(int i) ;

public abstract double item(int x);

}

(2)编写Sum的子类Sum_cubes,override/改写 Sum中的方法,完成的功能是计算[a,b]间自然数的立方和。(4分)

(3)将Sum类的两个抽象方法封装为2个(函数)接口NextInterface和ItemInterface,在Sum类是基础上重构得到MySum类,并编写其方法(6分)

public final double getSum(int a,int b,NextInterface iNext,ItemInterface iItem)

(4)编写测试类Client的main()方法,其中

l       定义Sum的匿名类,并调用其getSum(2,10),以计算[2,10] 间自然数的平方和;

l       以lambda表达式为MySum的getSum方法的实参,计算[1,100]间自然数之和。 (8分)

按照yqj2065的想法,这种考试就是让大家顺利通过的。送分题占70以上。

我在Java程序设计 中不搞什么名词解释、判断题、简答题...除了避免死记硬背,主观题在下一阶段学习中才有意义。

注:1-15没有错误答案,都可以,但是我想看看有多少人选择 类层次。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值