如果您已经学会了Java的基础知识,现在是解决一些练习题的时候了。练习和解决问题将帮助你掌握Java编程语言,使你的技能更上一层楼。
在这篇文章中,我把一些Java编码问题放在一起,你可以用来练习。我还提供了Java代码解决方案和相应的输出,供您参考。
试着自己解决这些问题,让自己的Java水平得到提高。让我们直接进入。

1.检查给定数字是偶数还是奇数的Java程序
import java.util.Scanner;
class Main {
public static void main(String[] args) {
System.out.println("Enter a number: ");
Scanner sc = new Scanner(System.in);
int number =Integer.parseInt(sc.nextLine());
int x = number%2;
if(x==0){
System.out.println("The number is Even");
}
else{
System.out.println("The number is Odd");
}
}
}
输出。


2.将摄氏度的温度转换为华氏温度的Java程序
import java.util.Scanner;
class Main {
public static void main(String[] args) {
System.out.println("Enter temperature in Centigrade: ");
Scanner sc = new Scanner(System.in);
int c =Integer.parseInt(sc.nextLine());
float f = ((9*c)/5)+32;
System.out.println("Temperature in Fahrenheit is: "+f);
}
}
输出。

3.用Java程序查找一个三角形的面积,该三角形的三条边已给定。
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
System.out.println("Enter the 1st side:");
int a= sc.nextInt();
System.out.println("Enter the 2nd side:");
int b= sc.nextInt();
System.out.println("Enter the 3rd side:");
int c= sc.nextInt();
if((a+b)>c && (a+c)>b && (b+c)>a)
{
double s=(a+b+c)/2.0;
double area=Math.sqrt(s*(s-a)*(s-b)*(s-c));
System.out.println("Area of Triangle is: " + area);
}
else
System.out.println("Area of the triangle does not exist");
}
}
输出。

4.找出一组整数的平均值的Java程序
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter the count of numbers: ");
float count = Integer.parseInt(sc.nextLine());
int i = 0;
float sum = 0;
for(i=0;i<count;i++){
System.out.println("Enter an integer: ");
int x = Integer.parseInt(sc.nextLine());
sum = sum + x;
}
float avg = sum/count;
System.out.println("The average is: "+avg);
}
}
输出。

5.寻找一组实数的乘积的Java程序
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter the number of real numbers: ");
float count = Integer.parseInt(sc.nextLine());
int i = 0;
float product = 1.0f;
for(i=0;i<count;i++){
System.out.println("Enter a real number: ");
float x = Float.parseFloat(sc.nextLine());
product = product * x;
}
System.out.println("The product of the numbers is: "+product);
}
}
输出。

6.用Java程序求给定半径的圆的周长和面积
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Input the radius of the circle: ");
double radius = Float.parseFloat(sc.nextLine());
double c = 2 * Math.PI * radius;
double area = Math.PI * radius * radius;
System.out.println("The circumference of the circle is: "+c);
System.out.println("The area of the circle is: "+area);
}
}

7.检查给定的整数是否是5的倍数的Java程序
import java.util.Scanner;
class Main {
public static void main(String[] args) {
System.out.println("Enter an integer: ");
Scanner sc = new Scanner(System.in);
int number =Integer.parseInt(sc.nextLine());
if(number%5==0){
System.out.println(number+" is a multiple of 5");
}
else{
System.out.println(number+" is not a multiple of 5");
}
}
}
输出。


8.检查给定的整数是否是5和7的倍数的Java程序
import java.util.Scanner;
class Main {
public static void main(String[] args) {
System.out.println("Enter an integer: ");
Scanner sc = new Scanner(System.in);
int number =Integer.parseInt(sc.nextLine());
if((number%5==0)&&(number%7==0)){
System.out.println(number+" is a multiple of both 5 and 7");
}
else{
System.out.println(number+" is not a multiple of both 5 and 7");
}
}
}
输出。


9.使用while循环找到5个数字的平均值的Java程序
import java.util.Scanner;
class Main {
public static void main(String[] args) {
int count = 0;
int sum = 0;
Scanner sc = new Scanner(System.in);
while(count<5){
System.out.println("Enter an integer: ");
int number =Integer.parseInt(sc.nextLine());
sum = sum+number;
count++;
}
double avg = ((double) sum) / 5.0;
System.out.println("Average is :"+avg);
}
}

10.用Java程序以反向方式显示给定的整数
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter an integer: ");
int number =Integer.parseInt(sc.nextLine());
int rev = 0;
while(number!=0){
int digit = number%10;
rev = (rev*10)+digit;
number = number/10;
}
System.out.println(rev);
}
}
输出。

