Java基础习题

更新时间:2023-10-09 21:24:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Java基础习题(附答案)1

1.下列语句序列执行后,m 的值是( C)。 int a=10, b=3, m=5;

if( a==b ) m+=a; else m=++a*m; A) 15 B) 50 C) 55 D) 5 2.下列语句序列执行后,k 的值是(B )。 int i=4,j=5,k=9,m=5;

if(i>j||m

A) 5 B) 20 C) 15 D) 10 4.下列语句序列执行后,b 的值是( B)。 int a=2, b=4;

if( a < - - b ) a*=a;

A) 5 B) 3 C) 15 D) 10 5.下列语句序列执行后,m 的值是( D )。 int i=9, j=8, m=10, n=9;

if( i

A) 5 B) 3 C) 4 D) 6 7.下列语句序列执行后,ch1 的值是( B )。 char ch1=?A?,ch2=?W?; if(ch1 + 2 < ch2 ) ++ch1;

A) ?A? B) ?B? C) ?C? D) B 8.下列语句序列执行后,x 的值是(B )。 int a=3, b=4, x=5; if( ++a==b ) x=++a*x;

A) 35 B) 25 C) 20 D) 5

9.下列语句序列执行后,k 的值是(C)。 int i=6,j=8,k=10,m=7;

if(i>j||m

{ case 8 : k++; case 9 : k+=2;

case 10: k+=3; default : k/=j; }

A) 31 B) 32 C) 2 D) 33

11.若a和b均是整型变量并已正确赋值,正确的switch语句是(D )。 A) switch(a+b); { ...... } B) switch( a+b*3.0 ) { ...... } C) switch a { ...... } D) switch ( a%b ) { ...... } 12.下列语句序列执行后,r 的值是( C)。 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: r=r+8; }

A) 13 B) 15 C) 16 D) 18

13.设int 型变量 a、b,float 型变量 x、y,char 型变量 ch 均已正确定义并赋值,正确的switch语句是(B )。

A) switch (x + y) { ...... } B) switch ( ch + 1 ) { ...... } C) switch ch { ...... } D) switch ( a + b ); { ...... } 14.下列语句序列执行后,k 的值是(D )。 int x=6, y=10, k=5; switch( x%y ) {

case 0: k=x*y; case 6: k=x/y; case 12: k=x-y;

default: k=x*y-x; }

A) 60 B) 5 C) 0 D) 54 15.下列语句序列执行后,r 的值是(B )。 char ch='A'; int r=6; switch( ch+5 ) {

case 'A': r=r+3; case 'B': r=r+5;

case 'C': r-=6; break; default : r/=2; }

A) 11 B) 3 C) 2 D) 9 16.以下for循环的执行次数是(B)。 for(int x=0;(x==0)&(x>4);x++);

A)无限次 B)一次也不执行 C)执行4次 D)执行3次 17.下列语句序列执行后,j 的值是( A )。 int j=1; for( int i=5; i>0; i-=2 ) j*=i; A) 15 B) 1 C) 60 D) 0 18.以下for循环的执行次数是( B )。 for(int x=0;(x==0)&(x<4);x++);

A)无限次 B)一次 C)执行4次 D)执行3次 19.下列语句序列执行后,j 的值是(D )。 int j=2;

for( int i=7; i>0; i-=2 ) j*=2;

A) 15 B) 1 C) 60 D) 32 20.以下for循环的执行次数是(B )。 for(int x=0,y=0;(y!=0)&&(x<4);x++);

A)无限次 B)一次也不执行 C)执行4次 D)执行3次 21.下列语句序列执行后,j 的值是( D)。 int j=0;

for( int i=3; i>0; i-- ) j+=i; A) 3 B) 4 C) 5 D) 6

22.以下由 for 语句构成的循环执行的次数是(B )。

for ( int i = 0; true ; i++) ;

A)有语法错,不能执行 B)无限次 C)执行1次 D)一次也不执行 23.下面语句执行后,i 的值是(B)。 for( int i=0, j=1; j < 5; j+=3 ) i=i+j; A) 4 B) 5 C) 6 D) 7 24.下列语句序列执行后,k的值是(D)。 int j=8, k=15;

