Java100道习题

1. 已有代码Person p=new Person(); 使用语句Person sp=p;相当于生成了一个与p相同的新对象sp。判断该语句的对错。//去掉相当于就是错的 因为sp 与p指向同一块内存只是标示不同罢了

a) 对

b) 错

2. Java中,既可以用数组放简单类型数据,也可以放类类型的对象。

a) 对

b) 错

3. 在Java中,整型数据的大小是不固定的,某些编译器使用2字节,也有使用4字节的。

a) 对

b) 错

4. 在同一类中,可以有以下两个方法声明:

void add(int j,int k){…} 和 int add(int j,int k){…}//方法的重载 与参数的数量和类型 有关和返回值类型无关

a) 对

b) 错

回答问题5. 新对象的创建总是和引用该对象的变量声明在一起完成。

a) 对 举个例子Person p=new person();

b) 错

6. Java中的每个类都至少有一个构造器。

a) 对

b) 错

7. 静态方法可作用于静态变量和成员变量。

a) 对

b) 错

8. 下面哪句是正确的(一项)

a) char ch=”s”;

b) float num=5.5;

c) double price=100;

d) byte=1000;

9. 有以下代码(一项):

public class Person{

static int arr[]=new int[10];//已经初始化了
public static void main(String a[]){
System.out.println(arr[1]);
}

a) 编译时出错。 b) 编译时没错,运行时出错。

c) 输出0。 d) 输出为空。

10. 有如下代码(一项):

public class Test{

public static void main(String args []){

int age;//没有初始化所以不能编译

age=age+1;

System.out.println(“The age is”+age);

a) 编译,运行后没有输出

b) 编译,运行后输出:The age is 1

c) 能通过编译,但运行时产生错误

d) 不能通过编译

11. 在Java语言中,下列语句中正确的是()。

a) String temp[]=new String {“j”,“a”,“z”};

b) String temp[]= {“j” “b” “c”};

c) String temp[3]= {“a”,“b”,“c”};

d) String temp[]= {“a”, “b” ,“c”};

12. 有以下代码(一项):

class Test{

private static int x=100;

public static void main(String arg[]){

Test t1=new Test();

t1.x++;

Test t2=new Test();

t2.x++;

t1=new Test();

t1.x++;

Test.x++;

System.out.println("x="+x);

}

a) 第5行不能通过编译,因为引用了私有静态变量

b) 第10行不能通过编译,因为X是私有静态变量。

c) 程序通过编译,结果为X=103

d) 程序通过编译,结果为X=104

13. 以下有关构造函数的说法,正确的是(两项):

a) 一个类可以有多个构造函数

b) 构造函数在对象创建时被调用

c) 构造函数有返回值

d) 构造函数可以和类同名,也可以和类名不同

14. 下列语句有语法错误的是(选一项):

a) int x=1 ; y=2; z=3;

b) for(x=10,y=0;x>0;x++);

c) while(x>5);

d) for(;;)

15. 算术表达式1+2/3-4*5的值为。(选择1项)

a) 1

b) -19

c) -5

d) 0

计算机是从左到右的 从1+2开始但是因为除法的优先级比加法高所以先算2/3 结果为0,然后算1+0=1 再算1-4 因为乘法的优先级比加法高所以算4*5==20 然后再算 1-20 结果为-19

16. 下列哪一项不属于面向对象程序设计的基本要素?(选择1项)

a) 类

b) 对象

c) 方法

d) 控制语句

17. 下面描述的源文件名(*.java)正确的是:(选两项)

a) 必须和含有main()方法的类名一致

b)必须和public修饰的类名一致

C)如果没有public修饰的类,名字可以任意

b) 名字可以任意

18. ?下列哪些语句不能通过编译:(选择一项 )

a) String s = "john" + " was " + " here";

b) String s = "john" + 3;

c) int a = 3 + 5;

d) int a = 5 + 5.5;

19. ?下面哪几个函数是public void example(){...}的重载函数?(选择两项)方法重载只有参数的数量和类型有关与返回值类型 无关

a) public void example( int m){...}

b) public int example(){...}

c) public void example2(){...}

d) public int example ( int m, float f){...}

20. 接口是特殊的类,所以接口可以继承,子接口将继承父接口的所有常量和方法。

a) 对

b) 错

21. 如果p是父类Parent的对象,c是子类Child的对象,则c=p是正确的。

a) 对

b) 错

22. 如果一个类的方法与其父类中方法同名并有相同参数,但返回类型不同,也能构成重写。

a) 对

b) 错

23. 如果Food是一个接口,Banana是Food的一个实现类,则语句Food f = new Banana( )。

a) 对

b) 错

24. 抽象方法只存在于abstract class里。

a) 对

b) 错

25. 缺省的,接口中的所有变量都是final和static的。

a) 对

b) 错

26. 在Java语言中,下列表达式返回true的是(两项)。

a) “john”= =“john”//内存比较(只是标示不同)

b) “john”.equals(“john”) //值的比较

c) “john”=“john”

d) String s=“john”; s = = new String(“john”)

String a = “john”;

String b = “john”;