11.用Java程序找出N个数字的几何平均数
import java.util.Scanner;
class Main {
public static void main(String[] args) {
int c = 0;
double p = 1.0;
Scanner sc = new Scanner(System.in);
System.out.println("Enter the number of values: ");
int count =Integer.parseInt(sc.nextLine());
while((c<count)){
System.out.println("Enter a real number: ");
double x =Double.parseDouble(sc.nextLine());
c = c+1;
p = p * x;
}
double gm = Math.pow(p,1.0/count);
System.out.println("The geometric mean is: "+gm);
}
}
输出。

12.使用while循环查找一个整数的数字之和的Java程序
import java.util.Scanner;
class Main {
public static void main(String[] args) {
int sum = 0;
Scanner sc = new Scanner(System.in);
System.out.println("Enter an integer: ");
int number =Integer.parseInt(sc.nextLine());
while(number!=0){
int digit = number%10;
sum = sum+digit;
number = number/10;
}
System.out.println(("Sum of digits is: "+ sum));
}
}
输出结果。

13.显示10-50范围内3的所有倍数的Java程序
import java.util.Scanner;
class Main {
public static void main(String[] args) {
for(int i=10;i<50;i++){
if(i%3==0)
System.out.println(i);
}
}
}
输出。

14.显示100-150范围内所有数字之和为偶数的整数的Java程序
import java.util.Scanner;
class Main {
public static void main(String[] args) {
for(int i=100;i<150;i++){
int num = i;
int sum = 0;
while(num!=0){
int digit = num%10;
sum = sum + digit;
num = num/10;
}
if(sum%2==0){
System.out.println(i);
}
}
}
}
输出。

15.检查给定的整数是否为素数的Java程序
import java.util.Scanner;
class Main {
public static void main(String[] args) {
System.out.println("Enter an integer greater than 1: ");
Scanner sc = new Scanner(System.in);
int number =Integer.parseInt(sc.nextLine());
int isprime = 1;
for(int i=2;i<(number/2);i++){
if(number%i==0){
isprime = 0;
break;
}
}
if(isprime==1){
System.out.println(number+" is a prime number");
}
else{
System.out.println(number+" is not a prime number");
}
}
}
输出。


16.用Java程序生成从1到N的质数
import java.util.Scanner;
class Main {
public static void main(String[] args) {
System.out.println("Enter the range: ");
Scanner sc = new Scanner(System.in);
int number =Integer.parseInt(sc.nextLine());
for (int num = 2; num <= number; num++)
{
boolean isPrime = true;
for (int i=2; i <= num/2; i++)
{
if ( num % i == 0)
{
isPrime = false;
break;
}
}
if ( isPrime == true )
System.out.println(num);
}
}
}
输出。

17.寻找二次方程的根的Java程序
import java.util.Scanner;
class Main {
public static void main(String[] args) {
System.out.println("Enter the first coefficient: ");
Scanner sc = new Scanner(System.in);
double a = Integer.parseInt(sc.nextLine());
System.out.println("Enter the second coefficient: ");
double b = Integer.parseInt(sc.nextLine());
System.out.println("Enter the third coefficient: ");
double c = Integer.parseInt(sc.nextLine());
if(a!=0.0){
double d = (b*b)-(4*a*c);
if (d==0.0){
System.out.println("The roots are real and equal.");
double r = -b/(2*a);
System.out.println("The roots are "+ r+"and"+ r);
}else if(d>0.0){
System.out.println("The roots are real and distinct.");
double r1 = (-b+(Math.sqrt(d)))/(2*a);
double r2 = (-b-(Math.sqrt(d)))/(2*a);
System.out.println("The root1 is: "+ r1);
System.out.println("The root2 is: "+ r2);
}else{
System.out.println("The roots are imaginary.");
double rp = -b/(2*a);
double ip = Math.sqrt(-d)/(2*a);
System.out.println("The root1 is: "+ rp+ "+ i"+ip);
System.out.println("The root2 is: "+ rp+ "- i"+ip);
}
}else{
System.out.println("Not a quadratic equation.");
}
}
}
输出。

18.使用递归法打印从给定数字n到0的数字的Java程序
class Main {
public static void main(String[] args) {
print_till_zero(8);
}
public static void print_till_zero(int n){
if(n==0)
return;
System.out.println(n);
n=n-1;
print_till_zero(n);
}
}
输出。