for( int i=2; i!=j; i++ ) { j-=2; k++; } A) 18 B) 15 C) 16 D) 17 25.下列语句序列执行后,k 的值是(B)。 int m=3, n=6, k=0;

while( (m++) < ( -- n) ) ++k;

A) 0 B) 1 C) 2 D) 3 26.下列语句序列执行后,i 的值是( D)。 int s=1,i=1;

while( i<=4 ) {s*=i;i++;}

A) 6 B) 4 C) 24 D) 5 27. 下列语句序列执行后,k 的值是(C )。 int m=3, n=6, k=0;

while( m < n ) { ++k; m++; --n; } A) 0 B) 1 C) 2 D) 3 28.下列语句序列执行后,j 的值是(C )。 int j=8, i=6;

while( --i >4 ) --j;

A) 5 B) 6 C) 7 D) 8 29.下列语句序列执行后,j 的值是( C )。 int j=8, i=6;

while( i >4 ) i-=2; - -j;

A) 5 B) 6 C) 7 D) 8 30.下列语句序列执行后,j 的值是( B )。 int j=9, i=6; while( i-- >3 ) --j;

A) 5 B) 6 C) 7 D) 8 31.下列语句序列执行后,j 的值是(D)。 int j=3, i=2;

while( --i!=i/j ) j=j+2;

A) 2 B) 4 C) 6 D) 5 32. 若有循环:

int x=5,y=20;

do { y-=x; x+=2; }while(x

A) 2次 B) 1次 C) 0次 D) 3次

33.以下由do-while语句构成的循环执行的次数是(B)。 int m = 8;

do { ++m; } while ( m < 8 ); A)一次也不执行 B)执行1次

C)8次 D)有语法错,不能执行 34.下列语句序列执行后,i的值是(A )。 int i=10;

do { i/=2; } while( i>1 );

A) 1 B) 5 C) 2 D) 0 35.下列语句序列执行后,i的值是(D)。 int i=10;

do { i/=2; } while( i--> 1 );

A) 1 B) 5 C) 2 D) -1 36.下列语句序列执行后,i的值是(C )。 int i=10;

do { i-=2; } while( i>6 );

A) 10 B) 8 C) 6 D) 4 37.下列语句序列执行后,i的值是(D)。 int i=16;

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

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

38.以下由do-while语句构成的循环执行的次数是(B)。

D) int x( int a,int b) { return a+b; } 3. 下列方法定义中,不正确的是(D)。 A) float x( int a,int b ) { return (a-b); } B) int x( int a,int b) { return a-b; }

C) int x( int a,int b ); { return a*b; } D) int x(int a,int b) { return 1.2*(a+b); } 4. 下列方法定义中,正确的是( A )。

A) int x( ){ char ch='a'; return (int)ch; } B) void x( ){ ...return true; }

C) int x( ){ ...return true; } D) int x( int a, b){ return a+b; } 5. 列方法定义中,方法头不正确的是(D )。 A)public int x( ){ ... } B)public static int x( double y ){ ... } C)void x( double d ) { ... } D)public static x( double a ){ ... }

6.在某个类中存在一个方法:void getSort(int x),以下能作为这个方法的重载的声明的是(C)。

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.在某个类中存在一个方法:void sort(int x),以下不能作为这个方法的重载的声明的是(B)。

A)public float sort(float x) B)int sort(int y)

C)double sort(int x,int y) D)void sort(double y) 8. 为了区分类中重载的同名的不同方法,要求( A)。

A) 采用不同的形式参数列表 B) 返回值类型不同 C) 调用时用类名或对象名做前缀 D) 参数名不同 三.问答题及答 案

1. 方法可以没有返回值吗?可以有多个返回值吗? (可以;不能) 2. 一个方法如果没有返回值,方法头定义中的返回值类型为何?(void) 3. 何为形式参数?何为实在参数?(略)

