实 验 报 告
课程名称: Java语言程序设计
姓 名:
学 号:
班 级:
数学与计算机科学学院
数学与计算机科学学院实验报告
实验名称:Java语言基础
指导教师:
日期:2020.4.20
实验内容 1.输入一个16位的长整型数,利用switch语句统计其中0-9每个数字出现的次数。 2.求a+aa+aaa+…+a…a(n个)的和,其中a为1-9之间的整数。例如,当a=3,n=4时,求3+33+333+3333的和。 3.给定一个正整数m,判断它的具体位数,分别打印每一位数,再按照逆序打印出各位数字。 4.编写程序将16进制数转换为10进制数。 5.编写程序对10个整数进行排序。 实验目的 (1)掌握条件语句的使用。 (2)掌握循环语句的使用。 (3)掌握数组的定义和使用方法。 (4)熟悉数组的排序、查找等算法。 实验设备 硬件: PC机 软件: Java开发工具Java SE IntelliJ IDEA 2020.1.1 x64集成开发环境
实验结果
第1题代码:
import java.util.Scanner; public class One {
public static void main(String[] args) { Scanner num1 = new Scanner(System.in);
System.out.println(\请输入一个16位的长整型数:\);
long num = num1.nextLong(); long shuzi,shuzi1;
int [] count = new int[10]; for (int i = 0; i < 16; i++) {
long a = (long)Math.pow(10, i); shuzi1 = num/a; shuzi = shuzi1; switch ((int)shuzi) {
case 0: ++count[0];break; case 1: ++count[1];break; case 2: ++count[2];break; case 3: ++count[3];break; case 4: ++count[4];break; case 5: ++count[5];break; case 6: ++count[6];break; case 7: ++count[7];break; case 8: ++count[8];break; case 9: ++count[9];break; default: break; } }
for (int i = 0; i < 10; i++) {
System.out.println(num + \中\+ i + \出现的次数是\+ count[i] + \次\);
} } }
第2题代码:
import java.util.Scanner; public class Two {
public static void main(String[] args){ Scanner sc = new Scanner(System.in); int a, n, temp, h = 0, m = 1; n = sc.nextInt(); a = sc.nextInt(); temp = a;
for(int i = 1; i <= n; i++) { m = m * 10; h = h + a;
a = a + temp * m;
}
System.out.println(h); } }
第3题代码:
import java.util.Scanner; public class Three{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in); String str = scanner.next(); int len = str.length();
System.out.println(\共\+ len + \位\); System.out.println(\顺序输出:\); for(int i = 0; i < len; i++)
System.out.print(str.charAt(i) + \); System.out.println(\\\n逆序输出:\); for(int i = len-1; i >= 0; i--)
System.out.print(str.charAt(i) + \); } }
第4题代码:
import java.util.Scanner; public class Four {
public static void main(String[] args){
System.out.println(\请输入一个16进制的数:\); Scanner scanner = new Scanner(System.in); String str = scanner.nextLine(); long sum = 0, result = 0; int len = str.length(); char num;
for(int i = 0; i < len; i++){ num = str.charAt(i);
if(num >= '0' && num <= '9') result = num-'0';
else if(num >= 'A' && num <= 'F') result = num - 'A' + 10;
else if(num >= 'a' && num <= 'f') result = num - 'a' + 10; else {
System.out.println(\输入有误!\); System.exit(1); }
sum = sum + Math.pow(16, len-i-1) * result; }
System.out.println(\其对应的10进制整数是:\+ sum); } }
第5题代码:
import java.util.Scanner; public class Five{
public static void main(String args[]){ int i,a[];
a = new int[10];
Scanner s = new Scanner(System.in); System.out.println(\请输入10个数字:\); for(i = 0; i <= 9; i++) a[i] = s.nextInt(); for(i = 0; i <= 8; i++) {
for(int j = 0; j <= 8 - i; j++) {
int t;
if(a[j] > a[j+1]) {
t = a[j];
a[j] = a[j+1]; a[j+1] = t; } } }
System.out.println(\从小到大排列为:\); for(i = 0; i <= 9; i++)
System.out.println(a[i]); } }
实验结果
第1题:
第2题: