【Java】Java学习笔记(1)Java语言基础作业函数题

学校小学期Java课程的练习题,留个档便于以后需要时候有例子可以回忆,写的烂的地方请多多包含

1、byte与int、float与double类型转换运算

  • 描述:定义byte、int、float、double类型的变量,并输入对应的数据给四种类型的变量赋值,将int转换为byte,将float转换为double,打印输出4个类型数据的值和转换后的数值。
  • 代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import java.util.Scanner;
public class Example2_2 {
public static void main (String args[]) {
byte b = 22;
int n = 129;
float f =123456.6789f ;
double d=123456789.123456789;
System.out.println("请输入byte(-128到127) int(大于127) float double四种类型数据:");
Scanner scanner = new Scanner(System.in);
try{
//TODO:使用Scanner输入byte、int、float、double类型的数据,分别赋值给b、n、f、d
b = scanner.nextByte();
n = scanner.nextInt();
f = scanner.nextFloat();
d = scanner.nextDouble();
}
catch (Exception e) {
System.out.println("输入有误!");
}
System.out.println("---------输出------------");
System.out.println("byte= "+b);
System.out.println("int= "+n);
System.out.println("float= "+f);
System.out.println("double= "+d);
/*
TODO:将int强转化成byte
int型的n强转后赋值给byte型的b
将float强转化成double
float型的f强转后赋值给double型的d
*/
b=(byte)n;
d=(double)f;
System.out.println("将int转化为byte导致精度缺失 int= "+b);
System.out.println("将float转化为double导致精度缺失 double= "+d);
}
}

2、输入两个变量a,b均是整型变量,写出将a,b两个变量中的值互换的程序

  • 描述:定义两个整型变量a,b,获取键盘输入的两个整数赋值给a,b,使用临时变量temp交换a,b的值。并打印输出交换后a和b的值。
  • 代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import java.util.Scanner;
public class Example2_2 {
public static void main(String args[ ]) {
int a=2;
int tmp;
int b=3;
System.out.println("请输入两个整数赋值给a,b:");
Scanner scanner = new Scanner(System.in);
a = scanner.nextInt();
b = scanner.nextInt();
System.out.println("交换前的值是 a="+a+",b="+b);
/*
TODO:使用中间变量交换ab值
例:定义temp变量暂时存储a值
*/
tmp = a;
a = b;
b = tmp;
System.out.println("交换后的值是 a="+a+","+"b="+b);
}
}

3、分别对两个浮点数据进行计算加、减、乘、除运算

  • 描述:计算输入数据的和
  • 代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.util.Scanner;
public class Example2_2_4 {
public static void main(String args[ ]) {
System.out.println("输入两个浮点型数据,分别计算加、减、乘、除");
double a ,b;
double c, d, e, f;
Scanner scanner = new Scanner(System.in);
a = scanner.nextDouble();
b = scanner.nextDouble();
/*
TODO:对a,b依次进行加减乘除运算
并把结果分别赋给变量c d e f
*/
c=a+b;
d=a-b;
e=a*b;
f=a/b;
System.out.println("结果分别为:\n"+c+"\n"+d+"\n"+e+"\n"+f);
}
}

4、计算输入数据的和

  • 描述:定义double型变量sum,并初始化为0。键盘输入若干个数字,每输入一个数字回车确认,最后输入0结束整个的输入操作过程。求输入的所有数字之和并打印输出。
  • 代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import java.util.Scanner;
public class Exp{
public static void main (String args[]){
System.out.println("请输入若干个数,每输入一个数回车确认");
System.out.println("最后输入数字0结束输入操作");
Scanner reader=new Scanner(System.in);
double sum=0;
double x = reader.nextDouble();
/*
TODO:循环判断,如果x不等于0的话,将sum的值增加x
持续输入x的值,直到输入0结束
*/
while(x!=0){
sum=sum+x;
x = reader.nextDouble();
}
System.out.println("sum="+sum);
}
}

5、类型转换

  • 描述:输入一个浮点数,将其分别转换成int和float,输出该数转换为int、float类型后损失的精度,请将转换的代码补全。
  • 代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import java.util.Scanner;
/**
* TODO: 输入一个浮点数,分别将其转换成int和float,输出该数转换为int、float类型后损失的精度,请将转换的代码补全。
* 例如:输入:2.1 输出: double转换成int损失的精度值:0.10000000000000009
* double转换成float损失的精度值:9.536743172944284E-8
*/
public class Example7_153 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入一个浮点数");
double num = sc.nextDouble();
int num1 = 0;
//TODO:补全double类型num强制转换成int类型num1的代码
num1=(int)num;
//计算double转换成int损失的精度值
double value1 = num - num1;
System.out.println( "double转换成int损失的精度值:"+ value1);
float num2 = 0f;
//TODO:补全double类型num强制转换成float类型num2的代码
num2=(float)num;
//计算double转换成float损失的精度值
double value2 = num - num2;
System.out.println("double转换成float损失的精度值:"+ value2);
}
}

