Java基本语法练习
发布日期:2021-08-21 08:23:45 浏览次数:7 分类:技术文章

本文共 8349 字,大约阅读时间需要 27 分钟。

1.编写程序,求100以内的全部素数。

实验源码:

public class FirstClass {  public static void main(String[] args)  {      int iTemp;  //临时标记变量      System.out.print("100以内的素数为:");      for(int i = 2; i <= 100; i++)      {          iTemp = 1;          for(int j = 2; j <= (i/2); j ++)          {              if(i%j == 0)                {                  iTemp = 0;    //不为素数iTemp标记为零                  break;        //为了提高效率结束二级循环              }          }          if(iTemp == 1)          {              System.out.print(" "+i);          }      }  }   }

实验输出结果:100以内的素数为: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97

2.从键盘随机输入20个整数,按从小到大进行排序后输出。

实验源码:

import java.util.*;public class SecondClass {     public static void main(String[] args)    {        //定义整数数组        int[] aNum = new int[20];        //实例化输入对象        Scanner sc = new Scanner(System.in);         //输入整数        for(int i = 0; i < 20; i++)        {            aNum[i] = sc.nextInt();        }          //冒泡排序        for(int i = 1; i < 20; i++)        {            for(int j = 19; j >= i; j--)            {                if(aNum[j] < aNum[j-1])                {                    //为了节省内存和提高效率所以用异或对两值交换                    aNum[j] = aNum[j] ^ aNum[j-1];                    aNum[j-1] = aNum[j] ^ aNum[j-1];                    aNum[j] = aNum[j] ^ aNum[j-1];                }            }        }         //输出结果        System.out.print("从小到大顺序为:");        for(int i = 0; i < 20; i++)        {            System.out.print(aNum[i]+" ");        }    } }

实验结果:

请输入20个整数:10 20 40 90 80 78 38 24 84 29 49 50 10 28 19 48 59 29 48 29

从小到大顺序为:10 10 19 20 24 28 29 29 29 38 40 48 48 49 50 59 78 80 84 90 

 

3.找出所有1-100之间能够被2,3,5同时整除的整数,并计算其总和。

实验代码:

 

public class ThirdClass {    public static void main(String[] args)    {        int iSum = 0;         System.out.print("满足条件的数字有:");        for(int i = 1; i <= 100; i++)        {            if(i%2 == 0 && i%3 == 0 && i%5 == 0)            {                iSum += i;                System.out.print(i+" ");            }        }         System.out.println("\n总和为:"+iSum);    }}

实验结果:

满足条件的数字有:30 60 90 

总和为:180

 

4.从键盘上输入10个学生的成绩,将考试成绩百分制转五级制并输出。

import java.util.*;public class ForthClass {    public static void main(String[] args)    {        Scanner sc =new Scanner(System.in);        int[] aScore = new  int[10];         System.out.print("请输入10位同学的成绩:");        for(int i = 0; i < 10; i++)        {            aScore[i] = sc.nextInt();             switch(aScore[i]/10)            {                case 10:                case 9:                    System.out.print("A ");                    break;                case 8:                    System.out.print("B ");                    break;                case 7:                    System.out.print("C ");                    break;                case 6:                    System.out.print("D ");                    break;                case 5:                case 4:                case 3:                case 2:                case 1:                case 0:                    System.out.print("E ");                    break;                default:                    System.out.print("输入有误!!");            }        }      }   }

实验结果:

请输入10位同学的成绩:100 20 79 85 89 60 30 60 90 40 

A E C B B D E D A E 

 

 

5、输入学生的数量,分别输入学生的成绩,排序,求最小值、最大值;根据某成绩查询其名次。

 

实验代码:

import java.util.Arrays;import java.util.Scanner;public class FifthClass {    public static void main(String[] args)    {        //学生人数        int iCount = 0;        //初始化输入类        Scanner sc = new Scanner(System.in);         System.out.print("请输入学生个数以回车键结束:");        iCount = sc.nextInt();         int[] aScore = new int[iCount];        System.out.print("请输入每个学生的分数以回车键结束:");        for(int i = 0; i < iCount; i++)        {            aScore[i] = sc.nextInt();        }        //对分数进行排序        Arrays.sort(aScore);        System.out.print("分数升序排序结果为:");        for(int i = 0; i < iCount; i++)        {            System.out.print(aScore[i]+" ");        }         System.out.println();        //输出最小值        System.out.println("最小值为:" + aScore[0]);        //输出最大值        System.out.println("最大值为:" + aScore[iCount-1]);        //查询名次        System.out.print("请输入所要查询名次的成绩:");        int iScore = sc.nextInt();        int iKey = Arrays.binarySearch(aScore,iScore) + 1;        System.out.println("其对应的名次为:"+iKey);    } }

实验结果:

   请输入学生个数以回车键结束:5

请输入每个学生的分数以回车键结束:98 93 86 74 25

分数升序排序结果为:25 74 86 93 98 

最小值为:25

最大值为:98

请输入所要查询名次的成绩:74

其对应的名次为:2

 

 

 

 

 

6.编写程序,求1!+2!+……+10!

实验代码:

public class SixthClass {    public static void main(String[] args)    {        int iSum = 0;        int iMul = 1;        for(int i = 1; i <= 10 ;i++)        {            iMul*=i;            iSum += iMul;        }        System.out.println("结果为:"+iSum);    } }

实验结果:结果为:4037913

 

7、从键盘上输入字符串,判断其是否是合法的标识符。

实验源码:

import java.util.Scanner;public class SeventhClass {    public static void main(String[] args) {        String sId;        Scanner sc = new Scanner(System.in);        System.out.print("请输入字符串:");         //输入字符串以换行结束        sId = sc.nextLine();        int flag = 1;        //判断首个字符        if(sId.charAt(0)>= '0' && sId.charAt(0)<= '9')        {            flag = 0;        }        else        {            for(int i = 0;i < sId.length();i++)            {                //判断是否为标识符                if(sId.charAt(i)  != '_' && sId.charAt(i) != '$' && !(sId.charAt(i) >= '0' && sId.charAt(i) <='9') && !(sId.charAt(i)>='a' && sId.charAt(i) <='z') && !(sId.charAt(i)>='A' && sId.charAt(i) <='Z'))                {                    flag = 0;                    break;                }             }        }         if(flag == 1)        {            System.out.println("标识符合法!");        }        else        {            System.out.println("标识符不合法!");        }     } }

实验结果:

请输入字符串:2$da

标识符不合法!

 

8、从键盘上输入一个字符、字符串、浮点数、双精度数、布尔量、整数,然后输出出来。

 

实验代码:

import java.util.Scanner;public class EighthClass {    public static void main(String[] args) {        char ch;        String str;        int iNum;        float fNum;        double dNum;        boolean bNum;        Scanner sc = new Scanner(System.in);         System.out.print("请输入一个字符以回车键结束:");        ch = sc.nextLine().charAt(0);         System.out.print("请输入一个字符串以回车键结束:");        str = sc.next();         System.out.print("请输入一个整数以回车键结束:");        iNum = sc.nextInt();         System.out.print("请输入一个浮点数以回车键结束:");        fNum = sc.nextFloat();         System.out.print("请输入一个双精度数以回车键结束:");        dNum = sc.nextDouble();         System.out.print("请输入一个布尔量以回车键结束:");        bNum = sc.nextBoolean();         System.out.println("字符:"+ch);        System.out.println("字符串:"+str);        System.out.println("整数:"+iNum);        System.out.println("浮点数:"+fNum);        System.out.println("双精度数"+dNum);        System.out.println("布尔数:"+bNum);     }}

实验结果:

请输入一个字符以回车键结束:a

请输入一个字符串以回车键结束:asdf

请输入一个整数以回车键结束:22

请输入一个浮点数以回车键结束:2.343

请输入一个双精度数以回车键结束:2.32323

请输入一个布尔量以回车键结束:true

字符:a

字符串:asdf

整数:22

浮点数:2.343

双精度数2.32323

布尔数:true

 

9.编写一个程序:给定一个整数,在控制窗口中分别输出这个整数的补码形式的二进制数、八进制数和十六进制数。

实验代码:

import java.util.Scanner;public class NitthClass {    public static void main(String[] args) {         int iNum = 0;        Scanner sc = new Scanner(System.in);         System.out.print("请输入一个整数:");        iNum = sc.nextInt();         System.out.println("二进制数:"+Integer.toBinaryString(iNum));        System.out.println("八进制数:"+Integer.toOctalString(iNum));        System.out.println("十六进制进制数:"+Integer.toHexString(iNum));    }}

实验结果1:

请输入一个整数:-20

二进制数:11111111111111111111111111101100

八进制数:37777777754

十六进制进制数:ffffffec

实验结果2:

请输入一个整数:20

二进制数:10100

八进制数:24

十六进制进制数:14

 

10.求两个数的最小公倍数和最大公约数。

实验代码:

import java.util.Scanner;public class TenthClass {  public static void main(String[] args) {      int iNum1;      int iNum2;      int iMul;      int iTemp;      Scanner sc = new Scanner(System.in);       System.out.print("请输入第一个整数以回车键结束:");      iNum1 = sc.nextInt();       System.out.print("请输入第二个整数以回车键结束:");      iNum2 = sc.nextInt();       iMul = iNum1 * iNum2;      if(iNum1 > iNum2)      {          iTemp = iNum1;          iNum1 = iNum2;          iNum2 = iTemp;      }      while(iNum1 != 0)      {          iTemp = iNum2 % iNum1;          iNum2 = iNum1;          iNum1 = iTemp;      }      System.out.println("最大公约数:"+iNum2);      System.out.println("最小公倍数:"+iMul/iNum2);    } }

实验结果:

 

请输入第一个整数以回车键结束:36

请输入第二个整数以回车键结束:96

最大公约数:12

最小公倍数:288

转载地址:https://blog.csdn.net/weixin_33713503/article/details/90653946 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:经典算法题每日演练——第七题 KMP算法
下一篇:在linux 安装oracle10g时遇到的问题

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月17日 08时24分28秒