Java程序设计课程练习题(题目+答案)
0401
1.Description
编写一个Java程序,输入一个整数n(1 <= n <= 1000),如果n是奇数, 输出 1+3+5+...+n的值。如果n是偶数,则输出2 + 4 + … + n.
Input
输入整数n
Output
n不满足1 <= n <= 1000,则输出error input
n为奇数,则输出1+3+…+n
n为偶数,则输出2+4…+n;
Sample Input
10
Sample Output
30
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner r = new Scanner(System.in);
if(!r.hasNextInt())
{
System.out.println("error input");
return;
}
int n = r.nextInt();
int sum = 0;
if(n <1 || n >1000)
{
System.out.println("error input");
return;
}
if(n%2 == 0)
for (int i = 2; i <= n; i += 2)
sum += i;
else
for (int i = 1; i<=n; i += 2)
sum += i;
System.out.println (sum);
}
}
2.Description
编写一个Java程序,连续输入一个范围在10-100的整数,如果正确则提示继续输入, 否则退出循环,最后输出正确输入的整数的个数及它们的和。
Input
l连续输入一串数据 a1 a2 a3 … an, 数据间用空格隔开。
Output
输出: i, a1+ … + ai ,
备注: ai+1 为第一个不在10-100范围内的数
Smple Input
22 11 -2 36
Sample Output
2, 33
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner r = new Scanner(System.in);
int n ;
int count = 0;
int sum = 0;
while (true)
{
if(!r.hasNextInt())
break;
n = r.nextInt();
if( n < 10 || n > 100)
break;
sum += n;
count++;
}
System.out.println (count + ", " + sum);
}
}
3.Description
编写一个Java程序,连续在键盘输入1到7的整数,根据输入显示今天是星期几,直到非法输入,则输出“error input”
Input
输入n个整数 a1 a2 … an
Output
依次输出a1,…,ai 对应的星期几英文单词,ai 是第一个不满足1-7之间的数据
Sample Input
5 3 2 1 4 0 2
Sample Output
Friday
Wednesday
Tuesday
Monday
Thursday
error input
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner r = new Scanner(System.in);
int a,b,c;
a=r.nextInt();
b=r.nextInt();
c=r.nextInt();
int min=a,max=a;
if(b<min)
min = b;
if(b>max)
max = b;
if(c<min)
min = c;
if(c>max)
max = c;
System.out.println (min+" "+max);
}
}
4.Description
编写一个Java程序,在程序中从键盘输入三个整数,比较它们的大小,输出最大的数。
Input
输入a b c三个整数
Output
依次输出最小的数和最大的数,两个数用空格隔开
Sample Input
222 44 33
Sample Output
33 222
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner r = new Scanner(System.in);
int n ;
int count = 0;
int sum = 0;
while (true)
{
if(!r.hasNextInt())
{
System.out.print("error input");
break;
}
n = r.nextInt();
if( n < 1 || n > 7)
{
System.out.print("error input");
break;
}
switch (n) {
case 1: System.out.println ("Monday"); break;
case 2: System.out.println ("Tuesday"); break;
case 3: System.out.println ("Wednesday"); break;
case 4: System.out.println ("Thursday"); break;
case 5: System.out.println ("Friday"); break;
case 6: System.out.println ("Saturday"); break;
default : System.out.println ("Sunday");
}
}
}
}
0403
1.Description
从键盘输入一个长度为n的数组,然后进行(从小到大)排序输出。
Input
第一个输入值为数组大小n,接下来输入n个数值。
Output
如果第一个输入不是大于0的整数,或者接下来的输入的不是数值,则输出 “error input”
输入校验成功后,不换行输出排序后的数组。
Sample Input
5 87 -6 877 -998 66
Sample Output
-998 -6 66 87 877
import java.util.*;
public class Main {
public static void main(String[] args)
{
int n;
Scanner sc=new Scanner(System.in);
if(!sc.hasNextInt())
{
System.out.println ("error input");
return ;
}
n=sc.nextInt();
if(n<=0)
{
System.out.println ("error input");
return ;
}
int[] x=new int[n];
for (int i=0; i<x.length; i++)
{
if(!sc.hasNextInt())
{
System.out.println ("error input");
return ;
}
x[i]=sc.nextInt();
}
Arrays.sort(x);
for(int e:x)
System.out.print(e+" ");
}
}
2.Description
使用Scanner输入一个四则运算的字符串表达式,解析表达式,并输出计算结果。
Input
每一行按以下格式输入:整数1 运算符 整数2
Output
每一个数值1,数值2不是整数,或者运算符不是±*/之一,输出error input,退出程序;
输入校验正确,则输出运算结果。
Sample Input
9 / 2
77 - 44
88/44
Sample Output
4
33
error input
import java.util.*;
public class Main {
public static void main(String[] args)
{
int n;
Scanner sc=new Scanner(System.in);
if(!sc.hasNextInt())
{
System.out.println ("error input");
return ;
}
n=sc.nextInt();
if(n<=0)
{
System.out.println ("error input");
return ;
}
int[] x=new int[n];
for (int i=0; i<x.length; i++)
{
if(!sc.hasNextInt())
{
System.out.println ("error input");
return ;
}
x[i]=sc.nextInt();
}
Arrays.sort(x);
for(int e:x)
System.out.print(e+" ");
}
}
0408
1.Description
编写一个Java 程序,从键盘输入一个规则二维数组数组,输出数组中最大整数值和最小整数值。
Input
首先输入非负整数 m, n,分别代表代表数组的行数和列数,然后再按行优先的规则,依次输入mn个整数
Output
输入不合法(输入值m,n不为非负整数,或者接下来的mn值包含非整数),则输出“error input”
输入合法,则不换行输出最大值与最小值
Sample Input
3 4
32 65 98 14
58 67 928 99
22 -3 44 6
Sample Output
928 -3
import java.util.*;
public class Main {
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
if(!sc.hasNextInt())
{
System.out.println ("error input");
return ;
}
int m=sc.nextInt();
if(!sc.hasNextInt())
{
System.out.println ("error input");
return ;
}
int n=sc.nextInt();
if(m<=0||n<=0)
{
System.out.println ("error input");
return ;
}
int[][] arr=new int[m][n];
for (int i=0; i<arr.length; i++)
{
for (int j=0; j<arr[i].length; j++)
{
if(!sc.hasNextInt())
{
System.out.println ("error input");
return ;
}
arr[i][j]=sc.nextInt();
}
}
int max=0,min=0;
for (int a=0; a<arr.length; a++)
{
for (int b=0; b<arr[a].length; b++)
{
if(arr[a][b]>max)
max=arr[a][b];
if(arr[a][b]<min)
min=arr[a][b];
}
}
System.out.println (max +" "+ min);
}
}
2.Description
通过查询Java API文档的学习String类中的常用方法。从键盘输入两个(不包含空格回车等分隔符的)字符串str1和str2,通过调用String类中的实例方法,输出指定内容。
Input
依次输入不包含分隔符的 str1 和 str2
Output
依次输出以下内容(每一项输出一行)
0. str1与str2是否相等
- str1中包含str2的个数(视频上有讲解过);
- str2在str1中最后一次出现的位置(没有出现则输出-1);
- 将str1中的所有小写字符转化为对应的大写输出;
- 将str2中的所有大写写字符转化为对应的小写输出;
- str1中包含数符的个数;
- str2中包含英文字母字符的个数;
- 将str1中所有的“abc“修改为“cde”(如果有)输出;
Sample Input
abcde12de12de345ABCde12debcdeabc de12de
Sample Output
false
2
19
ABCDE12DE12DE345ABCDE12DEBCDEABC
de12de
9
4
cdede12de12de345ABCde12debcdecde
import java.util.*;
public class Main {
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
String str1=sc.next();
String str2=sc.next();
System.out.println(str1.equals(str2));
int idx;
idx=str1.indexOf(str2);
int count=0;
while(idx>=0)
{
idx=str1.indexOf(str2,idx+str2.length());
count++;
}
System.out.println (count);
if(count>0)
System.out.println (str1.lastIndexOf(str2));
else
System.out.println ("-1");
System.out.println(str1.toUpperCase());
System.out.println(str2.toLowerCase());
int number=0,ch=0,i;
for(i=0;i<str1.length();i++)
{
if(str1.charAt(i)>=48&&str1.charAt(i)<=57)
number++;
}
System.out.println(number);
for(i=0;i<str2.length();i++)
{
if(str2.charAt(i)>=65&&str2.charAt(i)<=90||str2.charAt(i)>=97&&str2.charAt(i)<=122)
ch++;
}
System.out.println (ch);
String str3 = str1.replaceAll("abc","cde");
System.out.print(str3);
}
}
3.Description
输出指定行数的杨辉三角
Input
输入一个正整数n
Output
如果n不合法(n不是正整数),则输出“error input”
如n合法,则输出n行的杨辉三角(每行中的两个数之间只用一个空格隔开)。
Sample Input
7
Sample Output
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
import java.util.*;
public class Main {
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
if(!sc.hasNextInt())
{
System.out.println ("error input");
return ;
}
int n=sc.nextInt();
if(n<=0)
{
System.out.println ("error input");
return ;
}
int i,j;
int[][] iaYang=new int[n][];
for (i=0; i<iaYang.length; i++)
iaYang[i]=new int[i+1];
iaYang[0][0]=1;
for (i=1; i<iaYang.length; i++)
{
iaYang[i][0]=1;
for (j=1; j<iaYang[i].length-1; j++)
iaYang[i][j]=iaYang[i-1][j-1]+iaYang[i-1][j];
iaYang[i][iaYang[i].length-1]=1;
}
for(int[] row:iaYang)
{
for(int col:row)
System.out.print (col + " ");
System.out.println ();
}
}
}
4.Description
输入两个矩阵M1和M2,求M1和M2的和与积
Input
第一行输入整数m,代表两个方阵的大小,
接下来依次输入2m行,每行包含m个整数。(第1-m行代表第一个方阵,第m+1 - 2m行代表第二个方阵)
Output
数据不合法,输出“input error”
数据合法,这分别输出两个方阵的和与积(和方阵 与 积方阵 间隔空一行输出)
Sample Input
2
1 2
3 4
4 3
2 1
Sample Output
5 5
5 5
8 5
20 13
import java.util.*;
public class Main {
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
if(!sc.hasNextInt())
{
System.out.println ("input error");
return ;
}
int m=sc.nextInt();
int[][] arr1=new int[m][m];
int[][] arr2=new int[m][m];
int i,j;
for (i=0; i<m; i++)
{
for(j=0;j<m;j++)
{
if(!sc.hasNextInt())
{
System.out.println ("input error");
return ;
}
arr1[i][j]=sc.nextInt();
}
}
for (i=0; i<m; i++)
{
for(j=0;j<m;j++)
{
if(!sc.hasNextInt())
{
System.out.println ("input error");
return ;
}
arr2[i][j]=sc.nextInt();
}
}
int[][] arr3=new int[m][m];
for (i=0; i<m; i++)
{
for(j=0;j<m;j++)
arr3[i][j]=arr1[i][j]+arr2[i][j];
}
int x=arr1.length;
int y=arr2[0].length;
int[][] arr4=new int[x][y];
for (i=0; i<x

本文详细介绍了Java编程课程中的多个练习题,涵盖数字序列计算、矩阵操作、学生类、分数类等多个主题,涉及输入验证、数据处理、类与接口的实现等核心概念。通过实例展示了如何编写满足特定条件的Java程序,包括计算、排序、比较和异常处理等功能。
最低0.47元/天 解锁文章
6万+

被折叠的 条评论
为什么被折叠?