4. 一个方法或一个复合语句内定义的变量是否可以在方法外或复合语句外使用?这种变量称为什么变量?(不 能;局部变量)

5. 采用_______的程序设计原则,使程序结构清晰简单,设计容易,有助于软件可靠性的提高。(模块化)

6. 重载的方法可以通过它们的返回值类型的不同来区分吗?(不能) 7. 编译程序如何区分重载方法的调用?(根据参数列表不同来区分)

一、选择题

1 定义类头时,不可能用到的关键字是( B)。

A) class B)private C)extends D)public 2.下列类定义中,不正确的是(C)。

A) class x { .... }

B) class x extends y { .... }

C) static class x implements y1,y2 { .... } D) public class x extends Applet { .... } 3.下列类头定义中,错误的是( A)。 A)public x extends y {...} B) public class x extends y {...}

C)class x extends y implements y1 {...} D)class x {...}

.设 A为已定义的类名,下列声明A类的对象a的语句中正确的是( D)。 A) float A a; B) public A a=A( ); C) A a=new int( ); D) static A a=new A( );

5.设 A为已定义的类名,下列声明A类的对象a的语句中正确的是(A)。 A) public A a=new A( ); B) public A a=A( ); C) A a=new class( ); D) a A;

6.设 X 、Y 均为已定义的类名,下列声明类X的对象x1的语句中正确的是(C)。 A) public X x1= new Y( ); B) X x1= X ( );

C) X x1=new X( ); D) int X x1;

7. 设X 、Y为已定义的类名,下列声明X类的对象x1的语句中正确的是(A)。 A) static X x1; B) public X x1=new X(int 123); C) Y x1; D) X x1= X( );

8.通过类MyClass中的不含参数的构造方法,生成该类的一个对象obj,可通过以下语句实现: _______________________________。 (MyClass obj=new MyClass( );)

9. 设i , j为类X中定义的int型变量名,下列X类的构造方法中不正确的是( A)。 A) void X(int k ){ i=k; } B) X(int k ){ i=k; } C) X(int m, int n ){ i=m; j=n; } D) X( ){i=0;j=0; }

10. 有一个类A,以下为其构造方法的声明,其中正确的是( A )。 A)public A(int x){...} B)static A(int x){...} C)public a(int x){...} D)void A(int x){...}

11. 有一个类A,以下为其构造方法的声明,其中正确的是( B )。 A)void A(int x){...} B)A(int x){...}

C)a(int x){...} D)void a(int x){...}

12. 设i、j、k为类X中定义的int型变量名,下列类X的构造方法中不正确的是( B )。

A) X( int m){ ... } B) void X( int m){ ... } C) X( int m, int n){ ... } D) X( int h,int m,int n){ ... }

13. 设i , j为类X中定义的double型变量名,下列X类的构造方法中不正确的是(A )。

A) double X(double k ){ i=k; return i; } C) X( ){i=6;j=8; }

B) X(double m, double n ){ i=m; j=n; } D) X(double k ){ i=k; }

14. 设a , b为类MyClass中定义的int型变量名,下列MyClass类的构造方法中不正确的是(A)。

A) double MyClass(double k ){ a=k; return a; } B) MyClass( ){a=6;b=8; }

C) MyClass (double m, double n ){ a=m; b=n; } MyClass (double k ){ a=k; }

15 定义类头时,不可能用到的关键字是(A)

。 A)protected B) class C)extends D)public 16.下列类头定义中,错误的是(A)。

A)public TestClass extends y {...} B) public class TestClass extends y {...}

C)class TestClass extends y implements y1 {...} D) class TestClass {...}

17.设 B为已定义的类名,下列声明B类的对象b的语句中正确的是(D)。 A) float B b; B) public B b=B( ); C) B b=new int( ); D) static B b=new B( );

18.设 ClassA为已定义的类名,下列声明ClassA类的对象ca的语句中正确的是(A)。

A)public ClassA ca=new ClassA( ); B) public ClassA ca=ClassA( ); C) ClassA ca=new class( ); D) ca ClassA;

