《Java编程基础知识点汇总及习题集》--答案 下载本文

? 当满足条件时,递归方法终止并且返回

课堂笔记

练习题

一、 填空题

1、Java语言规定,应用程序开始执行点是( )。

2、在Java语言中,一个方法一般由两个部分组成,它们是( )和( )。 3、在一个被调用方法中,一个return语句可返回(一个值 )给调用的方法。

4、在调用方法时,如果实参是数组名,它与对应形参之间的数据传递方式是( ) 5、Java语言中规定方法的返回值的类型是由( )决定的。

二、 选择题

1、关于方法重载的描述,以下选项中哪些是正确的?多选( ) A、方法名必须一致 B、返回值类型必须不同 C、参数个数必须一致 D、参数的个数或类型不一致 2、下列是方法定义的形参表,定义形式正确的是( )。 A、int num1,num2 B、num1,num2

C、int num1,int num2 D、int num1;int num2 3、Java中主方法头部定义的正确格式是( )。

A、public static void main(); B、public static void main(String args[ ]) C、public static void main(int args[]) D、static public int main(String args[]) 4、一个方法的头部是“public static int min(int num1,int num2)”,下列调用格式错误的是( )。

A、min(5.0,10) B、min(5+2,10) C、min(‘5’,10) D、min(‘5’,min(‘6’,10)) 5、若有以下调用语句,则正确的fun()方法头部是( )。

public static void main(String args[]) { float x; int a; …….

fun(x,a); } A、void fun(int m,float x) B、void fun(float a, int x) C、void fun(int m,float x[]) D、void fun(int x,float a) 6、有如下函数调用语句“func(rec1,rec2+rec3,(rec4,rec5));”,该语句中,含有的实参个数是( )。

A、3 B、4 C、5 D、有语法错误 7、Java中,在调用重载方法时,原则是( )。

A、只要方法名一致,就可以调用

B、必须方法名一致,参数的个数、类型、顺序一致 C、只要方法名一致,与参数的个数、类型、顺序一致 D、与方法的返回值有关

8、Java参数的传递方式有( )。

A、按值传递 B、按地址传递 C、按值或地址传递 D、以上都不对 9、下列方法重载,正确的是( )。

A、int fun(int a,float b) B、float fun(int a,float b){} float fun(int a,float b){} float fun(int x,float y){}

C、float fun(float a) D、float fun1(int a,float b){} float fun(float a,float b){} float fun2(int a,float b){} 10、关于方法的说法,下面错误的是( )。

A、Java中的方法,参数传递时是值传递调用,而不是地址传递 B、方法体是对方法的实现,包括变量声明和Java的合法语句

C、如果程序定义了一个或多个构造方法,在创建对象时,也可以用系统自动生成空的构造方

法。

D、类的私有方法不能被其子类直接访问

11、如果一个方法没有return语句,那么( )。

A、编译时会产生语法错误 B、它一定是void方法

C、 它一定是int、double、float方法 D、类的私有方法不能被其子类直接访问 12、关于方法以下说法正确的是( )。

A、Java中每个方法是一个独立的程序;

B、Java类中一个方法一旦被定义,程序运行时其代码一定被执行; C、某个方法若未被任何其它方法调用,则其中的代码一定不会被执行;

D、 Java程序中main方法一定不会被其它方法调用,所以main方法一定不会被执行。 13、关于方法的返回值和return语句,以下说法正确的是( )。

A、Java中每个方法都必须有返回值; B、一个方法可以返回多个返回值;

C、有返回值的方法中必须有return语句。

D、返回值类型为void的方法不能有return语句 14、关于方法的参数以下说法正确的是( )。

A、Java中每个方法都必须有参数;

B、一个方法可以有多个形参变量也可以没有; C、有返回值的方法必须有参数。

D、型参变量是int型方法,调用语句中所给的实参数据也必是int型的。

15、若有方法定义:staitc int fun(int num){return 2*num;} 以下调用语句正确的是( )。

A、System.out.println(fun(‘A’+‘B’)); B、int a=fun(2.3) ; C、fun(2 , 3);

D、if(fun(4)) System.out.println(“正确”); 16、以下程序运行结果是( )。

public class Test {

public static void main(String[] args) { int a=1,b[]={2}; add(a); add(b);

System.out.println(a+\ }

static int add(int x){ x++;

return x; }

static void add(int[] x){ x[0]++; }

}

A、 1,2 B、 2,2 C、 1,3 D、2,3 17、关于重载,以下说法正确的是( )。

A、重载方法的返回值类型必须相同; B、重载方法的方法名必须不同; C、重载方法的参数个数必须不同。 D、重载方法的形参表必须不同。

18、以下方法用以返回传入的两个正整数的最大公约数,该代码段编译运行会出错吗?出现的错误是什么?( )

1. static int add(int x,int y){

2. if(x>y){

3. int z = x; x=y; y=z; 4. }

5. int i;

6. for(i=x-1;i>0;i--){

7. if(x%i==0&&y%i==0)return i; 8. } 9.}

A、第1行出错,两个同为int的形参变量定义应该是:int x,y; B、第1行出错,方法没有返回int值; C、第2行出错,x和y未赋值; D、方法不出错

19、下列方法定义中,正确的是( )。

A、int x( int a,b ) { int w; w=a-b; }

B、double x( int a,int b) { return (a-b); }

C、double x( a,b ) { return a-b; }

D、int x( double a , double b) { return b; } 20、以下max()方法要从传入的两个数据中找出较大的数据返回,则正确定义该方法的代码是( )。

A、 int max(int a,int b){ B、 int max(int a,int b){

if(a>b) if(a>b) ; return a ; return a ;

else if(b>a) else return b ; return b ; } } C、 int max(int a, b){ D、 int max(int a,int b){

if(a>b) if(a>b) return a ; return a ; else return b ; return b ; } }

三、 修改程序中的错误

1、 以下方法是将输入的一个整数反序打印出来,例如,输入”1234”,则输出“4321”;输入“-1234”,

则输出“-4321”,修改下面方法中的错误。 static void printopp(long n){ int i=0; if(n==0) return 0; else while(n!=0){ if(n>0 || i==0) System.out.print(n); else

System.out.print(-n); i=1; n = n;

}

} }

2、 以下程序的功能是使用递归方法求斐波那契数列前20项。修改下面程序中的错误。

public class Fibonacci{ //使用递归方法 private static int getFibo(int i){ if(i==1 || i==2) Return 1; else Return getFibo(i+1) + getFibo(i+2); } Public static void main(String args[]){