黑马程序员技术交流社区

标题: 面向对象考题2 [打印本页]

作者: zhao0506    时间: 2016-9-2 21:08
标题: 面向对象考题2
考试宣言:
同学们, 考试考多少分不是我们的目的! 排在班级多少的名次也不是我们的初衷!
我的考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了, 那么不用怕, 考完试后, 导师讲解的时候你要注意听! 那时候学会了, 记住了, 也一样不影响你高薪就业!
本套题共40道不定项选择题,其中单选30道,多选10道。单选2分/题,多选4分/题。多选题不全对半分,全对满分。

1.下面说法正确的是()
A.        JVM就是Java虚拟机,包含java核心类库                // JRE: JVM+Java library。
B.  JRE就是java运行环境,包含java程序编译运行的工具环境// JDK:JRE+Tools
C.  JDK就是java开发环境,javac是其中的一个工具       
D.  功能范围:JDK > JVM > JRE


2.下面的说法正确的是(  )
A.  Java 语言是面向对象的、解释执行的网络编程语言。
B.  Java 语言具有可移植性,是与平台无关的编程语言。         
C.  Java 语言可对内存垃圾自动收集。
D.  Java 语言编写的程序虽然是“一次编译,到处运行”,但必须要java的运行环境。


3.给定java代码,如下:
public byte count(byte b1, byte b2){
        return ____;
}
要使这段代码能够编译成功,横线处可以填入
A.        (byte)(b1-b2)        //返回值类型为byte,要求选项结果为byte
B.   b1-b2
C.  (byte)b1+b2
D.  (byte)b1/b2


4.关于类的命名,正确说法是()
A.  可以由数字和英文拉丁字母组成,且可以任意排序        //数字不能开头
B.  命名要做到见名知意
C.  如果是由多个单词组成,每个单词首字母大写
D.  可以是Java已经定义过的关键字        //囧


5.关于main方法说法错误的是()
A.main方法是java程序执行的入口
B.main方法的方法体重至少要有一行代码        //可以没有代码
C.main必须定义在一个类中
D.  main方法的定义格式为:public static void main(String[] args){}


6.类中某方法定义如下:
double fun(int a,int b){   
return a*1.0/b;  

同一类内其它方法调用该方法的正确方式是: 
A.        double a = fun(1,2); 
B.  double a = fun(1.0,2.0); 
C.  int x = fun(1,2);  
D.  int x = fun(1.0,2.0);


7.给定java代码,如下,编译运行,结果是()
public static void main(String[] args){
        boolean flag;
        System.out.println(“flag”+flag);        //局部变量需要先初始化再使用
}
A.        编译错误
B.  编译通过,单出现运行时错误
C.  正常运行,输出flag=false
D.  正常运行,输出flag=


8.下面哪个关键字可以定义一个类()
A.        interface
B.  class                //查看下面解释
C.  extends
D.  implements

在Oracle官网java英文原版教程,链接地址:
https://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html上有如下解释:
In the Java programming language, an interface is a reference type, similar to a class, that can contain only constants, method signatures, default methods, static methods, and nested types. Method bodies exist only for default methods and static methods. Interfaces cannot be instantiated—they can only be implemented by classes or extended by other interfaces. Extension is discussed later in this lesson.


9.byte类型的取值范围是()
A.        -256至255
B.  -255至255
C.  -128至127                //*/?#%¥@*&……
D.  -127至128


10.下面关于java中方法,描述错误的是(   )
A.必须定义在类或者接口里面
B.定义一个方法之前要明确该方法需要的参数和返回值类型
C.方法可以提高代码复用性,提高程序运行的效率   //可以提高编写代码的效率
D.方法只有调用才会被执行


11.下面程序执行的结果是?(  )
class  Test
{
public  static  void  main(String[] args)
{
                System.out.println(““+’a’+1); // + 在这里是连接符,任何数据和字符串连接后,都是字符串
}
}
A.        98
B.  a1
C.  971
D.  197


12.for循环格式如下:
for(表达式1;表达式2;表达式3){
        //code
}
下面描述错误的是()
A.  表达式1处的代码会被执行多次        //只能一次
B.  表达式1处可以定义变量
C.  表达式3用于决定循环是否应该结束        //表达式2
D.  表达式2的值可以是任意类型,也可以是boolean类型        //只能是boolean


13.以下选项可以正确创建一个长度为3的二维数组的是 (   )
A.new int[2][3]
B.new int[3][]
C.new int[][3]
D.以上答案都不对


14.设以下是应用程序中定义的方法printBinary,若在其main方法中有方法调用语句printBinary(2),则输出的结果是 (   )。
static void printBinary(int i) {
        System.out.print(i + "的2进制数表示为:\t");
        for(int j = 31; j >=0; j--)
            if(((1 << j) &  i) != 0)
                System.out.print("1");
            else
                System.out.print("0");
        System.out.println();
  }
A) 00000000000000000000000000000001
B) 00000000000000000000000000000010        //自己算吧。其实是求2的二级制表示形式
C) 00000000000000000000000000001111
D) 00000000000000000000000000000000


