1、20Java基础练习题的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(ij|mk) k+; else k-; A) 5 B) 10 C) 8 D) 93.下列语句序列执行后,x 的值是( D )。 int a=2, b=4, x=5; if( a-b ) x*=a;A) 5 B) 20 C) 15 D) 104.下列语句序列执
2、行后,b 的值是( B)。int a=2, b=4;if( a - - b ) a*=a;A) 5 B) 3 C) 15 D) 105.下列语句序列执行后,m 的值是( D )。int i=9, j=8, m=10, n=9;if( ij | m - -n ) i+; else j-;A) 6 B) 7 C) 8 D) 96.下列语句序列执行后,x 的值是( A )。int a=3, b=4, x=5;if( +ab ) x=x+1;A) 5 B) 3 C) 4 D) 67.下列语句序列执行后,ch1 的值是( B )。char ch1=A,ch2=W;if(ch1 + 2 ch2 ) +ch
3、1;A) A B) B C) C D) B8.下列语句序列执行后,x 的值是(B )。 int a=2, b=4, x=5; if( aj|m4);x+);A)无限次 B)一次也不执行 C)执行4次 D)执行3次17.下列语句序列执行后,j 的值是( A )。 int j=1; for( int i=5; i0; i-=2 ) j*=i;/*表达式3是改变循环变量取值,进行下一轮循环*/A) 15 B) 1 C) 60 D) 018.以下for循环的执行次数是( B )。 for(int x=0;(x=0)&(x0; i-=2 ) j*=2;A) 15 B) 1 C) 60 D) 3220.以
4、下for循环的执行次数是(B )。 for(int x=0,y=0;(y!=0)&(x0; i- ) j+=i;A) 3 B) 4 C) 5 D) 622.以下由 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) 724.下列语句序列执行后,k的值是(D)。 int j=8, k=15; for( int i=2; i!=j;
5、 i+ ) j-=2; k+; A) 18 B) 15 C) 16 D) 1725.下列语句序列执行后,k 的值是(B)。 int m=3, n=6, k=0; while( (m+) ( - n) ) +k;A) 0 B) 1 C) 2 D) 326.下列语句序列执行后,i 的值是( D)。 int s=1,i=1; while( i=4 ) s*=i;i+;A) 6 B) 4 C) 24 D) 527. 下列语句序列执行后,k 的值是(C )。 int m=3, n=6, k=0; while( m 4 ) -j; A) 5 B) 6 C) 7 D) 829.下列语句序列执行后,j 的值是
6、( C )。 int j=8, i=6; while( i 4 ) i-=2; - -j; A) 5 B) 6 C) 7 D) 830.下列语句序列执行后,j 的值是( B )。 int j=9, i=6; while( i- 3 ) -j;A) 5 B) 6 C) 7 D) 831.下列语句序列执行后,j 的值是(D)。 int j=3, i=2; while( -i!=i/j ) j=j+2;A) 2 B) 4 C) 6 D) 532. 若有循环: int x=5,y=20; do y-=x; x+=2; while(xy);则循环体将被执行(A )。A) 2次 B) 1次 C) 0次 D
7、) 3次33.以下由do-while语句构成的循环执行的次数是(B)。 int m = 8; do +m; while ( m 1 );A) 1 B) 5 C) 2 D) 035.下列语句序列执行后,i的值是(D)。 int i=10; do i/=2; while( i- 1 );A) 1 B) 5 C) 2 D) -136.下列语句序列执行后,i的值是(C )。 int i=10; do i-=2; while( i6 );A) 10 B) 8 C) 6 D) 437.下列语句序列执行后,i的值是(D)。 int i=16; do i/=2; while( i 3 );A) 16 B) 8
8、 C) 4 D) 238.以下由do-while语句构成的循环执行的次数是(B)。 int k = 0; do +k; while ( k 1 );A)一次也不执行 B)执行1次 C)无限次 D)有语法错,不能执行 39. 若有循环: int x=5,y=20; do y-=x; x+; while(+x-y);则循环体将被执行(C )。A)0次 B)1次 C)2次 D)3次40.下列循环中,执行break outer语句后,所列(C)语句将被执行。 outer: for(int i=1;i10;i+) inner: for(int j=1;j50) break outer; System.o
9、ut.println(i*j); next:A)标号为inner的语句 B)标号为outer的语句C)标号为next的语句 D)以上都不是 41.下列循环中,执行continue outer语句后,(A)说法正确。outer: for(int i=1;i10;i+) inner: for(int j=1;j50) continue outer; System.out.println(i*j); A)程序控制在外层循环中并且执行外层循环的下一迭代B)程序控制在内层循环中并且执行内层循环的下一迭代C)执行标号为next的语句D)以上都不是2.找出下面各段程序中的错误:a)For (i=100 ,
10、i=1 , i+) System.out.println(i);答案:For的F应该小写;For头中应当使用分号,而应当使用逗号;应当为 答案:应当在case 0 中放置一条break语句c)下面的代码应输入从191之间的所有奇数: for( i = 19 ; i = 1 ; i+=2)System.out.println(i); 答案:应该为d)下面的代码应输出从2到100之间的所有偶数: counter = 2; doSystem.out.println(counter);counter += 2; While (counter 100)答案:while的W应当小写;应当为=3.指出并纠正
11、下面各段代码中的错误:a)while(c= 0) sum +=z;答案:变量z在while循环中一直没有改变,如果循环条件(z=0)为真,则会出现死循环,为了避免,必须使得变量z递减,使其最终小于0;5.指出并纠正下列各段代码的错误。(注解:每段代码中可能包含多个错误。)a) if ( age =65 ) ;System.out.println( “ Age greater than or equal to 65” );else System.out.println ( “Age is less than 65” ); 答案:if后不能有分号,将分号去掉可以改正这个错误。b) int x =
12、1 ,total ; while ( x =10 ) total +=x;+x;答案:total+=x语句中,total没有初始数值,无法使用,在定义total时为其赋值0可以解决这个错误。c) while ( x=100 ) total +=x; +x;答案:循环为死循环,直到超出total的取值范围,在(x=100)后添加 ,然后在+x;后添加可以解决这个错误。6. 找出下面各段代码中的错误,并解释如何改正它。a)for ( k = 0 ; k!=1.0 ; k+=0.1)System.out.println(k);b) 如下代码应打印110的值n = 1;while ( n 10 ) S
13、ystem.out.println( n+ ); 答案:a)错误:浮点数作控制变量,for循环将不工作,因为浮点数在大多数计算机中只是近似值。 改正:用一个整数取代浮点数,并用适当的计算获取所要的值: for( k =1 ; k!= 10 ; k+)System.out.println(float) k / 10 );b) 错误:在while循环继续条件中用了错误的关系运算符。 改正:用= 代替 b?a:b) int fun ( int a, int b ) _; 4. 以下方法m的功能是求两参数之积的整数部分。 (return (int)(a*b) int m ( float x, floa
14、t y ) _; 5. 下面是用户程序对 Applet 类中方法 paint( ) 的重新定义。 (void call)public _ paint(Graphics _) call.drawString(Hello,java!,10,20); 6.下面方法的功能是判断一个整数是否为偶数,将程序补充完整。(boolean true)public _ isEven(int a) if(a%2=0) return _;else return false;7.同一个类中多个方法具有相同的方法名,不同的_称为方法的重载。(参数列表)二选择题及答案1.下列方法定义中,正确的是( D )。A) int x
15、( int a,b ) return (a-b); B) double x( int a,int b) int w; w=a-b; C) double x( a,b ) return b; D) int x( int a,int b) return a-b; 2.下列方法定义中,正确的是( D )。A) void x( int a,int b ); return (a-b); B) x( int a,int b) return a-b; C) double x return b; D) int x( int a,int b) return a+b; 3. 下列方法定义中,不正确的是(D)。A)
16、 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. 列
17、方法定义中,方法头不正确的是(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.在某个类中存在一个方法
18、: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. 何为形式参数?
19、何为实在参数?(略)4. 一个方法或一个复合语句内定义的变量是否可以在方法外或复合语句外使用?这种变量称为什么变量?(不能;局部变量)5. 采用_的程序设计原则,使程序结构清晰简单,设计容易,有助于软件可靠性的提高。(模块化)6. 重载的方法可以通过它们的返回值类型的不同来区分吗?(不能)7. 编译程序如何区分重载方法的调用?(根据参数列表不同来区分) 一、选择题1 定义类头时,不可能用到的关键字是( B)。 A) class B)private C)extends D)public2.下列类定义中,不正确的是(C)。A) class x . B) class x extends y . C)
20、 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(
21、 ); 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=n
22、ew 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(in
23、t 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中定
24、义的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 )
25、a=m; b=n; MyClass (double k ) a=k; 15 定义类头时,不可能用到的关键字是(A)。 A)protected B) class C)extends D)public16.下列类头定义中,错误的是(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
26、; 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 ( )
27、; 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,
28、 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
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100