Java基本语法练习

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

时间: 2024-08-01 04:37:40

Java基本语法练习的相关文章

JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)

Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中,用户可以通过指定数据类型和标识符来声明变量,其基本语法为: DataType identifier;  或  DataType identifier = value; 其中,DataType是变量类型,如int/string/char/double/boolean等:identifier是变量名称,即标识符:value就是声明变量的值. 注: a.标识符由数字0-9.大小写字母.下划线.美元符号.人民币符号以及

Java前端Java编码语法运用

问题描述 Java前端Java编码语法运用 我刚入这行不久,小学生一枚,现在有个Java的问题如下:http://zhidao.baidu.com/question/1242054694549391659.html我挂在百度问答上了,会的大神们可以大体上先看一下,我的问题主要一个是:1.那个用js写的大致方法能否解决我的问题(我自己看了下,大致解决思路是没错的的)2.能解决的话能否帮我转成Java代码形式,用Java语法写个Demo?因为我对Java只是处于初级阶段,很多语法的使用和运用都不知道

java 基础语法,提示最后一个i错误

问题描述 java 基础语法,提示最后一个i错误 package com.输出前三名; import java.util.Arrays; public class HelloWorld { //完成 main 方法 public static void main(String[] args) { int[] scores = {89 , -23 , 64 , 91 , 119 , 52 , 73} ;//成绩数组 System.out.println("考试成绩前三名为:"); Hel

android中的java简单语法问题

问题描述 android中的java简单语法问题 android中java代码 Button simple = (Button) findViewById(R.id.simple)那个括号里的Button是类名吗?这里为什么写上(Button)而不是new呢?请原谅我java都没有学完就被逼着学android 解决方案 可以将(Button)理解为强制转换,因为findViewById(R.id.simple)这句话通过字面理解就是通过ID找到simple这个控件该控件属于view类型, 而你前

java类的问题-新手 java基础语法, 不知道错哪了,

问题描述 新手 java基础语法, 不知道错哪了, 实现:求数组和 , 判断输入的是否是数组中的一个.谢谢大家了. 解决方案 图太小了,看不清,编译错还是运行错?调试下. 解决方案二: 看不清图,你为什么不打字呀? 解决方案三: 看不清图,你为什么不打字呀? 解决方案四: 图看不清,也搞不懂你的意思 解决方案五: 你把代码复制上来啊,图片看不清楚 解决方案六: 你的nextInt放在了循环里,这样没循环一次都需要你输入一个新的数字.而且新的数字会覆盖前一个数字. 应该把输入放到循环的外面,先输入

Java语言语法-控制结构

控制|语法 控制结构和其它语言一样Java中也包含以下三种控制结构:一 顺序结构 语句按编写时的顺序一条接一条的执行. 二 选择结构 1 if选择结构: if(逻辑值) { 语句; } 2 if/else选择解雇: if(逻辑值) { 语句; } else { 语句; } 3 switch结构: switch{表达式} { case value1: 语句; break; case value2: 语句; break; ... ... default: 语句; } 三 循环结构 1 while循坏

Java 基础语法你必须清楚

一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.下面简要介绍下类.对象.方法和实例变量的概念. 对象:对象是类的一个实例,有状态和行为.例如,一条狗是一个对象,它的状态有:颜色.名字.品种:行为有:摇尾巴.叫.吃等. 类:类是一个模板,它描述一类对象的行为和状态. 方法:方法就是行为,一个类可以有很多方法.逻辑运算.数据修改以及所有动作都是在方法中完成的. 实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定. 第一个Java程序 下面看一个

Java基本语法-----java数据类型的转换

前言 Java中可以进行不同数据类型的加减乘除运算吗?是可以的.在算术运算符中已经体验过如果两个整数(int)相除会去掉小数部分.如果需要保留小数部分,可以让除数或者被除数变为double类型的(5变为5.0).其实Java是自动的将int的那个数变为了double类型了也就是Java自动的将整数变为了浮点数.例如5/2.0 其实是5.0/2.0. 1.自动类型转换(也叫隐式类型转换) 可以将一个数赋值给更大数值范围的变量,例如可以经byte 变量赋值给short变量可以将short变量赋值给i

java类继承的语法

继承与Java(以及其他OOP语言)非常紧密地结合在一起.我们早在第1章就为大家引入了继承的概念,并在那章之后到本章之前的各章里不时用到,因为一些特殊的场合要求必须使用继承.除此以外,创建一个类时肯定会进行继承,因为若非如此,会从Java的标准根类Object中继承. 用于合成的语法是非常简单且直观的.但为了进行继承,必须采用一种全然不同的形式.需要继承的时候,我们会说:"这个新类和那个旧类差不多."为了在代码里表面这一观念,需要给出类名.但在类主体的起始花括号之前,需要放置一个关键字