15.下面关于return语句说法正确的是:  (  ) 
A.只能让方法返回数值 
B.方法都必须显式使用该关键字 
C.方法中可以有多句return                //if第三种格式,每个条件下面都可以写一个return,单最多只能执行其中一个 
D.可以用来返回数值以外的类型


16.下面程序执行的结果是?()
int i = 100;
while(true)
{
        if (i++ > 100)
        {
                break;
        }
System.out.println(i);
}
// continue(跳出本次循环) , break(跳出,结束本循环) , return(跳出,结束方法)
A.  100
B.  101
C.  102
D.  报错


17.下面关于Java语言跨平台说法错误的是:
A. java语言编写的程序,一次编译后,可以在多个系统平台上运行。
B. java语言垮平台依赖于java虚拟机
C. java垮平台,java虚拟机也是垮平台的(不同系统平台使用相同的java虚拟机)
D. 原理是java程序是通过java虚拟机在系统平台上运行的,只要该系统可以安装相应的java虚拟机,该系统就可以运行java程序。


18.下面程序的运行结果是    (  )
int a=3, b=1;
if(a==b)        //false
{
System.out.println("a="+a);
}
A.  a=1                
B.  a=3
C.  编译错误
D.  正常运行但没有输出


19.下面程序的运行后,结果正确的是:
int a=1,b=2;
int c=(a+b>3?a++:++b); //三元运算符如果不成立的话,那么a++不会执行,a还是1.

A.  a=2,b=3
B.  a=1,b=3
C.  a=1,b=2
D.  c=2


20.定义如下的二维数组b,下面的说法正确的是(  )
        int b[][]={{1, 2, 3}, {4, 5},{6, 7, 8}}};
A.  b.length的值是3
B.  b[1].length的值是3        //2
C.  b[1][1]的值是5       
D.  二维数组b的第一个元素有3个子元素


21.下面哪种类型的文件可以在java虚拟机中运行? (   )
A..java
B..jre
C..exe
D..class


22.下面程序的运行结果
class Demo
{
        public static int fun(int c)
{
                return  c+=2;        //因为return了,return的是4
        }
        public static void main(String[] args)
{
                int temp = fun(2);
                System.out.println(temp);
        }
}
A.  2
B.  4
C.  6
D.  8


23.下列方法定义中,正确的是(   )。
A) int x( ){ return true; }         //返回值类型为int,不能返回boolean
B) void x( ){ return true; }         //没有返回值,不能返回boolean
C) int x( ){ char ch='a'; return (int)ch; }
D) int x( int a, int b){ return a+b; }


24.下面数组定义正确的是()
A.  int [] arr ={23,45,65,78,89};
B.  int [] arr=new int[10]{};                //[数组]与{}不能共存
C.  int [] arr=new int[4]{3,4,5,6};        //[]与{}不能共存
D.  int [] arr={"a",23 ,45,6};        //byte, short,char ------>> int  ‘a’会自动转换成97,但是String类型的a不会自动转换成97


25.下面程序执行的结果是?( )
int x =1,y=1;
if(x++==2 & ++y==2)
{
        x=7;
}
System.out.println("x="+x+"  ,  y="+y);
A.  x=1  y=2
B.  x=7  y=1
C.  x=7  y=2  
D.  x=2  y=2


