实验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 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 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)); } } ='0'&&ch<='9') sum = sum+1; } }