19.用递归法寻找一个数字的阶乘的Java程序
import java.util.Scanner;
class Main {
public static void main(String[] args) {
System.out.println("Enter an integer: ");
Scanner sc = new Scanner(System.in);
int a = Integer.parseInt(sc.nextLine());
int result = fact(a);
System.out.println("The factorial of"+ a + " is: "+ result);
}
public static int fact(int n){
int f;
if(n==1)
f=1;
else
f = n * fact(n-1);
return f;
}
}
输出。

20.使用数组显示n个数字之和的Java程序
import java.util.Scanner;
class Main {
public static void main(String[] args) {
System.out.println("How many numbers: ");
Scanner sc = new Scanner(System.in);
int num = Integer.parseInt(sc.nextLine());
int[] numbers = new int[num];
int sum=0;
for(int n=0;n<num;n++){
System.out.println("Enter number: ");
int x = Integer.parseInt(sc.nextLine());
numbers[n] = x;
}
for(int i = 0; i < numbers.length; i++) {
sum = sum + numbers[i];
}
System.out.println("Sum of all the elements of the array: " + sum);
}
}

21.实现线性搜索的Java程序
import java.util.Scanner;
class Main {
public static void main(String[] args) {
int[] numbers = {4,2,7,1,8,3,6};
int flag = 0;
System.out.println("Enter the number to be found out: ");
Scanner sc = new Scanner(System.in);
int x = Integer.parseInt(sc.nextLine());
for(int i=0;i<numbers.length;i++){
if (x==numbers[i]){
System.out.println("Successful search, the element is found at position "+ i);
flag = 1;
break;
}
}
if(flag==0){
System.out.println("Oops! Search unsuccessful");
}
}
}
输出。


22.实现二进制搜索的Java程序
import java.util.Scanner;
class Main {
public static void main(String[] args) {
int[] numbers = {1,4,6,7,12,17,25}; //binary search requires sorted numbers
System.out.println("Enter the number to be found out: ");
Scanner sc = new Scanner(System.in);
int x = Integer.parseInt(sc.nextLine());
int result = binarySearch(numbers, 0, numbers.length-1, x);
if (result != -1)
System.out.println("Search successful, element found at position "+result);
else
System.out.println("The given element is not present in the array");
}
public static int binarySearch(int[] numbers,int low,int high,int x){
if (high >= low){
int mid = low + (high - low)/2;
if (numbers[mid] == x)
return mid;
else if (numbers[mid] > x)
return binarySearch(numbers, low, mid-1, x);
else
return binarySearch(numbers, mid+1, high, x);
}else{
return -1;
}
}
}
输出。


23.查找数组中奇数数量的Java程序
class Main {
public static void main(String[] args) {
int[] numbers = {8,3,1,6,2,4,5,9};
int count = 0;
for(int i=0;i<numbers.length;i++){
if(numbers[i]%2!=0)
count++;
}
System.out.println("The number of odd numbers in the list are: "+count);
}
}
输出。

24.不使用内置函数查找数组中最大数字的Java程序
class Main {
public static void main(String[] args) {
int[] numbers = {3,8,1,7,2,9,5,4};
int largest = numbers[0];
int position = 0;
for(int i=0;i<numbers.length;i++){
if(numbers[i]>largest){
largest = numbers[i];
position = i;
}
}
System.out.println("The largest element is "+largest+" which is found at position "+position);
}
}
输出。

25.在数组中任何位置插入一个数字的Java程序
import java.util.Scanner;
import java.util.Arrays;
class Main {
public static void main(String[] args) {
int[] numbers = {3,4,1,9,6,2,8};
System.out.println(Arrays.toString(numbers));
System.out.println("Enter the number to be inserted: ");
Scanner sc = new Scanner(System.in);
int x = Integer.parseInt(sc.nextLine());
System.out.println("Enter the position: ");
int y = Integer.parseInt(sc.nextLine());
for(int i=numbers.length-1;i>y;i--){
numbers[i] = numbers[i-1];
}
numbers[y] = x;
System.out.println(Arrays.toString(numbers));
}
}
输出。

26.通过索引从数组中删除一个元素的Java程序
import java.util.Scanner;
import java.util.Arrays;
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
ArrayList<Integer> numbers = new ArrayList<Integer>(5);
numbers.add(3);
numbers.add(7);
numbers.add(1);
numbers.add(4);
System.out.println(numbers);
System.out.println("Enter the position of the element to be deleted: ");
Scanner sc = new Scanner(System.in);
int x = Integer.parseInt(sc.nextLine());
numbers.remove(x);
System.out.println(numbers);
}
}
输出。