6、将float类型强制转换int类型

  • 描述:用户输入1个float类型的数值,赋值给float型的变量a,然后强制转换为int型并输出。
  • 代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import java.util.Scanner;
/*
随机输入1个float类型的数值,强制转换int然后输出
如:输入12.34,强制转换int后输出:12.
*/
class Example7_65 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("输入1个float数值:");
float a = input.nextFloat();
//TODO:强制将float型的a转换成int型
int b=(int)a;
System.out.print(b);
}
}

7、字符与整数类型转换

  • 描述:定义一个int型变量、一个char型变量,输入一个汉字或日文赋值给char型变量,然后打印出该变量在Unicode表的位置。再输入一个数字代表Unicode表的位置,赋值给int型变量,然后打印出该位置的字符。
  • 代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import java.util.Scanner;
public class Test_1 {
public static void main (String[] args) {
System.out.println("请输入一个汉字或日文:");
Scanner scanner = new Scanner(System.in);
//TODO:输入一个字符,然后使用charAt函数转化为char类型的变量c
String s=scanner.next();
char c=s.charAt(0);
System.out.println("汉字或日文:"+c+"的位置:"+(int)c);
System.out.println("请输入Unicode表的位置(数字)");
//TODO:使用Scanner输入一个整数,并赋值给变量n
int n = scanner.nextInt();
System.out.println(n+"位置上的字符是:"+(char)n);
}
}

8、加密算法

  • 描述:从键盘输入一段话,结束按回车确认,使用加密方法将段话进行加密,秘钥规则为‘A’,打印输出加密后的内容和原文内容。
  • 代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import java.util.Scanner;
public class Test_1 {
public static void main(String args[]) {
System.out.println("输入一段需要加密的话:");
Scanner reader = new Scanner(System.in);
String str = reader.nextLine();
String str1 = encryption(str);
System.out.println("密文:"+str1);
String str2 = encryption(str1);
System.out.println("原文:"+str2);
}
/*
TODO:编写加密方法
功能描述:每一个字母用异或‘A’方式进行加密
参数说明:s加密字符
返回值说明:加密后的字符
*/
public static String encryption(String s){
char[] tmp= s.toCharArray();
for(int i=0;i<s.length();i++){
tmp[i]=(char)(tmp[i]^'A');
}
s=new String(tmp);
return s;
}
}

9、对无序数字排序

  • 描述:定义一个排序方法,参数为三个int型变量,按从小到大的顺序输出。从键盘输入三个正整数,每输入一个按回车确认,调用排序方法对输入数字排序,打印输出排列后的顺序。
  • 代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import java.util.Scanner;