19.设 A 、B 均为已定义的类名,下列声明类A的对象a1的语句中正确的是(C)。 A) public A a1= new B( ); B) A a1= A ( ); C) A a1=new A( ); D) int A a1;

20. 设A 、B为已定义的类名,下列声明A类的对象a1的语句中正确的是(A)。 A) static A a1; B) public A a1=new A(int 123); C) B a1; D) A a1= A( );

21.通过类A中的不含参数的构造方法,生成该类的一个对象a,可通过以下语句实现: _______________________________。 (A a=new A( );)

22. 设m , n为类A中定义的int型变量名,下列A类的构造方法中不正确的是( A)。

A) void A(int k ){ m=k; } B) A(int k ){ m=k; } C) A(int m, int n ){m=i; n=j; } D) A( ){m=0;n=0; }

23. 有一个类Person,以下为其构造方法的声明,其中正确的是( A )。 A)public Person (int x){...} B)static Person (int x){...} C)public a(int x){...} D)void Person (int x){...}

24. 有一个类Student,以下为其构造方法的声明,其中正确的是( B )。 A)void Student (int x){...} B) Student (int x){...} C)s(int x){...} D)void s(int x){...}

25. 设i、j、k为类School中定义的int型变量名,下列类School的构造方法中不正确的是( B )。

A) School ( int m){ ... } B) void School ( int m){ ... } C) School ( int m, int n){ ... } D) School ( int h,int m,int n){ ... } 二、填空题

2. 下面是一个类的定义,请将其补充完整。(Student String) class _____ {

String name; int age;

Student( _____ s, int i) {

name=s; age=i; } }

3.下面是一个类的定义,请将其补充完整。(myclass static) class ____________ // 定义名为myclass的类 {

__________ int var=666; static int getvar()

{ return var; } }

4.下面程序的功能是通过调用方法max()求给定的三个数的最大值, 请将其补充完 整。(max(i1,i2,i3) static) public class Class1 {

public static void main( String args[] ) {

int i1=1234,i2=456,i3=-987; int MaxValue;

MaxValue=____________;

System.out.println(\三个数的最大值:\ }

public ______ int max(int x,int y,int z) { int temp1,max_value; temp1=x>y?x:y;

max_value=temp1>z?temp1:z; return max_value; } }

5.下面是一个类的定义,请将其补充完整。(class static) ___________ A { String s;

_____ int a=666;

A(String s1) { s=s1; }

static int geta( ) { return a; } }

9.下面程序的功能是通过调用方法max()求给定的二个整数的最大值, 请将其补充完 整。(max(a1,a2) int) public class Class1 {

public static void main( String args[] ) {

int a1=1234,a2=456; int MaxValue;

MaxValue=____________;

System.out.println(\二个数的最大值:\ }

public static ______ max(int x,int y) { int max_value;

max_value =x>y?x:y; return max_value; } }

1. 面向对象的软件开发方法用什么把数据和基于数据的操作封装在一起?(类) 2. 在一个类定义中,用什么描述对象的状态? 用什么描述对象的行为?(属性;方法)

3. 什么方法是一个特殊的方法,用于对对象进行初始化? (构造方法)

4. 一个源程序文件中,能有多于一个的 public 类吗?(不能) 5. 构造方法的方法名可由编程人员任意命名吗? (不能,必须与类名同名)

6. 类的构造方法名必须和类名相同吗?(必须) 7. 构造函数有返回值吗?(没有) 8. 构造函数可以重载吗? (可以)

9. 如果一个类定义中没有定义构造方法,该类有构造函数吗? (有,编译器会自动生成一个缺省的不带参数的构造函数)

10. 如果一个类定义中已经定义了构造方法,java还会给它定义缺省的构造方法吗?(不会)

11. 类的访问控制权有哪两种?(public 和 缺省的(即没有访问控制修饰符)) 12. 用什么修饰符修饰的方法称为静态方法? 用什么修饰符修饰的属性称为静态属性?(static)

13. 静态属性和静态方法仅属于类的一个具体对象吗?它属于谁? (不是;它是类的所有对象公有的)

14. static 变量能是 private 变量吗?(可以)

15. 使用静态成员都能以什么做前缀?(可以用类名或对象名做前缀) 16. static方法中能有this引用吗?(不能) 17. 非static方法中可以有this引用吗?(可以) 18.static方法能处理非static成员吗?(不能) 19.非static方法能处理static成员吗?(能)

20. 类的私有属性和私有方法能不能被其子类直接访问? (不能) 一、 选择题

1. Java语言的类间的继承关系是( B )。

A) 多重的 B) 单重的 C) 线程的 D) 不能继承

