华南农业大学2015农科Java上机实验 下载本文

实验1 创建、编译和运行Java程序

17268 计算两个整数的和

从键盘输入两个整数,计算并输出两个整数的和。 importjava.util.Scanner; public class Main {

public static void main(String[] args) { inta,b;

Scanner input = new Scanner(System.in); a=input.nextInt(); b=input.nextInt(); int c = a + b;

System.out.println(c); } }

17269 输出两个整数中的较大的值

从键盘输入两个整数,判断并输出两个整数中较大的值。 importjava.util.Scanner; public class Main {

public static void main(String[] args) { inta,b;

Scanner input = new Scanner(System.in); a=input.nextInt(); b=input.nextInt(); if(a>b)

System.out.println(a); else

System.out.println(b); } }

实验2 基本数据类型、运算和表达式

18135 在显示屏上显示指定字符

要求编写一个程序,在显示屏上显示如下内容。注:类名必须为Main(大写M) C:\\ABC.TXT is \

public class Main {

public static void main(String[] args) {

System.out.print(\ }}

18136 计算圆的面积

由键盘输入圆的半径,计算并输出圆的面积,结果保留2位小数。注:类名必须为Main(大写M)

importjava.util.Scanner;

importjava.text.DecimalFormat; public class Main {

public static void main(String[] args) { doublea,b,c;

Scanner input = new Scanner(System.in); a = input.nextDouble(); b = 3.14159; c = a*a*b;

System.out.println(new DecimalFormat(\ } }

18138 输出三位整数的各位数字

从键盘输入一个3位的整数,要求按照:个位、十位和百位的顺序输出三个数字。输出时,每个数字占单独的一行。注:类名必须为Main(M大写)

importjava.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner input = new Scanner(System.in); intcr = input.nextInt(); int b, c, d;

b = cr / 100; c = cr /10 ; d = cr % 10;

System.out.println(\System.out.println(\System.out.println(\ } }

实验3 选择结构程序设计

18139 判断点是否在圆上

由键盘输入一个点的坐标, 要求编程判断这个点是否在单位圆上,点在圆上输出Y, 不在圆上输出N。使用小数点后3位精度进行判断。注:类名必须用Main(大写M) importjava.util.Scanner; public class Main {

public static void main(String[] args) {

Scanner input = new Scanner(System.in); double x = input.nextDouble(); double y = input.nextDouble();

double distance = Math.sqrt(x * x + y * y); if (Math.abs(distance - 1.0)< 0.001){ System.out.println(\}else {

System.out.println(\ } } }

18140 求数的位数

由键盘输入一个不多于9位的正整数,判断并输出它是几位数。注:类名必须是Main(大写M)

importjava.util.Scanner; public class Main {

public static void main(String[] args) {

Scanner input = new Scanner(System.in); inta,place;

a = input.nextInt(); if(a>99999999){ place=9;

}else if(a>9999999){ place=8;

}else if(a>999999){ place=7;

}else if(a>99999){ place=6;

}else if(a>9999){ place=5;

}else if(a>999){ place=4;

}else if(a>99){ place=3;

}else if(a>9){ place=2; }else{ place=1; }

System.out.println(place); } }

18141 数的排序

由键盘输入三个整数a、b、c,按从小到大的顺序输出这三个数。注:类名必须是Main(M大写)

importjava.util.Scanner; public class Main {

public static void main(String[] args) { inta,b,c,temp;

Scanner input = new Scanner(System.in); a = input.nextInt(); b = input.nextInt(); c = input.nextInt(); if(a>b){ temp = a;

a = b; b = temp; }if(a>c){ temp = a;

a = c; c = temp; }if(b>c){ temp = b;

b = c; c = temp; }

System.out.println(a + \ } }

18142 数的整除

由键盘输入5个整数,逐个判断它们能否被27整除,能的输出“YES”,不能的输出“NO”(注意,输出时,一个判断结果占一行,5个数的判断共占5行)。 注:类名必须是Main(大写M)

importjava.util.Scanner; public class Main {

public static void main(String[] args) { inta,b,c,d,e;

Scanner input = new Scanner(System.in); a = input.nextInt(); b = input.nextInt(); c = input.nextInt(); d = input.nextInt(); e = input.nextInt(); if(a % 27 == 0){

System.out.println(\}else {

System.out.println(\}if(b % 27 == 0){

System.out.println(\}else{

System.out.println(\}if(c % 27 == 0){

System.out.println(\}else{

System.out.println(\}if(d % 27 == 0){

System.out.println(\}else{

System.out.println(\}if(e % 27 == 0){

System.out.println(\}else{

System.out.println(\ } } }

18143 正负奇偶判断

由键盘输入非零整数x,判断该数正负,正数输出positive,负数输出negative,接着判断该数的奇偶性,奇数输出odd,偶数输出even。 注:类名必须是Main(大写M)

importjava.util.Scanner; public class Main {

public static void main(String[] args) { int x;

Scanner input = new Scanner(System.in); x = input.nextInt(); if(x>0){

System.out.println(\}else {

System.out.println(\}if(x % 2 == 0){

System.out.println(\}else{

System.out.println(\ } } }

18144 简单四则运算器

下面程序是实现一个简单的四则运算器(输出结果保留2位小数)。输入时依次输入:第1个实数、运算符、第2个实数,程序根据运算符进行运算并输出结果。 在程序中的空白处填写恰当的代码,运行通过后在评判系统中提交。 import java.util.Scanner; public class Main {

public static void main(String[] args) { float a, b, result; char operator;

Scanner input = new Scanner(System.in); a = input.nextFloat();

operator = input.next().charAt(0); b = input.nextFloat(); switch (operator) {

case '+': result=a + b;break; case '-': result=a - b;break;

case '*': result=a * b;break; case '/': result=a / b;break; default:

System.out.println(\ return; }

System.out.printf(\ } }

实验4 循环结构程序设计

18145 计算阶乘

输入正整数n,计算n!,结果用长整型数表示(注n!=1*2*3*...*n) 注:类名必须是Main(大写M)

importjava.util.Scanner; public class Main {

public static void main(String[] args) {

Scanner input= new Scanner(System.in); intnum = 1; int x;

x = input.nextInt(); for(int i = x;i> 0;i--){ num = num * i; }

System.out.println(num); } }

18146 计算数列和

有数列1,3,5,7,9,11,…… ,现要求由键盘输入n,计算输出该数列的前n项和。 注:类名必须是Main(大写M)

importjava.util.Scanner; public class Main {

public static void main(String[] args) {

Scanner input= new Scanner(System.in); int sum = 0; int n;

n = input.nextInt(); for(int i = 1;i <= n;i++){ sum = sum + i * 2 - 1; }

System.out.println(sum); } }

18147 求最大公约数

由键盘输入两个正整数m、n(m、n用长整数表示),计算它们的最大公约数。 注:类名必须是Main(大写M

importjava.util.Scanner; public class Main {

public static void main(String[] args) {

Scanner input= new Scanner(System.in); int m = input.nextInt(); int n = input.nextInt(); int max , min; if(m > n){ max = m; min = n; }else{ min = m; max = n; } intgcd;

for(gcd= min;gcd>= 1;gcd--){

if(max % gcd == 0 && min % gcd == 0){ break; } }

System.out.println(gcd); } }

18148 输出最小值

从键盘输入十个整数,输出最小值。 注:类名必须是Main(大写M)

importjava.util.Scanner; public class Main {

public static void main(String[] args) {

Scanner input = new Scanner(System.in); int[] a = new int[10];

for(int i = 0;i

int min = a[0];

for(int i = 0;i

System.out.print(min); } }

18149 求素数

输出2到200之间(包括2、200)的所有素数。 注:要求1行1个素数,按由小到大的顺序输出。 提示:采用双重循环,外层循环产生2到200之间的数,内层循环对数进行判断是否为素数。 注:类名必须是Main(大写M)

importjava.util.Scanner; public class Main {

public static void main(String[] args) {

Scanner input= new Scanner(System.in); int n = 0;

for (int i = 2;i < 200;i++){

intsquareRoot = (int) Math.sqrt(i); int k;

for (k = 2;k <= squareRoot;k++){ if (i % k == 0){ break;

} }

if (k >squareRoot){ n++;

System.out.printf(\

System.out.println(); } } }}

18150 打印菱形

由键盘输入正数n,要求输出2*n+1行的菱形图案。要求菱形顶部无空行,菱形左边紧靠屏幕左侧。

注:类名必须是Main(大写M)

importjava.util.Scanner; public class Main {

public static void main(String[] args) {

Scanner input = new Scanner(System.in); inti,j,m,k,n;

n = input.nextInt(); for(i = 1;i<=n+1;i++){ for(j = 1;j<=n-i+1;j++){ System.out.print(\ }

for(j = 1;j<=2*i-1;j++){ System.out.print(\ }

System.out.println(); }

for(m = 1;m<=n;m++){ for(k = 1;k<=m;k++){ System.out.print(\ }

for(k = 1;k<=2*(n-m)+1;k++){ System.out.print(\ }

System.out.println(); } } }

实验5 数组与字符串 18152 数组的逆序输出

写一个程序,首先从键盘输入一个正整数n表示个数,然后输入n个整数,存放到数组中,最后把这些整数逆序输出。

输出时,两个整数之间用一个空格隔开。注:类名必须是Main(大写M) importjava.util.Scanner; public class Main {

public static void main(String[] args) {

Scanner input = new Scanner(System.in); int n = input.nextInt(); int []a;

a = new int[n];

for(int i = 0;i

for(int i = n-1;i>=0;i--){ System.out.print(a[i]+\ } } }

18153 冒泡排序

编写一个程序,首先从键盘输入一个正整数n表示个数,然后输入n个整数,存放到数组中。 使用冒泡排序算法对该数组进行从大到小的排序,并输出排序之后的结果。输出时,两个整数之间用一个空格隔开。

注:类名必须是Main(大写M)

importjava.util.Scanner; public class Main {

public static void main(String[] args) {

Scanner input = new Scanner(System.in); int length = input.nextInt(); int[]array = new int[length];

for(int i = 0;i

for(int i = 0;i

System.out.print(v + \ ; } }}

18154 字符串中数字字符个数统计

编写程序,从键盘输入一行字符串,统计其中数字字符出现的次数。 说明:数字字符是指0-9这10个字符。输入的字符串可能包含空格。 注:类名必须是Main(大写M) importjava.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner input = new Scanner(System.in); String[] list = new String[3]; int sum = 0;

for(int i = 0;i<3;i++){ list[i]=input.next(); }

for(int i = 0;i<3;i++){

for(int k = 0;k='0'&&ch<='9') sum = sum+1; } }

System.out.print(sum); } }

18155 输出矩阵

编写程序,首先从键盘输入两个正整数m和n。m表示二维整型数组的行数,n代表二维整型数组的列数。

然后输入整个二维数组,并输出它的转置数组。注:类名必须是Main(大写M) importjava.util.Scanner; public class Main {

public static void main(String[] args) {

Scanner input = new Scanner(System.in); intm,n;

m = input.nextInt(); n = input.nextInt(); int[][]list;

list = new int[m][n];

for(int i = 0;i

for(int k = 0;k

for(int k = 0;k

for(int i = 0;i

System.out.println(); } }}

18156 二维数组的最大值

编写程序,首先从键盘输入两个正整数m和n。m表示二维整型数组的行数,n代表二维整型数组的列数。

然后输入整个二维数组,然后找出数组中的最大值,输出该值及其行下标和列下标。 提示:如果最大值有多个,则输出第1个。

importjava.util.Scanner; public class Main {

public static void main(String[] args) {

Scanner input = new Scanner(System.in); intm,n;

m = input.nextInt(); n = input.nextInt(); int[][]array = new int[m][n]; int max = array[0][0]; int x = 0,y=0;

for (int i = 0;i max) { max = array[i][j];

x = i;

y = j; } } }

System.out.println(\ +\ }}

18157 投票程序

现在有三个候选人竞选班长,他们的姓名分别是“Alan”、“Mike”和“Tom”。

编写一个程序。首先输入一个整数n代表总票数,然后输出n个姓名,每行输入一个姓名。 程序根据输入的姓名为候选人统计得票数,如果有非候选人姓名的选票,则计为废票。 输出投票结果,每行一个候选人。

importjava.util.Scanner; public class Main {

public static void main(String[] args) {

Scanner input = new Scanner(System.in); int n = input.nextInt();

int a = 0,b = 0,c = 0,d = 0; String name1 = \ String name2 = \ String name3 = \String[] list = new String[n]; for(int i = 0;i

for(int i = 0;i

if(list[i].equals(name1)) a = a+1; else if(list[i].equals(name2)) b = b+1; else if(list[i].equals(name3)) c = c+1; else

d = d+1; }

System.out.println(\System.out.println(\System.out.println(\System.out.println(\ } }

18158 不相同的整数问题

编写程序,输入若干个整数,统计其中互不相同的整数的个数。要求如下: 首先输入一个整数n代表要输入的整数个数;然后输入n个整数,统计并输出这n个整数中互不相同的整数的个数。

注:类名必须是Main(大写M)

importjava.util.Scanner; public class Main {

public static void main(String[] args) {

Scanner input = new Scanner(System.in); int n = input.nextInt(); int sum = 0;

int[] list = new int[n];

for(int i = 0;i

for(int i = 0;i

for(j = 0;j

} } if(j == i){

sum = sum + 1; } }

System.out.print(sum); } }

实验6 方法

18159 求两个正整数的最大公约数

下面程序实现由键盘输入两个正整数x,y,计算并输出两个整数的最大公约数。 请在空白处补充填写计算最大公约数的方法。

import java.util.Scanner; public class Main {

public static intgcd(inta,int b){ intgcd;

for(gcd = a;gcd>=1;gcd--){

if (a % gcd== 0 && b % gcd == 0) break; } returngcd; }

public static void main(String[] args) {

Scanner input = new Scanner(System.in); int x = input.nextInt(); int y = input.nextInt();

System.out.println(gcd(x, y)); } }

18160 使用方法重载求最大值

下面程序实现计算2个整数和3个整数中大值。

请使用方法重载编写max方法,填写在程序空白处,使程序能够正确运行。 import java.util.Scanner; public class Main {

public static int max(int a, int b){ return a>b ? a : b; }

public static int max(int a, int b, int c){ return max(max(a,b),c); }

public static void main(String[] args) {

Scanner input = new Scanner(System.in); int x = input.nextInt(); int y = input.nextInt(); int z = input.nextInt();

System.out.println(max(x, y)); System.out.println(max(x, y, z)); } }

18161 判断闰年的方法

下面程序实现了判断并输出1990年到2010年之间所有闰年。其中判断一个年份是否是闰年的功能是通过一个方法实现的。

请在程序中的空白处填写恰当的代码,使程序能够正确地运行。 public class Main {

public static booleanisLeapYear(int y)

{ return (y % 4 == 0 && y % 100 != 0) || (y % 400 == 0); } public static void main(String[] args) {

for(int year=1990; year<=2010; year++){ if(isLeapYear(year)){

System.out.println(year+\ } } } }

18162 递归实现十进制数转换为二进制数

下面程序实现了从键盘输入一个正整数(不会大于100000000),然后输出其对应的二进制数的原码形式。

请填写程序中的空白之处,使程序能够正确地运行。 import java.util.Scanner; public class Main {

public static String d2b(int n) { String result = \ if (n > 1) {

result = result + d2b( n / 2); }

return result + (n % 2); }

public static void main(String[] args) {

Scanner input = new Scanner(System.in); int num = input.nextInt();

System.out.println(d2b(num)); } }