java经典编程练习题_Java经典练习题_Day05

本文介绍了Java编程中的方法定义注意事项,包括方法不能在方法内部定义、参数列表错误、返回值匹配等问题。讲解了方法的重载概念,指出重载与返回值类型和修饰符无关,主要看参数列表。接着对比了递归与循环的异同,强调递归在解决问题上的灵活性。最后提供了一系列编程练习,包括加法、因子打印、数位计算、质数判断和距离计算等实际编程任务,旨在提升读者的Java编程能力。
摘要由CSDN通过智能技术生成

二、 简答题

1、简述方法在定义过程中需要注意的问题

1.方法不能定义在另一个方法里面

2.写错方法名字

3.写错参数列表

4.方法返回值是void,方法中可以省略return不写

return 下面不能写代码

5.方法返回值类型和return后面的数据类型必须匹配

6.方法不能重复定义

7.调用方法时,返回值是void,不能写在输出语句中(返回值为空,无法输出)

2、简述方法的重载

就是方法名相同,方法参数的个数和类型不同,通过个数和类型的不同来区分不同的函数;

方法的重载跟返回值类型和修饰符无关,Java的重载是发生在本类中的,重载的条件实在本类中有多个方法名相同,

但参数列表不同(可能是,参数个数不同参数类型不同)跟返回值无关;

3、请对递归与循环进行比较

相同:

递归与循环都是解决 重复操作的机制

不同:

就算法效率而言,递归算法的实现往往要比迭代算法消耗更多的时间(调用和返回均需要额外的时间)

与存储空间(用来保存不同次调用情况下变量的当前值得栈空间)也限制了递归的深度。

每个迭代算法原则上总可以转换成与它等价的递归算法,反之不然。

递归的层次是可以控制的,而循嵌套的层次只能是固定的,因此递归是比循环更灵活的重复操作机制。

递归算法解题通常有三个步骤:

1.分析问题 寻找递归 找出最大规模问题 与最小规模问题的关系 这样通过递归使问题的规模逐渐变小

2.设置边界、控制递归、找出停止条件 也就是说算法可解的最小规模问题

3.设计函数、确定参数 和其他算法模块一样设计函数中的操作及相关操作

三、 编程题

1、写一个函数add,接收两个整数作为参数,返回这两个整数的和。

importjava.util.Scanner;public classadd1 {public static voidmain(String[] args) {

System.out.println("请输入两个整数:");

Scanner s= newScanner(System.in);int a =s.nextInt();int b =s.nextInt();

System.out.println("两个数的和:"+add(a, b));

}public static int add(int a, intb) {int sum = a +b;returnsum;

}

}

2、写一个函数接收一个整数,打印这个整数的所有因子。

importjava.util.Scanner;public classtest {public static voidmain(String[] args) {

System.out.println("请输入一个整数:");

Scanner s= newScanner(System.in);int a =s.nextInt();

f(a);

}public static void f(ints) {int a =s;for(int i=1; i<=a; i++) {if(a % i == 0)

System.out.println(i);

}

}

}

3、写一个函数,接收一个整数n,输出1+2+3+...+n的和。

public classsum {public static voidmain(String[] args) {

System.out.println(add(3));

}public static int add(intn) {intsum;if(n==1) {

sum= 1;returnsum;

}

sum= n + add(n - 1);returnsum;

}

}

4、写一个函数,接收一个正整数,输出这个正整数是一个几位数。

importjava.util.Scanner;public classtest2 {public static voidmain(String[] args) {

System.out.println("请输入一个整数:");

Scanner s= newScanner(System.in);int n =s.nextInt();

System.out.println(f(n));

}public static int f(intn) {int count = 1;while(true) {if(n / 10 != 0) {

n= n / 10;

count++;

}else

break;

}returncount;

}

}

5、写一个函数,接收一个整数,判断这个整数是否是一个质数。

packages1;importjava.util.Scanner;public classtest3 {public static voidmain(String[] args) {

System.out.println("请输入一个整数:");

Scanner s= newScanner(System.in);int n =s.nextInt();

f(n);

}public static void f(intn) {for(int i=2; i<=n; i++) {if(n % i != 0) {

System.out.println("是质数");break;

}else{

System.out.println("不是质数");break;

}

}

}

}

6、写一个函数计算两点(x1,x2)之间的距离。

importjava.util.Scanner;public classtest4 {public static voidmain(String[] args) {

System.out.println("请输入两个坐标:");

Scanner s= newScanner(System.in);double x1 =s.nextInt();double x2 =s.nextInt();

System.out.println(f(x1,x2));

}public static double f(double x1, doublex2) {double sum = x2 -x1;returnsum;

}

}

7、求abc 和xyz。

已知两个完全平方三位数abc 和xyz,其中a、 b、 c、 x、 y、 z 未必是不同的,而ax、 by、 cz 是三个完全平方数。

看不懂题目

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值