26.JDK1.7之后,switch语句后括号里的表达式可以是以下哪种类型()//记住
A.  char
B.  String
C.  long
D.  枚举类型


27.同一类中有两个以上方法同名称方法重载,Java语言规定(): 
A.        不允许重载
B.  重载方法的参数列表必须不同 
C.  重载方法的返回值类型必须不同 //与返回值类型无关
D.  重载方法的参数列表和返回值类型必须都不同。 


28.下面程序执行的结果是?( )
boolean b=true;
if(b=false)        //false
{
        System.out.println("a");
}
else if(b)                //false
{
        System.out.println("b");       
}
else if(!b)                //true
{
        System.out.println("c");
}
else
{
        System.out.println("d");
}
A.        a   
B.        b  
C.        c
D.        d


29.关于选择结构下列哪个说法正确? (  ) 
A. if语句和 else语句必须成对出现 
B. if语句可以没有else语句对应 
C. switch结构中每个case语句中必须用break语句 //没有的时候没有语法问题
D. switch结构中必须有default语句 //没有的时候没有语法问题


30.下面程序执行的结果是?()
int x=2,y=3;
switch(x)
{
        default:
                y++;
        case 3:
                y++;
        case 4:
                y++;
}
System.out.println("y="+y);        //没有break
A.  3
B.  4
C.  5
D.  6


31.阅读下面代码段:
public class Demo
{
  public static void main (String[] args)
  {
                int[] arr = new int[10];
          System.out.println(arr[1]);
  }
}
执行结果正确的说法是(  )
A.  编译时将产生错误
B.  编译时正确,运行时将产生错误
C.  输出零        //默认初试化
D.  输出空


32.设有定义 float x=3.5f, y=4.6f, z=5.7f; 则以下的表达式中,值为false的是( )
A.  x > y || x > z   
B.  x < y & ! ( x < z )
C.  z > ( y + x )   
D.  x != y


33.和下面代码执行结束后,sum结果一致的选项是()
int i=1;
int sum=0;
while(i<=100)
{
        if(i%2==0)
        {
                sum=sum+i;
}
        i++;
}
  
A.  for (int x =1; x<=100;x++){ sum=sum+x;}
B.  for (int x =0; x<=100;x+=2){ sum=sum+x;}
C.  for (int x =1; x<=100;x+=2){ sum=sum+x;}
D.上述全对


34.下面不属于基本数据类型的是()
A.  int
B.  double
C.  Long        //不是基本数据类型,就是引用数据类型
D.  int[]        //讲过,引用数据类型


35.下面哪个不是java中的关键字?(   )
A.        public
B.  true
C.  main                //标示符
D.  class


36.以下代码输出是(  )
int i=0;
int sum=0;
while(i<=10)
{
i++;
         if( i%2 !=0 )
                continue;
sum+=i;

}
System.out.println(sum);
A.  55
B.  45
C.  35
D.  30


37.关于 for循环和 while循环的说法哪个正确? (  ) 
A.while循环先判断后执行,for循环先执行后判断。 
B.while循环判断一般不明确循环次数,for循环的判断一般明确循环次数 
C.两种循环任何时候都不可以替换 
D.两种循环结构中都必须有循环体,循环体不能为空


38.下面程序执行的结果是( )
class Demo
{
public static void main(String [] args)
{
        int a=10;
        if(a++>10)
{
        a=20;
}
        System.out.println(a);
}
}
A.  11
B.  12
C.  20
D.  21


39.下列语句序列执行后,i的值是(    )。
int i=16;
do {
i/=2;
} while( i > 3 );
A. 16
B. 8
C. 4
D. 2


40.定义变量如下:
char c='w'; int i=8; long L=15; float f=8.9f;
以下赋值语句正确的是(  )。
A.  i=c+i;
B.  c=c+i;        //char 到int需要强转
C.  L=f+L;        //float>long,需要强转
D.  f=i+L+f;
作者: 水月灬清影    时间: 2016-9-2 21:14
可有标准答案?

作者: 唐雨忆    时间: 2016-9-2 22:20
正好是我今天晚上的考试题
作者: 584444948    时间: 2016-9-2 22:22
我都看不懂  大神




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2