a==b true

a. equals(b) true

String c = new String(“john”);

a==c false

a.equals(c) true

27. ?如果编译运行下面的Java代码,将会(一项)。

class Shape{ }

class Circle extends Shape { }

public class Test{

public static void main(String args[ ]){

Shape s = new Shape ();

Circle c = (Circle) s;//父类强制转换成子类编译没错但运行时会有错

a) 能够正确地编译和运行

b) 发生编译时异常

c) 发生运行时异常

28. 在Java语言中,类Worker是类Person的子类,Worker的构造方法中有一句“super()”,该语句(一项)。

a) 调用类Worker中定义的super()方法

b) 调用类Person中定义的super()方法

c) 调用类Person的构造方法

d) 语法错误

29. 在Java中,关于final关键字的说法正确的是(选两项)。

a) 如果修饰变量,则一旦赋了值,就等同一个常量

b) 如果修饰类,则该类只能被一个子类继承

c) 如果修饰方法,则该方法不能在子类中被覆盖

d) 如果修饰方法,则该方法所在的类不能被继承

30. 下面的是关于类及其修饰符的一些描述,错误的是。(选择1项)

a) abstract类只能用来派生子类,不能用来创建abstract类的对象

b) abstract不能与final同时修饰一个类

c) final类不但可以用来派生子类,也可以用来创建final类的对象

d) abstract类中可以没有abstract方法

31. 运行下列Java代码后,包含在输出结果中的是()。(选择两项)

public class Example{

public static void main(String args[]){

int i=0;

do{

System.out.println(〞Doing it for i is 〞+i);

}while(- - i > 0);//先自减在判断

System.out.println(〞Finished〞);

}

a) Doing it for i is 3

b) Doing it for i is 1

c) Doing it for i is 2

d) Doing it for i is 0

e) Finished

32. *在Java中,下列代码将输出()。(选择一项)

Public class integerequals{

Public static void main(String args[ ]) {

Integer a=new Integer(3);

Integer b=new Integer(3);

System.out.println(a==b);//==比较的是内存 a b 指向完全不同的内存

}

a) 编译器将有错误

b) 程序编译并打印true

c) 程序编译并打印false

d) 运行期异常

33. 在Java中,在单一文件中import、class 和package的正确出现顺序是()。(选择一项)

a) class, import, package

b) package, import, class

c) import, package, class

d) package, class, import

34. 语句double d=Math.sqrt(1000);需要使用到的包是()。(选择一项)

a) Java.lang.*

b) Java.Math.*

c) Java.util.*;

d) 以上皆非

35. 编译并运行下面的Java代码段:

char c='a';

switch (c) {

case 'a':

System.out.println("a");

default: System.out.println("default");

} 输出结果是()。(选择一项)

a) 代码无法编译,因为switch语句没有一个合法的表达式

b) a 和 default // 没有了case 因此一直往下走

c) a

d) default

36. 在Java中,要想定义只有与该类在同一包内的其他类可以访问的类,应该用( )关键字。(选择一项)

a) 不需要任何关键字

b) private

c) final

d) protected

37. 编译并运行下面的Java程序:

class A{

int var1=1;

int var2;

public static void main(String[] args){

int var3=3;

A a=new A(); //new 同时声明了 var1 var2 的内存,因此可以计算;

System.out.println(a.var1+a.var2+var3);

}

} 将产生( )结果。(选择一项)

a) 0

b) 4

c) 3

d) 代码无法编译,因为var2根本没有被初始化

38. 在Java中,下面关于包的陈述中正确的是()。(选择两项)

a) 包的声明必须是源文件的第一句代码

b) 包的声明必须紧跟在import语句的后面

c) 只有公共类才能放在包中

d) 可以将多个源文件中的类放在同一个包中

39. 当一个类的某个变量声明为protected时下列说法正确的是()。(选择两项)

a) 只有同一类中的成员才能访问它

b) 不同包中的任何其他类都能够访问它

c) 同包中的任何其他类能够访问它

d) 不同包中的子类可以访问该变量

40. 在Java中,执行下面的语句后,c的值为()。(选择一项)

String s= "Jessica "; char c=s.charAt(6);

a) "c "

b) "a "

c) 'c '

d) 'a '

41. 考虑以下代码,选择一项正确答案

class Test{

void fun(int i){//将字符转化成了数字 字符在计算机已2进制的形式存在的

System.out.println(“第一个方法”);

}

void fun(String s){

System.out.println(“第二个方法”);

}

public static void main(String arg[]){

Test t=new Test();

char ch=’y’;

t.fun(ch);

}

}

a) 编译错误

b) 执行错误

c) 输出结果为:第一个方法

d) 输出结果为:第二个方法

42. 为了定义三个整型数组a1、a2、a3,下面声明正确的语句是。(选择1项)

a) int Array[] a1,a2;

int a3[]={1,2,3,4,5};

b) int [ ] a1,a2;

int a3[]={1,2,3,4,5};

c) int a1,a2[ ];

int a3={1,2,3,4,5};

d) int [] a1,a2;

int a3=(1,2,3,4,5);