public class Example3_2 {
public static void main(String args[]) {
System.out.println("请输入三个正整数:");
Scanner reader=new Scanner(System.in);
int a = reader.nextInt();
int b = reader.nextInt();
int c = reader.nextInt();
//TODO:调用sort方法对传入的abc三个参数,进行比较
sort(a,b,c);
}
/*
TODO:排序方法
功能描述:编写排序方法,将a,b,c三个整数按照从小到大的顺序排列
参数说明:abc为传入的待比较的三个数
返回值说明:无
*/
public static void sort(int a,int b,int c){
int arr[];
arr = new int[3];
arr[0]=a;
arr[1]=b;
arr[2]=c;
int temp;//定义一个临时变量
for(int i=0;i<arr.length-1;i++){//冒泡趟数
for(int j=0;j<arr.length-i-1;j++){
if(arr[j+1]<arr[j]){
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
a=arr[0];
b=arr[1];
c=arr[2];
System.out.println("从小到大排序为:"+a+","+b+","+c);
}
}

10、根据输入的成绩输出等级

  • 描述:定义一个显示成绩等级的方法showGrade,按照100分制,90分以上成绩为A,80~90为B,60~80为C,60以下为D。获取用户输入分数,调用showGrade方法,将分数转换为A、B、C或D的形式打印输出。
  • 代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import java.util.*;
public class Test_1 {
public static void main(String args[]) {
Scanner reader=new Scanner(System.in);
System.out.println("输入成绩:");
double a = reader.nextDouble();
//TODO:调用showGrade方法传入a参数
showGrade(a);
}
public static void showGrade(double num){
if(num>0&&num<=100){
if(num>=90){
System.out.println("A");
}
else if(num>=80){
System.out.println("B");
}
else if(num>=60){
System.out.println("c");
}
else{
System.out.println("D");
}
}
else{
System.out.println("输入的成绩不符和规则");
}
}
}

11、抽奖算法(懒得用switch语句)

  • 描述:判断用户从键盘输入的正整数是否为中奖号码(9、131、12号码为三等奖,209、596、27号码为二等奖,875、316、59号码为一等奖)。打印输出是什么奖或者是未中奖。
  • 代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import java.util.Scanner;
public class Example3_4{
public static void main(String args[]) {
int number;
System.out.println("输入正整数(回车确定)");
Scanner reader=new Scanner(System.in);
number = reader.nextInt();
/*
TODO:当number的数值是9,131,12时,打印number+“是三等奖”
当它是209,596,27时,打印number+“是二等奖”
当它是875,316,59时,打印number+“是一等奖”
否则打印number+“未中奖”
提示:使用switch语句判断
*/
if(number==9||number==131||number==12){
System.out.println(number+"是三等奖");
}
else if(number==209||number==596||number==27){
System.out.println(number+"是二等奖");
}
else if(number==875||number==316||number==59){
System.out.println(number+"是一等奖");
}
else{
System.out.println(number+"未中奖");
}
}
}

12、根据输入的数值求和

  • 描述:定义int型变量a、n,从键盘输入两个正整数赋值给a、n,a代表首项,n代表前n项,输入每项数值为:x1=a,x2=a10+a,x3=x210+a,…以此类推,编写应用程序,求前n项之和。
  • 代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.util.Scanner;
public class Example3_5 {
public static void main(String args[]) {
Scanner reader = new Scanner(System.in);
System.out.println("输入一个正整数:");
int a = reader.nextInt();
System.out.println("输入前多少项:");
int n = reader.nextInt();
//TODO:调用sum方法传入a,n参数
sum(a,n);
}
/*
TODO:求和方法
功能描述:编写方法求前n项的和,并打印输出:System.out.println("求和:"+sum);
参数说明:a为首项,项数是n
返回值说明:无
*/
public static void sum(int a,int n){
long sum=0;
long x=0;
for(int i=0;i<n;i++){
if(i==0){
x=a;
}
else{
x=x*10+a;
}
sum=sum+x;
}
System.out.println("求和:"+sum);
}
}

13、求素数

  • 描述:获取从键盘输入的数值n,编写方法计算出2~n之间的所有素数,并打印输出。
  • 代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import java.util.Scanner;
public class Test_1 {
public static void main(String args[]) {
Scanner reader = new Scanner(System.in);
System.out.println("输入n:");
int n = reader.nextInt();
//TODO:调用prime方法传入需要判断的数n
prime(n);
}
/*
TODO:求素数方法
功能描述:编写方法求n以内的所有素数,并打印输出
参数说明:int型变量n
返回值说明:无
提示:打印语句为System.out.println(j+"是素数");
*/
public static void prime(int n){
for(int i=2;i<=n;i++){
int j=2;
while(i%j!=0){
j++;
}
if(j==i){
System.out.println(j+"是素数");
}
}
}
}

14、遍历数组

  • 描述:定义一个int型数组,从键盘输入四个正整数存入数组中,每个数字按回车键确认,最后将该数组遍历输出。
  • 代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import java.util.Scanner;
public class Test_1 {
public static void main(String args[]) {
System.out.println("请输入四个正整数(回车为确认):");
int[] arr=new int[4];
Scanner reader=new Scanner(System.in);
for(int i = 0;i<4;i++){
arr[i]= reader.nextInt();
}
//TODO:调用tArray方法,参数为arr[]数组
tArray(arr);
}
/*
TODO:遍历数组的方法
功能描述:遍历数组中的所有元素打印输出
参数说明:a[]要遍历的数组
返回值说明:无
输出语句提示:System.out.print( 数组内容 +" ");
*/
public static void tArray(int a[]){
System.out.print("请输出数组内容:");
for(int i=0;i<4;i++) {
System.out.print(a[i]+" ");
}
}
}

15、二进制转换十进制

  • 描述:用户输入一个二进制数值,将其转化成十进制后打印输出。
  • 代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.util.Scanner;
/*
输入一个二进制数值,将其转化成十进制后输出。
如:输入:01,输出:1.
如:输入:011,输出:3.
*/
class Example7_95 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("输入1个二进制字符:");
String s = input.next();
try {
//TODO:通过Integer类的valueOf方法将二进制字符转换int数值
int a=Integer.valueOf(s,2);
System.out.print(a);
} catch (Exception e) {
System.out.print("您输入的字符不是二进制字符");
}
}
}

16、求三个实数的和以及平均值

  • 描述:在键盘依次输入三个数字,每个数字按回车键确认,最后在键盘输入一个非数字的字符串结束整个操作,该三个数字求和以及平均值。
  • 代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import java.util.*;
public class Example3_9 {
public static void main (String args[]) {
Scanner reader=new Scanner(System.in);
double sum=0;
int m=0;
/*
* 在键盘依次输入三个数字,每个数字按回车键确认,
* 最后在键盘输入一个非数字的字符串结束整个操作,
* 该三个数字求和以及平均值。
*/
while(reader.hasNextDouble()){
double x=reader.nextDouble();
m=m+1;
/** TODO: 编写求和内容 **/
sum = sum+x;
}
System.out.printf("%d个数的和为%f\n",m,sum);
System.out.printf("%d个数的平均值是%f\n",m,sum/m);
}
}
-------- 本文结束 感谢阅读 --------