2. 以下关于Java语言继承的说法正确的是( C )。 A)Java中的类可以有多个直接父类 B)抽象类不能有子类

C)Java中的接口支持多继承 D)最终类可以作为其它类的父类 3. 现有两个类A、B,以下描述中表示B继承自A的是(D)。 A) class A extends B B) class B implements A C) class A implements B D) class B extends A 4. 下列选项中,用于定义接口的关键字是( A)。 A)interface B) implements C) abstract D) class 5. 下列选项中,用于实现接口的关键字是( B)。 A)interface B) implements C) abstract D) class 6. Java语言的类间的继承的关键字是( B )。

A) implements B) extends C) class D) public

7. 以下关于Java语言继承的说法错误的是( A )。 A)Java中的类可以有多个直接父类 B)抽象类可以有子类

C)Java中的接口支持多继承 D)最终类不可以作为其它类的父类 8. 现有两个类M、N,以下描述中表示N继承自M的是(D)。 A) class M extends N B) class N implements M C) class M implements N D) class N extends M 9. 现有类A和接口B,以下描述中表示类A实现接口B的语句是(A)。 A) class A implements B B) class B implements A C) class A extends B D) class B extends A 10. 下列选项中,定义抽象类的关键字是( C)。

A)interface B) implements C) abstract D) class 11. 下列选项中,定义最终类的关键字是(D)。

A)interface B) implements C) abstract D) final 12. 下列选项中,哪个是java语言所有类的父类(C) A)String B) Vector C) Object D) KeyEvent

13. java语言中,用于判断某个对象是否是某个类的实例的运算符是(A) A)instanceof B) + C) isinstance D) &&

14. 下列选项中,表示数据或方法可以被同一包中的任何类或它的子类访问,即使子类在不同的包中也可以的修 饰符是(B) A)public B) protected C) private D) final

15. 下列选项中,表示数据或方法只能被本类访问的修饰符是(C) A)public B) protected C) private D) final 16. 下列选项中,接口中方法的默认可见性修饰符是(A)

A)public B) protected C) private D) final 17. 下列选项中,表示终极方法的修饰符是:(B) A)interface B) final C) abstract D) implements

18. 下列选项中,定义接口MyInterface的语句正确的是:(A) A)interface MyInterface{ } B) implements MyInterface { } C) class MyInterface{ } D) implements interface My{ }

19. 如果子类中的方法mymethod()覆盖了父类中的方法mymethod(),假设父类方法头部定义如下:void mymethod(int a),则子类方法的定义不合法的是:(C) A) public void mymethod(int a) B) protected void mymethod(int a) C) private void mymethod(int a) D) void mymethod(int a)

二、 填空题

1. 如果子类中的某个变量的变量名与它的父类中的某个变量完全一样,则称子类中的这个变量________了父类的同名变量。(隐藏)

2. 属性的隐藏是指子类重新定义从父类继承来的__________。(同名变量或属性)

3. 如果子类中的某个方法的名字、返回值类型和________与它的父类中的某个方法完全一样,则称子类中的这个方法覆盖了父类的同名方法。(参数列表) 4. Java 仅支持类间的____重继承。(单重)

5. 抽象方法只有方法头,没有________。 (方法体)

6. Java 语言的接口是特殊的类,其中包含______常量和_______方法。(static(静态) ; abstract(抽象))

7. 接口中所有属性均为_________、_________和________的。 (public、static、final)

本文来源:https://www.bwwdw.com/article/umzf.html

Top