27.检查一个字符串是否为复数的Java程序
import java.util.Scanner;
class Main {
public static void main(String[] args) {
String a, b = "";
Scanner s = new Scanner(System.in);
System.out.print("Enter the string you want to check: ");
a = s.nextLine();
int n = a.length();
for(int i = n - 1; i >= 0; i--){
b = b + a.charAt(i);
}
if(a.equalsIgnoreCase(b)){
System.out.println("The string is palindrome.");
}else{
System.out.println("The string is not palindrome.");
}
}
}
输出。


28.实现矩阵加法的Java程序
class Main {
public static void main(String[] args) {
//creating two matrices
int a[][]={{8,5,1},{9,3,2},{4,6,3}};
int b[][]={{8,5,3},{9,5,7},{9,4,1}};
//matrix to store the sum of two matrices
int c[][]=new int[3][3]; //3 rows and 3 columns
//adding 2 matrices
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
c[i][j]=a[i][j]+b[i][j];
System.out.print(c[i][j]+" ");
}
System.out.print("\n");
}
}
}
输出。

29.实现矩阵乘法的Java程序
class Main {
public static void main(String[] args) {
//creating two matrices
int a[][]={{8,5,1},{9,3,2},{4,6,3}};
int b[][]={{8,5,3},{9,5,7},{9,4,1}};
//matrix to store the product of two matrices
int c[][]=new int[3][3];
//multiplying 2 matrices
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
c[i][j]=0;
for(int k=0;k<3;k++){
c[i][j]+=a[i][k]*b[k][j];
}
System.out.print(c[i][j]+" ");
}
System.out.print("\n");
}
}
}
输出。

30.检查闰年的Java程序
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter the year you want to check: ");
int year = Integer.parseInt(sc.nextLine());
boolean leap = false;
// if the year is divided by 4
if (year % 4 == 0) {
// if the year is century
if (year % 100 == 0) {
// if year is divided by 400, then it is a leap year
if (year % 400 == 0)
leap = true;
else
leap = false;
}
// if the year is not century
else
leap = true;
}
else
leap = false;
if (leap)
System.out.println(year + " is a leap year.");
else
System.out.println(year + " is not a leap year.");
}
}
输出。


31.用递归法查找斐波那契数列中第N项的Java程序
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner cs=new Scanner(System.in);
int n;
System.out.print("Enter the position(N): ");
n=cs.nextInt();
System.out.print("Nth Fibonacci Number is: "+NthFibonacciNumber(n));
}
static int NthFibonacciNumber(int n){
if(n==1)
return 0;
else if(n==2)
return 1;
else
return NthFibonacciNumber(n-1)+NthFibonacciNumber(n-2);
}
}
输出。

32.使用迭代法打印斐波那契数列的Java程序
import java.util.Scanner;
class Main {
public static void main(String[] args) {
int n1=0,n2=1;
Scanner cs=new Scanner(System.in);
System.out.print("Enter the number of terms in the sequence: ");
int count = cs.nextInt();
int n3,i;
System.out.print(n1+" "+n2);//printing 0 and 1
//printing from 2 because 0 and 1 are already printed
for(i=2;i<count;++i){
n3=n1+n2;
System.out.print(" "+n3);
n1=n2;
n2=n3;
}
}
}
输出。

33.用Java程序实现一个计算器的基本操作
import java.util.Scanner;
class Main {
public static void main(String[] args) {
int firstNumber, secondNumber, opt, add, sub, mul;
double div;
Scanner s = new Scanner(System.in);
System.out.print("Enter first number: ");
firstNumber = s.nextInt();
System.out.print("Enter second number: ");
secondNumber = s.nextInt();
while(true){
System.out.println("Enter 1 for addition");
System.out.println("Enter 2 for subtraction");
System.out.println("Enter 3 for multiplication");
System.out.println("Enter 4 for division");
System.out.println("Enter 5 to Exit");
int option = s.nextInt();
switch(option){
case 1:
add = firstNumber + secondNumber;
System.out.println("Result:"+add);
break;
case 2:
sub = firstNumber - secondNumber;
System.out.println("Result:"+sub);
break;
case 3:
mul = firstNumber * secondNumber;
System.out.println("Result:"+mul);
break;
case 4:
div = (double)firstNumber / secondNumber;
System.out.println("Result:"+div);
break;
case 5:
System.exit(0);
}
}
}
}
输出。