43. 在Java中,关于CLASSPATH环境变量的说法错误的是(一项)。(没讲)

a) CLASSPATH一旦设置之后不可修改

b) ?编译器用它来搜索各自的类文件

c) CLASSPATH是一个目录的列表

d) 解释器用它来搜索各自的类文件

44. this和super的使用中,正确的是:(两项)

a) 都是一个对象的内存地址//都指的是对象本身的内存地址

b) super()只能在子类的构造方法中出现

c) 意义相同

d) 可以在任何方法中出现

45. 下面哪些代码能通过编译:(选两项)

a) int i=0;
if(i) { System.out.print(i); }

b) boolean b=true;
if(b) { System.out.print(b); }

c) boolean b=true;
if(b==true) { System.out.print(b); }

d) boolean b=true;
if(b.equals(true)) { System.out.print(b); }

简单类型不能调用方法

46. ?类MyFrame中有public static void main(String args[])的声明,在Dos环境下,以java MyFrame hello world运行该类时,以下哪句是正确的(两项)

a) args[0]的值是hello

b) args[1] 的值是hello

c) args[0]的值是world

d) args[1] 的值是world

47. 在父类中,使用哪个修饰符,子类不可访问其变量(一项)

a) protected

b) private

c) 两个都可

d) 都不是

48. Java虚拟机执行的操作包括()。(选择三项)

a) 加载.class文件

b) 将.java文件编译成.class文件

c) 管理内存

d) 执行垃圾回收

e) 解释字节码文件(.class)

49. 在Java语言中,声明公共的抽象方法的正确格式是()。(选择一项)

a) public abstract void add();

b) public abstract void add(){}

c) public abstract add();

d) public virtual add();

50. 关于字符串方法,正确描述有:(两项)

a) subString()可以返回一个字符串的部分子串

b) split()是查找一个字符串是否出现在另一个字符串中

c) replace()是将一个字符串的部分子串删除

d) compareTo()用来比较两个字符串的大小

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
〖程序设计基础〗练习题1一、选择题(每题1分,共30分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项的标记写在题干后的括号内。1.以下的选项中能正确表示Java语言中的一个整型常量的是( )。A) 12. B) -20 C) 1,000 D) 4 5 62.以下选项中,合法的赋值语句是( )。A) a = = 1; B) ++ i; C) a=a + 1= 5; D) y = int ( i );3.若所用变量都已正确定义,以下选项中,非法的表达式是( )。A) a != 4||b==1 B) 'a' % 3 C) 'a' = 1/2 D) 'A' + 324.若有定义int a = 2;则执行完语句a += a -= a * a; 后,a的值是( )。A) 0 B) 4 C) 8 D) -45.设有定义语句int a[]={66,88,99}; 则以下对此语句的叙述错误的是( )。A) 定义了一个名为a的一维数组 B) a数组有3个元素C) a数组的下标为1~3 D)数组中的每个元素是整型6.若a和b均是整型变量并已正确赋值,正确的switch语句是( )。A) switch(a+b); B) switch( a+b*3.0 ){ ...... } { ...... }C) switch a D) switch ( a%b ){ ...... } { ...... }7.下列语句序列执行后,x 的值是( )。int a=3, b=4, x=5;if( ++aA) 5 B) 3 C) 4 D) 68.下列语句序列执行后,k 的值是( )。int i=6, j=8, k=10, n=5, m=7;if( iA) 9 B) 10 C) 11 D) 129.下列语句序列执行后,r 的值是( )。char ch='8'; int r=10;switch( ch+1 ){ case '7': r=r+3;case '8': r=r+5;case '9': r=r+6; break;default: ;}A) 13 B) 15 C) 16 D) 1010.下列语句序列执行后,j 的值是( )。int j=0;for( int i=3; i>0; i-- ) j+=i;A) 3 B) 4 C) 5 D) 611.下列语句序列执行后,j 的值是( )。int j=9, i=6;while( i-- >3 ) --j;A) 5 B) 6 C) 7 D) 812.下列语句序列执行后,i的值是( )。int i=10;do { i-=2; } while( i>6 );A) 10 B) 8 C) 6 D) 413.为了区分重载多态中同名的不同方法,要求( )。A) 采用不同的形式参数列表 B) 返回值类型不同 C) 调用时用类名或对象名做前缀 D) 参数名不同14.定义主类的类头时可以使用的访问控制符是( )。A) private B) protected C) public D) private protected15.下列整型的最终属性 i 的定义中,正确的是( )。A) static final int i=100; B) final i;C) static int i; D) final float i=1.2f; 16.设 x,y 均为已定义的类名,下列声明对象x1的语句中正确的是( )。A) public x x1= new y( ); B) x x1=x( ); C) x x1=new x( ); D) int x x1;17.下列方法定义中,正确的是( )。A) int x( int a,b ) B) double x( int a,int b){ return (a-b); } { int w; w=a-b; }C) double x( a,b ) D) int x( int a,int b){ return b; } { return a-b; }18.能构成多分支的语句是( )。A) for 语句 B) while 语句 C) switch 语句 D) do -
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值